• Christoph Hellwig's avatar
    genirq/affinity: Assign vectors to all present CPUs · 9a0ef98e
    Christoph Hellwig authored
    Currently the irq vector spread algorithm is restricted to online CPUs,
    which ties the IRQ mapping to the currently online devices and doesn't deal
    nicely with the fact that CPUs could come and go rapidly due to e.g. power
    management.
    
    Instead assign vectors to all present CPUs to avoid this churn.
    
    Build a map of all possible CPUs for a given node, as the architectures
    only provide a map of all onlines CPUs. Do this dynamically on each call
    for the vector assingments, which is a bit suboptimal and could be
    optimized in the future by provinding a mapping from the arch code.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: linux-block@vger.kernel.org
    Cc: Sagi Grimberg <sagi@grimberg.me>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: linux-nvme@lists.infradead.org
    Cc: Keith Busch <keith.busch@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20170603140403.27379-5-hch@lst.de
    9a0ef98e
affinity.c 5.11 KB