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

Remove inode mutex for DIO reads

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Lustre 2.14.0
    • Labels:
      None
    • Severity:
      3
    • Rank (Obsolete):
      9223372036854775807

      Description

      When the range lock was added to Lustre, inode mutex in the DIO path was removed.  This was replaced with range lock usage, but then the entire area of code was accidentally replaced with a backport from the Linux kernel staging tree.  This backport still had the inode mutex usage, which is unnecessary.

      It looks like this was added back by mistake (sigh) when James Simmons backported some patches from the upstream kernel.

      Quoting from https://review.whamcloud.com/#/c/32416/26 :

      The history is basically this - When the range lock was added, this was removed. I then added the range lock for DIO reads because two DIO reads can't safely operate on the same pages. Then, around when I added the range lock for DIO reads, James back ported some older patches which still had the pre-range lock locking.

      Here's the history.

      Introduction of the range lock, removing the inode mutex here: http://review.whamcloud.com/6672 LU-1660

      Adding range lock for DIO reads (because LU-1660 caused crashes ): http://review.whamcloud.com/14385 LU-6227

      James' backport, which used older code w/the inode mutex: http://review.whamcloud.com/14665 LU-6260

      It looks like my "add range lock" and James' backport were in flight at the same time.

      I'm pretty sure this lock can be removed. I'll push a quick patch.

        Attachments

          Activity

            People

            • Assignee:
              paf0186 Patrick Farrell
              Reporter:
              paf0186 Patrick Farrell
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: