+ i386-kdump-boot-cpu-physical-apicid-fix.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     i386 kdump boot cpu physical apicid fix

has been added to the -mm tree.  Its filename is

     i386-kdump-boot-cpu-physical-apicid-fix.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: i386 kdump boot cpu physical apicid fix
From: Vivek Goyal <vgoyal@xxxxxxxxxx>


o Kdump second kernel boot fails after a system crash if second kernel
  is UP and acpi=off and if crash occurred on a non-boot cpu.

o Issue here is that MP tables report boot cpu lapic id as 0 but second
  kernel is booting on a different processor and MP table data is stale
  in this context. Hence apic_id_registered() check fails in setup_local_APIC()
  when called from APIC_init_uniprocessor().

o Problem is not seen if ACPI is enabled as in that case
  boot_cpu_physical_apicid is read from the LAPIC.

o Problem is not seen with SMP kernels as well because in this case also
  boot_cpu_physical_apicid is read from LAPIC. (smp_boot_cpus()).

o The problem is fixed by reading boot_cpu_physical_apicid from LAPIC
  if it is a UP kernel and CRASH_DUMP is enabled.

Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 arch/i386/kernel/apic.c |    8 ++++++++
 1 files changed, 8 insertions(+)

diff -puN arch/i386/kernel/apic.c~i386-kdump-boot-cpu-physical-apicid-fix arch/i386/kernel/apic.c
--- devel/arch/i386/kernel/apic.c~i386-kdump-boot-cpu-physical-apicid-fix	2006-05-18 14:19:07.000000000 -0700
+++ devel-akpm/arch/i386/kernel/apic.c	2006-05-18 14:19:07.000000000 -0700
@@ -1341,6 +1341,14 @@ int __init APIC_init_uniprocessor (void)
 
 	connect_bsp_APIC();
 
+	/*
+	 * Hack: In case of kdump, after a crash, kernel might be booting
+	 * on a cpu with non-zero lapic id. But boot_cpu_physical_apicid
+	 * might be zero if read from MP tables. Get it from LAPIC.
+	 */
+#ifdef CONFIG_CRASH_DUMP
+	boot_cpu_physical_apicid = GET_APIC_ID(apic_read(APIC_ID));
+#endif
 	phys_cpu_present_map = physid_mask_of_physid(boot_cpu_physical_apicid);
 
 	setup_local_APIC();
_

Patches currently in -mm which might be from vgoyal@xxxxxxxxxx are

origin.patch
kdump-maintainer-info-update.patch
i386-kdump-boot-cpu-physical-apicid-fix.patch
i386-export-memory-more-than-4g-through-proc-iomem.patch
kconfigurable-resources-core-changes.patch
kconfigurable-resources-core-changes-i386-fix.patch
kconfigurable-resources-core-changes-fix.patch
kconfigurable-resources-driver-pci-changes.patch
kconfigurable-resources-driver-others-changes.patch
kconfigurable-resources-arch-dependent-changes-arch-a-i.patch
kconfigurable-resources-arch-dependent-changes-arch-a-i-fix.patch
kconfigurable-resources-arch-dependent-changes-arch-j-p.patch
kconfigurable-resources-arch-dependent-changes-arch-q-z.patch
typesh-sector_t-and-blkcnt_t-arent-for-userspace.patch
kconfigurable-resources-mtd-fixes.patch
mpt-fusion-driver-initialization-failure-fix.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86-fix.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86-fix-fix.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86-fix-fix-fix.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86_64-fix.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86_64-fix-fix.patch
register-hot-added-memory-to-iomem-resource.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux