Skip to content
  • Zach Brown's avatar
    mm: remove old aio use_mm() comment · 697f4d68
    Zach Brown authored
    
    
    Bunch of performance improvements and cleanups Zach Brown and I have
    been working on.  The code should be pretty solid at this point, though
    it could of course use more review and testing.
    
    The results in my testing are pretty impressive, particularly when an
    ioctx is being shared between multiple threads.  In my crappy synthetic
    benchmark, with 4 threads submitting and one thread reaping completions,
    I saw overhead in the aio code go from ~50% (mostly ioctx lock
    contention) to low single digits.  Performance with ioctx per thread
    improved too, but I'd have to rerun those benchmarks.
    
    The reason I've been focused on performance when the ioctx is shared is
    that for a fair number of real world completions, userspace needs the
    completions aggregated somehow - in practice people just end up
    implementing this aggregation in userspace today, but if it's done right
    we can do it much more efficiently in the kernel.
    
    Performance wise, the end result of this patch series is that submitting
    a kiocb writes to _no_ shared cachelines - the penalty for sharing an
    ioctx is gone there.  There's still going to be some cacheline
    contention when we deliver the completions to the aio ringbuffer (at
    least if you have interrupts being delivered on multiple cores, which
    for high end stuff you do) but I have a couple more patches not in this
    series that implement coalescing for that (by taking advantage of
    interrupt coalescing).  With that, there's basically no bottlenecks or
    performance issues to speak of in the aio code.
    
    This patch:
    
    use_mm() is used in more places than just aio.  There's no need to mention
    callers when describing the function.
    
    Signed-off-by: default avatarZach Brown <zab@redhat.com>
    Signed-off-by: default avatarKent Overstreet <koverstreet@google.com>
    Cc: Felipe Balbi <balbi@ti.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Mark Fasheh <mfasheh@suse.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Asai Thambi S P <asamymuthupa@micron.com>
    Cc: Selvan Mani <smani@micron.com>
    Cc: Sam Bradshaw <sbradshaw@micron.com>
    Acked-by: default avatarJeff Moyer <jmoyer@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Reviewed-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    697f4d68