• Jens Axboe's avatar
    block: let io_schedule() flush the plug inline · a237c1c5
    Jens Axboe authored
    Linus correctly observes that the most important dispatch cases
    are now done from kblockd, this isn't ideal for latency reasons.
    The original reason for switching dispatches out-of-line was to
    avoid too deep a stack, so by _only_ letting the "accidental"
    flush directly in schedule() be guarded by offload to kblockd,
    we should be able to get the best of both worlds.
    
    So add a blk_schedule_flush_plug() that offloads to kblockd,
    and only use that from the schedule() path.
    Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
    a237c1c5
sched.c 229 KB