linux_dsm_epyc7002/arch/x86/kernel/apic
Thomas Gleixner 023a611748 x86/apic/x2apic: Simplify cluster management
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: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Juergen Gross <jgross@suse.com>
Tested-by: Yu Chen <yu.c.chen@intel.com>
Acked-by: Juergen 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
2017-09-25 20:51:51 +02:00
..
apic_common.c x86/apic: Move common APIC callbacks 2017-09-25 20:51:50 +02:00
apic_flat_64.c x86/apic: Sanitize return value of apic.set_apic_id() 2017-09-25 20:51:48 +02:00
apic_noop.c x86/apic: Move APIC noop specific functions 2017-09-25 20:51:49 +02:00
apic_numachip.c x86/apic: Sanitize return value of apic.set_apic_id() 2017-09-25 20:51:48 +02:00
apic.c x86/apic: Move common APIC callbacks 2017-09-25 20:51:50 +02:00
bigsmp_32.c x86/apic: Sanitize return value of check_apicid_used() 2017-09-25 20:51:49 +02:00
htirq.c genirq/irqdomain: Update irq_domain_ops.activate() signature 2017-09-25 20:38:24 +02:00
hw_nmi.c kernel/watchdog: split up config options 2017-07-12 16:26:02 -07:00
io_apic.c Merge branch 'irq/core' into x86/apic 2017-09-25 20:39:01 +02:00
ipi.c x86/kernel: Audit and remove any unnecessary uses of module.h 2016-07-14 15:06:41 +02:00
Makefile x86/apic: Sanitize 32/64bit APIC callbacks 2017-09-25 20:51:50 +02:00
msi.c x86/msi: Create named irq domains 2017-06-22 18:21:11 +02:00
probe_32.c x86/apic: Move probe32 specific APIC functions 2017-09-25 20:51:49 +02:00
probe_64.c x86/apic: Remove duplicated include from probe_64.c 2016-07-19 16:02:31 +02:00
vector.c x86/irq: Get rid of the 'first_system_vector' indirection bogosity 2017-08-29 11:42:21 +02:00
x2apic_cluster.c x86/apic/x2apic: Simplify cluster management 2017-09-25 20:51:51 +02:00
x2apic_phys.c x86/apic: Sanitize return value of apic.set_apic_id() 2017-09-25 20:51:48 +02:00
x2apic_uv_x.c x86/apic: Sanitize return value of apic.set_apic_id() 2017-09-25 20:51:48 +02:00
x2apic.h x86/apic: Sanitize return value of apic.set_apic_id() 2017-09-25 20:51:48 +02:00