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

concurrent statfs() calls on the client should be blocked

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: Lustre 2.10.8, Lustre 2.12.3
    • Fix Version/s: Lustre 2.13.0
    • Labels:
    • Rank (Obsolete):
      9223372036854775807

      Description

      If multiple threads on a client are executing statfs() calls concurrently, and the obd_statfs() cache has expired, then each thread will send an OST_STATFS RPC to each OST. With certain statfs-heavy workloads on many-core client nodes, this can result in thousands of needless RPCs being sent from each client every few seconds.

      Since all of the callers funnel through obd_statfs(), and there is no benefit to having multiple OST_STATFS or MDS_STATFS replies from the same target (they return the same data, and all threads are blocked on the reply) it makes sense to just allow one thread to execute the statfs and other threads to (interruptibly) wait for it to complete.

        Attachments

          Activity

            People

            • Assignee:
              adilger Andreas Dilger
              Reporter:
              adilger Andreas Dilger
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: