• Jens Axboe's avatar
    block: add support for IO CPU affinity · c7c22e4d
    Jens Axboe authored
    This patch adds support for controlling the IO completion CPU of
    either all requests on a queue, or on a per-request basis. We export
    a sysfs variable (rq_affinity) which, if set, migrates completions
    of requests to the CPU that originally submitted it. A bio helper
    (bio_set_completion_cpu()) is also added, so that queuers can ask
    for completion on that specific CPU.
    
    In testing, this has been show to cut the system time by as much
    as 20-40% on synthetic workloads where CPU affinity is desired.
    
    This requires a little help from the architecture, so it'll only
    work as designed for archs that are using the new generic smp
    helper infrastructure.
    Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
    c7c22e4d
blk-softirq.c 3.91 KB