• Kent Overstreet's avatar
    aio: change reqs_active to include unreaped completions · 3e845ce0
    Kent Overstreet authored
    The aio code tries really hard to avoid having to deal with the
    completion ringbuffer overflowing.  To do that, it has to keep track of
    the number of outstanding kiocbs, and the number of completions
    currently in the ringbuffer - and it's got to check that every time we
    allocate a kiocb.  Ouch.
    
    But - we can improve this quite a bit if we just change reqs_active to
    mean "number of outstanding requests and unreaped completions" - that
    means kiocb allocation doesn't have to look at the ringbuffer, which is
    a fairly significant win.
    Signed-off-by: default avatarKent Overstreet <koverstreet@google.com>
    Cc: Zach Brown <zab@redhat.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>
    Cc: Jeff Moyer <jmoyer@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Signed-off-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>
    3e845ce0
aio.c 36.3 KB