Skip to content
  • Tejun Heo's avatar
    cfq-iosched: remove @gfp_mask from cfq_find_alloc_queue() · 2da8de0b
    Tejun Heo authored
    
    
    Even when allocations fail, cfq_find_alloc_queue() always returns a
    valid cfq_queue by falling back to the oom cfq_queue.  As such, there
    isn't much point in taking @gfp_mask and trying "harder" if __GFP_WAIT
    is set.  GFP_NOWAIT allocations don't fail often and even when they do
    the degraded behavior is acceptable and temporary.
    
    After all, the only reason get_request(), which ultimately determines
    the gfp_mask, cares about __GFP_WAIT is to guarantee request
    allocation, assuming IO forward progress, for callers which are
    willing to wait.  There's no reason for cfq_find_alloc_queue() to
    behave differently on __GFP_WAIT when it already has a fallback
    mechanism.
    
    Remove @gfp_mask from cfq_find_alloc_queue() and propagate the changes
    to its callers.  This simplifies the function quite a bit and will
    help making async queues per-cfq_group.
    
    v2: Updated to reflect GFP_ATOMIC -> GPF_NOWAIT.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reviewed-by: default avatarJeff Moyer <jmoyer@redhat.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Arianna Avanzini <avanzini.arianna@gmail.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    2da8de0b