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

Allow parallel dio under a group lock (and possibly locked in general?)

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • None
    • 9223372036854775807

    Description

      Today, we do not do parallel DIO when we are operating in locked mode, which happens either if there is a conflict with buffered i/o on the same node (rare, probably not very important), or when we are working under a group lock.  This second one is important because migrate is done with DIO under a group lock.

      There is no fundamental reason we can't do parallel DIO under a group lock (AIO is harder).  The problem is that where we wait (up in ll_file_io_generic) is after we have finished with the client side locking.  This means that when there is an LDLM lock on the client, we release the associated OSC locks (and potentially the LDLM lock as well) before i/o has completed.

      This is deliberate and appropriate for the case where there is no LDLM lock - we do not want to unnecessarily hold client side locks, etc, and it's cleaner to wait at the top level.

      There is a solution available to allow parallel DIO in the locked case - We can wait in ll_direct_IO_impl after issuing the last part of the i/o.  The only problem is determining exactly when that is.  (This will allow AIO as well, but the AIO will be forced to synchronous.)

      This ticket is to give me a reminder of the issue and a place to put the patch for it when I get to it.

      Attachments

        Issue Links

          Activity

            People

              paf0186 Patrick Farrell (Inactive)
              paf0186 Patrick Farrell (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: