Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Eric W. Biederman <ebiederm@...>
Cc: Vivek Goyal <vgoyal@...>, Neil Horman <nhorman@...>, <kexec@...>, <linux-kernel@...>, Andi Kleen <ak@...>, <hbabu@...>, Andi Kleen <andi@...>
Date: Thursday, November 29, 2007 - 10:16 pm

Eric W. Biederman wrote:

Neil whipped up a patch to try this and evidently it worked on his test 
boxes but it didn't work very well on our problem tests box. It hung 
after the kernel printed "Ready". i.e. on a normal boot I get:

<snip>
2007-11-29 13:48:29 Loading
vmlinuz-2.6.18-13chaos.ben.test................................
2007-11-29 13:48:29 Loading
initrd-2.6.18-13chaos.ben.test.........................................................
..............................................................................
2007-11-29 13:48:29 Ready.
2007-11-29 13:48:30 Linux version 2.6.18-13chaos.ben.test (ben@wopri) (gcc
version 4.1.2 20070626 (Red Hat 4.1.2-14
)) #10 SMP Thu Nov 29 13:11:49 PST 2007
2007-11-29 13:48:30 Command line: initrd=initrd-2.6.18-13chaos.ben.test
loglevel=8 console=ttyS0,115200n8 crashkernel=128M@16M elevator=deadline 
swiotlb=65536 selinux=0 apic=debug 
BOOT_IMAGE=vmlinuz-2.6.18-13chaos.ben.test BOOTIF=
01-00-30-48-57-91-56

With Neil's patch:
2007-11-29 17:12:55 PXELINUX 2.11 2004-08-16  Copyright (C) 1994-2004 H. 
Peter Anvin
2007-11-29 17:12:55 Boot options [default: 2.6.18-54.el5.bz336371]:
2007-11-29 17:12:55 linux-2.6.18-13chaos.ben.test-2.6.18-54.el5.bz336371
2007-11-29 17:12:55 linux
2007-11-29 17:12:55 linux-2.6.18-54.el5.bz336371
2007-11-29 17:12:55 linux-2.6.18-52.el5
2007-11-29 17:12:55 linux-2.6.18-13chaos.ben.test-2.6.18-13chaos.ben.test
2007-11-29 17:12:55 linux-2.6.23-0.214.rc8.git2.fc8
2007-11-29 17:12:55 linux-2.6.18-8.1.14.el5
2007-11-29 17:12:55 linux-2.6.18-7chaos
2007-11-29 17:12:55 boot:
2007-11-29 17:13:02 Loading
vmlinuz-2.6.18-13chaos.ben.test................................
2007-11-29 17:13:02 Loading
initrd-2.6.18-13chaos.ben.test.........................................................
..............................................................................
2007-11-29 17:13:02 Ready.
(END)
That's all she wrote. End of story. Had to reboot to another kernel to 
make get it back.

Neil's patch:

--- linux-2.6.18.noarch/arch/x86_64/kernel/i8259.c.orig 2007-11-28 
18:00:31.000000000 -0500
+++ linux-2.6.18.noarch/arch/x86_64/kernel/i8259.c      2007-11-29 
10:37:14.000000000 -0500
@@ -599,4 +599,30 @@

         if (!acpi_ioapic)
                 setup_irq(2, &irq2);
+
+       /*
+         * Switch from PIC to APIC mode.
+         */
+        connect_bsp_APIC();
+        setup_local_APIC();
+
+        if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_id) {
+                panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
+                      GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_id);
+                /* Or can we switch back to PIC here? */
+        }
+
+        /*
+         * Now start the IO-APICs
+         */
+        if (!skip_ioapic_setup && nr_ioapics)
+                setup_IO_APIC();
+        else
+                nr_ioapics = 0;
+
+       /*
+        * Disable local irqs here so start_kernel doesn't complain
+        */
+       local_irq_disable();
+
  }
--- linux-2.6.18.noarch/arch/x86_64/kernel/smpboot.c.orig 
2007-11-28 18:07:33.000000000 -0500
+++ linux-2.6.18.noarch/arch/x86_64/kernel/smpboot.c    2007-11-29 
10:37:59.000000000 -0500
@@ -1088,26 +1088,6 @@


         /*
-        * Switch from PIC to APIC mode.
-        */
-       connect_bsp_APIC();
-       setup_local_APIC();
-
-       if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_id) {
-               panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
-                     GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_id);
-               /* Or can we switch back to PIC here? */
-       }
-
-       /*
-        * Now start the IO-APICs
-        */
-       if (!skip_ioapic_setup && nr_ioapics)
-               setup_IO_APIC();
-       else
-               nr_ioapics = 0;
-
-       /*
          * Set up local APIC timer on boot CPU.
          */




-- 
-ben
-=-
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 12:12 am)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 9:28 am)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 10:56 am)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Wed Nov 28, 1:36 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Wed Nov 28, 3:42 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Ben Woodard, (Thu Nov 29, 10:16 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Thu Nov 29, 10:54 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Wed Nov 28, 7:27 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Mon Dec 10, 9:08 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Dec 11, 12:48 am)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Dec 11, 11:29 am)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Dec 11, 2:46 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Wed Dec 12, 3:43 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Wed Dec 12, 5:32 pm)
Re: [PATCH] k8: Enable legacy irqs with extended cpu ids, Eric W. Biederman, (Wed Dec 12, 4:43 am)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Mon Dec 10, 9:17 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 11:30 am)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 6:38 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 8:15 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 8:43 pm)
Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels..., Eric W. Biederman, (Tue Nov 27, 7:19 am)