• Thomas Gleixner's avatar
    x86/vector: Respect affinity mask in irq descriptor · d6ffc6ac
    Thomas Gleixner authored
    The interrupt descriptor has a preset affinity mask at allocation
    time, which is usually the default affinity mask.
    
    The current code does not respect that mask and places the vector at some
    random CPU, which gets corrected later by a set_affinity() call. That's
    silly because the vector allocation can respect the mask upfront and place
    the interrupt on a CPU which is in the mask. If that fails, then the
    affinity is broken and a interrupt assigned on any online CPU.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Tested-by: default avatarJuergen Gross <jgross@suse.com>
    Tested-by: default avatarYu Chen <yu.c.chen@intel.com>
    Acked-by: default avatarJuergen Gross <jgross@suse.com>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Alok Kataria <akataria@vmware.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Rui Zhang <rui.zhang@intel.com>
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Len Brown <lenb@kernel.org>
    Link: https://lkml.kernel.org/r/20170913213156.431670325@linutronix.de
    d6ffc6ac
vector.c 30.7 KB