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

Missed up_read on mmap_sem in vvp_mmap_locks

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: Lustre 2.6.0
    • Fix Version/s: Lustre 2.6.0, Lustre 2.5.3
    • Labels:
    • Severity:
      3
    • Rank (Obsolete):
      14555

      Description

      In the function vvp_mmap_locks, we down this semaphore:
      down_read(&mm->mmap_sem);

      Before entering a while loop. After the loop is complete, the semaphore is upped. However, there is an exit case in the loop:
      if (result < 0)
      RETURN(result);

      Which does not up the semaphore.

      Recently, Cray IO stress testing has been seeing a number of threads stuck waiting on this semaphore, with out any other threads obviously involved.

      It's not clear why this has been showing up lately, as Jay added the code in 2012:
      5eb306e7 (Jinshan Xiong 2012-04-13 15:21:49 0700 267) down_read(&mm>mmap_sem);

      I'll make a patch available shortly.

        Attachments

          Activity

            People

            • Assignee:
              wc-triage WC Triage
              Reporter:
              paf Patrick Farrell (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: