• Thomas Gleixner's avatar
    x86/apic/x2apic: Simplify cluster management · 023a6117
    Thomas Gleixner authored
    The cluster management code creates a cluster mask per cpu, which requires
    that on cpu on/offline all cluster masks have to be iterated and
    updated. Other information about the cluster is in different per cpu
    variables.
    
    Create a data structure which holds all information about a cluster and
    fill it in when the first CPU of a cluster comes online. If another CPU of
    a cluster comes online it just finds the pointer to the existing cluster
    structure and reuses it.
    
    That simplifies all usage sites and gets rid of quite some pointless
    iterations over the online cpus to find the cpus which belong to the
    cluster.
    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/20170913213153.992629420@linutronix.de
    023a6117
x2apic_cluster.c 6.98 KB