• Nick Piggin's avatar
    x86: lockless get_user_pages_fast() · 8174c430
    Nick Piggin authored
    Implement get_user_pages_fast without locking in the fastpath on x86.
    
    Do an optimistic lockless pagetable walk, without taking mmap_sem or any
    page table locks or even mmap_sem.  Page table existence is guaranteed by
    turning interrupts off (combined with the fact that we're always looking
    up the current mm, means we can do the lockless page table walk within the
    constraints of the TLB shootdown design).  Basically we can do this
    lockless pagetable walk in a similar manner to the way the CPU's pagetable
    walker does not have to take any locks to find present ptes.
    
    This patch (combined with the subsequent ones to convert direct IO to use
    it) was found to give about 10% performance improvement on a 2 socket 8
    core Intel Xeon system running an OLTP workload on DB2 v9.5
    
     "To test the effects of the patch, an OLTP workload was run on an IBM
      x3850 M2 server with 2 processors (quad-core Intel Xeon processors at
      2.93 GHz) using IBM DB2 v9.5 running Linux 2.6.24rc7 kernel. ...
    8174c430
Kconfig 6.25 KB