android_kernel_xiaomi_sm8350/arch/x86_64/kernel
Ravikiran G Thirumalai 60c1bc82d9 [PATCH] x86_64: to use lapic ids instead of initial apic ids
phys_proc_id[] on AMD boxes is right now populated with the initial
apic id, obtained by the cpuid instruction.  But, the initial apic id
need not be the local apic id on clustered APIC systems (see comment at
x86_64/kernel/genapic_cluster.c, line 110).  On vSMPowered with AMD
CPUs the cpu_to_node will turn out to be incorrect (as apicid_to_node[] is
indexed by the initial apic id rather than the local apic id).
On vSMPowered boxes with Intel CPUs this is working correctly as
phys_proc_id[] is initialized correctly in detect_ht().

This fixes AMD boot path according to specification, to use the correct
routines for local apic id and socket ids.  We use
hard_smp_processor_id() to read the local apic id, and phys_pkg_id() to
determine socket id for phys_proc_id[]

Patch tested on Tyan multicore boxes as well as vSMPowered boxes.

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Shai Fultheim <shai@scalex86.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-25 09:10:54 -08:00
..
acpi
cpufreq
aperture.c [PATCH] x86_64: no_iommu removal in pci-gart.c 2006-02-26 09:53:29 -08:00
apic.c Revert "[PATCH] x86_64: Only do the clustered systems have unsynchronized TSC assumption on IBM systems" 2006-02-27 20:41:56 -08:00
asm-offsets.c
crash_dump.c
crash.c
e820.c
early_printk.c [PATCH] early_printk: cleanup trailiing whitespace 2006-03-24 07:33:25 -08:00
entry.S Revert "[PATCH] x86-64: Fix up handling of non canonical user RIPs" 2006-03-14 08:01:47 -08:00
genapic_cluster.c
genapic_flat.c
genapic.c
head64.c
head.S [PATCH] x86_64: miscellaneous cleanup 2006-03-25 09:10:54 -08:00
i387.c
i8259.c
init_task.c
io_apic.c [PATCH] x86_64: Better ATI timer fix 2006-02-26 09:53:31 -08:00
ioport.c
irq.c [PATCH] more for_each_cpu() conversions 2006-03-23 07:38:17 -08:00
kprobes.c [PATCH] sem2mutex: kprobes 2006-03-23 07:38:12 -08:00
ldt.c
machine_kexec.c [PATCH] fix kexec asm 2006-03-08 14:15:04 -08:00
Makefile [PATCH] x86-64: react to new topology.c location 2006-02-25 11:12:15 -08:00
mce_amd.c
mce_intel.c
mce.c [PATCH] x86_64: {set,clear,test}_bit() related cleanup and pci_mmcfg_init() fix 2006-03-24 07:33:15 -08:00
module.c
mpparse.c [PATCH] x86_64: cleanup allocating logical cpu numbers in x86_64 2006-03-25 09:10:53 -08:00
nmi.c [PATCH] x86_64: actively synchronize vmalloc area when registering certain callbacks 2006-03-25 09:10:53 -08:00
pci-dma.c
pci-gart.c [PATCH] x86_64: Use cpu_relax in poll loop in GART IOMMU 2006-03-25 09:10:53 -08:00
pci-nommu.c [PATCH] x86_64: IOMMU printk cleanup 2006-02-04 16:43:15 -08:00
pci-swiotlb.c [PATCH] x86_64: IOMMU printk cleanup 2006-02-04 16:43:15 -08:00
pmtimer.c
process.c [PATCH] x86_64: save FPU context slightly later 2006-03-25 09:10:52 -08:00
ptrace.c [PATCH] x86_64: disallow multi-byte hardware execution breakpoints 2006-03-25 09:10:52 -08:00
reboot.c
relocate_kernel.S
setup64.c [PATCH] x86_64: miscellaneous cleanup 2006-03-25 09:10:54 -08:00
setup.c [PATCH] x86_64: to use lapic ids instead of initial apic ids 2006-03-25 09:10:54 -08:00
signal.c [PATCH] swsusp: finally solve mysqld problem 2006-03-23 07:38:08 -08:00
smp.c
smpboot.c [PATCH] x86_64: Move the SMP time selection earlier 2006-02-26 09:53:31 -08:00
suspend_asm.S
suspend.c
sys_x86_64.c
syscall.c
time.c [PATCH] x86_64: Don't need to read PIT in timer handler when PM timer is used 2006-03-25 09:10:53 -08:00
trampoline.S
traps.c [PATCH] x86_64: miscellaneous cleanup 2006-03-25 09:10:54 -08:00
vmlinux.lds.S
vsmp.c
vsyscall.c
x8664_ksyms.c [PATCH] x86_64: remove dead do_softirq_thunk 2006-03-25 09:10:53 -08:00