• Nick Piggin's avatar
    [PATCH] blk: __make_request efficiency · 450991bc
    Nick Piggin authored
    In the case where the request is not able to be merged by the elevator, don't
    retake the lock and retry the merge mechanism after allocating a new request.
    
    Instead assume that the chance of a merge remains slim, and now that we've
    done most of the work allocating a request we may as well just go with it.
    
    Also be rid of the GFP_ATOMIC allocation: we've got working mempools for the
    block layer now, so let's save atomic memory for things like networking.
    
    Lastly, in get_request_wait, do an initial get_request call before going into
    the waitqueue.  This is reported to help efficiency.
    Signed-off-by: default avatarNick Piggin <nickpiggin@yahoo.com.au>
    Cc: Jens Axboe <axboe@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    450991bc
ll_rw_blk.c 90.4 KB