Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-7233

parallelize lmv_statfs() implementation

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Low Priority
    • Affects Version/s: Lustre 2.8.0
    • Fix Version/s: None
    • Labels:
    • 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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tappro Mikhail Pershin
                Reporter:
                adilger Andreas Dilger
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: