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

mmap readahead: Ignore retried faults (VM_FAULT_RETRY)

    XMLWordPrintable

Details

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

    Description

      When filemap_fault finds a page which is already locked, it returns VM_FAULT_RETRY.  This can happen quite commonly if a page is being read in by readahead when we go to read it.  This means we never call readpage for that fault.

      The fault will generally be retried from the kernel (outside of Lustre), which looks like a brand new mmap fault to Lustre, so that's fine, but this can confuse readahead, because we will call ll_ras_enter, but never call ras_update.  This throws off the readahead algorithm.

      The answer is to move the ll_ras_enter call in to ll_readpage.  This depends on the mmap readahead simplification from LU-15516.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated: