On 05/05/14 at 01:14pm, Baoquan He wrote: > Hi Rafael, > > Thanks for previous comments and suggestions. > > > I added the acpi_lapic in ia64. However I didn't find ia64 machine to > test it. Could you or anyone please help test this 2 patches? > > I don't know how to test UP system running SMP kernel with no LAPIC in > MADT when it's ia64 arch. > > Test steps for ia64 kdump: > > 1) get a multi-cpus ia64 machine, build a upstream kernel with SMP and > ACPI > 2)install kexec-tools, and edit /etc/sysconfig/kdump to make sure > "nr_cpus=1" is in KDUMP_COMMANDLINE_APPEND. Then load the kdump kernel > by below command: > > "kdumpctl restart" or "systemctl restart kdump" Sorry, here I assume people use fedora distros. The kdump execution command is like below string which is taken from my fedora automation script. /sbin/kexec -p '--command-line=BOOT_IMAGE=/vmlinuz-3.13.5-202.fc20.x86_64 root=UUID=f170152e-de83-46ee-9546-8ccd53f9753b ro rd.md=0 rd.lvm=0 rd.dm=0 vconsole.keymap=us rd.luks=0 vconsole.font=latarcyrheb-sun16 console=tty0 rd.shell LANG=en_US.UTF-8 console=ttyS0,115200n8 intel_iommu=on irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail disable_cpu_apicid=0' --initrd=/boot/initramfs-3.13.5-202.fc20.x86_64kdump.img /boot/vmlinuz-3.13.5-202.fc20.x86_64 Thanks Baoquan > > 3) After kdump kernel loaded, execute below shell command. This can make > crash happen in 2nd cpu. > > taskset -c 1 sh -c "echo c >/proc/sysrq-trigger" > > > 4) From console, below error message should not be printed any more. And > the cpu related to 2nd lapid is present, this can be checked by console > message and adding debugging code. > > "acpi LNXCPU:0a: BIOS reported wrong ACPI id 0 for the processor." > > -------- > For x86_64, the UP test is taken by adding "disableapic nr_cpus=1" into > cmdline of grub. The test for kdump is the same as above ia64. > > Thanks > Baoquan > > > On 05/05/14 at 12:48pm, Baoquan He wrote: > > This variable was defined and assigned in x86, is used to indicate > > whether LAPIC exists in MADT. Now introduce it into ia64 to help > > make correct judgment when get information for acpi processor later. > > > > Signed-off-by: Baoquan He <bhe@xxxxxxxxxx> > > --- > > arch/ia64/include/asm/acpi.h | 1 + > > arch/ia64/kernel/acpi.c | 3 +++ > > 2 files changed, 4 insertions(+) > > > > diff --git a/arch/ia64/include/asm/acpi.h b/arch/ia64/include/asm/acpi.h > > index d651102..b478219 100644 > > --- a/arch/ia64/include/asm/acpi.h > > +++ b/arch/ia64/include/asm/acpi.h > > @@ -85,6 +85,7 @@ ia64_acpi_release_global_lock (unsigned int *lock) > > ((Acq) = ia64_acpi_release_global_lock(&facs->global_lock)) > > > > #ifdef CONFIG_ACPI > > +extern int acpi_lapic; > > #define acpi_disabled 0 /* ACPI always enabled on IA64 */ > > #define acpi_noirq 0 /* ACPI always enabled on IA64 */ > > #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ > > diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c > > index 0d407b3..615ef81 100644 > > --- a/arch/ia64/kernel/acpi.c > > +++ b/arch/ia64/kernel/acpi.c > > @@ -56,6 +56,7 @@ > > > > #define PREFIX "ACPI: " > > > > +int acpi_lapic; > > unsigned int acpi_cpei_override; > > unsigned int acpi_cpei_phys_cpuid; > > > > @@ -676,6 +677,8 @@ int __init early_acpi_boot_init(void) > > if (ret < 1) > > printk(KERN_ERR PREFIX > > "Error parsing MADT - no LAPIC entries\n"); > > + else > > + acpi_lapic = 1; > > > > #ifdef CONFIG_SMP > > if (available_cpus == 0) { > > -- > > 1.8.5.3 > > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html