[LU-7233] parallelize lmv_statfs() implementation Created: 30/Sep/15  Updated: 01/Nov/17  Resolved: 01/Nov/17

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.8.0
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Andreas Dilger Assignee: Mikhail Pershin
Resolution: Low Priority Votes: 0
Labels: dne2, dne3, medium

Issue Links:
Related
is related to LU-10018 MDT as a statfs proxy Resolved
Rank (Obsolete): 9223372036854775807

 Description   

In ll_statfs_internal() the call to obd_statfs->lmv_statfs() sends the MDS_STATFS RPC(s) serially for each MDT in the filesystem, unlike the obd_statfs_rqset->lov_statfs_async() call that sends the OST_STATFS RPCs in parallel to all OSTs.

It would be good to clean this code up so the MDT RPCs are also sent in a single request set, in case there are a lot of MDTs in the filesystem.

I also notice in lmv_statfs() that it isn't adding in os_bfree from the secondary MDTs into osfs. While this isn't critical for correctness today (the os_b* fields are discarded by ll_statfs_internal() for returning to userspace) this will be necessary for Data-on-MDT and is just more correct.

Also, lmv_statfs() doesn't handle the case where the individual mdc_statfs() calls return a different os_bsize, unlike lov_update_statfs() does.



 Comments   
Comment by Andreas Dilger [ 01/Nov/17 ]

This is better handled by the statfs proxy in LU-10018, so is not really important enough to fix anymore.

Generated at Sat Feb 10 02:07:08 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.