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

cl_default_mds_easize not refreshed

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.7.0
    • None
    • 3
    • 15471

    Description

      The client_obd::cl_default_mds_easize field should be maintained to
      reflect the largest EA size seen by the MDT. The MDC uses
      cl_default_mds_easize to size request buffers appropriately to avoid
      unnecessary memory reallocations. In the current code, the value is
      only updated if client_obd::cl_max_mds_easize is strictly less than
      mdt_body::mbo_max_mdsize. This condition is almost never met, because
      client_obd::cl_max_mds_easize is computed at client mount-time based
      on the number of OSTs in the filesystem, so the MDT won't ever see a
      EA size larger than that.

      As a result, client_obd::cl_default_mds_easize indefinitely retains
      its initial value, which is computed at client mount-time based on
      the filesystem's default stripe width. Any getattr() requests for
      more widely striped files will consequently allocate a request buffer
      that is too small, forcing reallocations on both the client and
      server side. To avoid this, update client_obd::cl_default_mds_easize
      independently of the value of client_obd::cl_max_mds_easize.

      Attachments

        Issue Links

          Activity

            People

              laisiyao Lai Siyao
              nedbass Ned Bass (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: