07c7c47444
Remove clustered APIC mode. There's little point in the use of clustered APIC mode, broadcasting is limited to within the cluster only, and chipsets have bugs in this area as well. So default to physical APIC mode when the CPU count is large, and default to logical APIC mode when the CPU count is 8 or smaller. (this patch only removes the use of genapic_cluster and cleans up the resulting genapic.c file - removal of all remaining traces of clustered mode will be done by another patch.) Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Suresh Siddha <suresh.b.siddha@intel.com> Cc: Andi Kleen <ak@suse.de> Cc: "Li, Shaohua" <shaohua.li@intel.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@osdl.org>
37 lines
920 B
C
37 lines
920 B
C
#ifndef _ASM_GENAPIC_H
|
|
#define _ASM_GENAPIC_H 1
|
|
|
|
/*
|
|
* Copyright 2004 James Cleverdon, IBM.
|
|
* Subject to the GNU Public License, v.2
|
|
*
|
|
* Generic APIC sub-arch data struct.
|
|
*
|
|
* Hacked for x86-64 by James Cleverdon from i386 architecture code by
|
|
* Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
|
|
* James Cleverdon.
|
|
*/
|
|
|
|
struct genapic {
|
|
char *name;
|
|
u32 int_delivery_mode;
|
|
u32 int_dest_mode;
|
|
int (*apic_id_registered)(void);
|
|
cpumask_t (*target_cpus)(void);
|
|
cpumask_t (*vector_allocation_domain)(int cpu);
|
|
void (*init_apic_ldr)(void);
|
|
/* ipi */
|
|
void (*send_IPI_mask)(cpumask_t mask, int vector);
|
|
void (*send_IPI_allbutself)(int vector);
|
|
void (*send_IPI_all)(int vector);
|
|
/* */
|
|
unsigned int (*cpu_mask_to_apicid)(cpumask_t cpumask);
|
|
unsigned int (*phys_pkg_id)(int index_msb);
|
|
};
|
|
|
|
extern struct genapic *genapic;
|
|
|
|
extern struct genapic apic_flat;
|
|
extern struct genapic apic_physflat;
|
|
|
|
#endif
|