Skip to content
  • Tejun Heo's avatar
    blkcg, cfq-iosched: use GFP_NOWAIT instead of GFP_ATOMIC for non-critical allocations · d93a11f1
    Tejun Heo authored
    
    
    blkcg performs several allocations to track IOs per cgroup and enforce
    resource control.  Most of these allocations are performed lazily on
    demand in the IO path and thus can't involve reclaim path.  Currently,
    these allocations use GFP_ATOMIC; however, blkcg can gracefully deal
    with occassional failures of these allocations by punting IOs to the
    root cgroup and there's no reason to reach into the emergency reserve.
    
    This patch replaces GFP_ATOMIC with GFP_NOWAIT for the following
    allocations.
    
    * bdi_writeback_congested and blkcg_gq allocations in blkg_create().
    
    * radix tree node allocations for blkcg->blkg_tree.
    
    * cfq_queue allocation on ioprio changes.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Suggested-and-Reviewed-by: default avatarJeff Moyer <jmoyer@redhat.com>
    Suggested-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    d93a11f1