public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ben Woodard <woodard@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Vivek Goyal <vgoyal@redhat.com>, Neil Horman <nhorman@redhat.com>,
	kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
	Andi Kleen <ak@suse.de>,
	hbabu@us.ibm.com, Andi Kleen <andi@firstfloor.org>
Subject: Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu
Date: Thu, 29 Nov 2007 18:16:48 -0800	[thread overview]
Message-ID: <474F7290.8010504@redhat.com> (raw)
In-Reply-To: <m1d4tudun5.fsf@ebiederm.dsl.xmission.com>

Eric W. Biederman wrote:
> Vivek Goyal <vgoyal@redhat.com> writes:
> 
>> Ok. Got it. So in this case we route the interrupts directly through LAPIC
>> and put LVT0 in ExtInt mode and IOAPIC is bypassed.
>>
>> I am looking at Intel Multiprocessor specification v1.4 and as per figure
>> 3-3 on page 3-9, 8259 is connected to LINTIN0 line, which in turn is 
>> connected to LINTIN0 pin on all processors. If that is the case, even in
>> this mode, all the CPU should see the timer interrupts (which is coming
>> from 8259)?
> 
> However things are implemented completely differently now.  I don't think
> the coherent hypertransport domain of AMD processors actually routes
> ExtINT interrupts to all cpus but instead one (the default route?) is
> picked.
> 
> So I think for the kdump case we pretty much need to use an IOAPIC
> in virtual wire mode for recent AMD systems.
> 
> For current Intel systems I believe either scenario still works.
> 
>> Can you print the LAPIC registers (print_local_APIC) during normal boot
>> and during kdump boot and paste here?
> 
> It's worth a look.
> 
> I still think we need to just use apic mode at kernel startup, and
> be done with it.
> 

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.
          */


> Eric
> 
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec


-- 
-ben
-=-

  parent reply	other threads:[~2007-11-30  2:16 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-27  1:47 [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu Neil Horman
2007-11-27  4:12 ` Eric W. Biederman
2007-11-27 13:13   ` Neil Horman
2007-11-27 13:28     ` Eric W. Biederman
2007-11-27 13:45       ` Andi Kleen
2007-11-27 14:28         ` Neil Horman
2007-11-27 14:43           ` Andi Kleen
2007-11-27 14:48             ` Neil Horman
2007-11-27 15:24               ` Andi Kleen
2007-11-27 15:30               ` Eric W. Biederman
2007-11-27 16:45                 ` Neil Horman
2007-11-27 20:50                 ` Ben Woodard
2007-11-27 21:05                   ` Neil Horman
2007-11-27 22:38                     ` Eric W. Biederman
2007-11-27 23:15                       ` Ben Woodard
2007-11-28  0:15                         ` Eric W. Biederman
2007-11-27 23:40                       ` Neil Horman
2007-11-28  0:43                         ` Eric W. Biederman
2007-11-28 15:54                     ` Neil Horman
2007-11-27 14:56         ` Eric W. Biederman
2007-11-27 15:34           ` Neil Horman
2007-11-27 18:41           ` Ben Woodard
2007-11-27 19:42             ` Neil Horman
2007-11-27 20:00               ` Vivek Goyal
2007-11-27 20:52                 ` Neil Horman
2007-11-27 22:24                 ` Andi Kleen
2007-11-27 23:24                   ` Ben Woodard
2007-11-27 23:56                     ` Andi Kleen
2007-11-28 15:36                     ` Vivek Goyal
2007-11-28 16:02                       ` Neil Horman
2007-11-28 17:36                         ` Eric W. Biederman
2007-11-28 18:16                           ` Neil Horman
2007-11-28 19:05                         ` Vivek Goyal
2007-11-28 19:42                           ` Eric W. Biederman
2007-11-28 21:09                             ` Neil Horman
2007-11-28 23:27                               ` Eric W. Biederman
2007-11-30  2:16                             ` Ben Woodard [this message]
2007-11-30  2:54                               ` Eric W. Biederman
2007-11-30  8:59                                 ` Yinghai Lu
2007-11-30 14:35                                   ` Vivek Goyal
2007-11-30 14:32                                 ` Neil Horman
2007-11-30  2:12                           ` Ben Woodard
2007-11-30 14:42                             ` Vivek Goyal
2007-11-30 14:51                               ` Neil Horman
2007-12-06 21:39                                 ` Neil Horman
2007-12-06 22:11                                   ` Vivek Goyal
2007-12-07  0:10                                     ` Neil Horman
2007-12-07 14:39                                       ` Vivek Goyal
2007-12-07 14:53                                         ` Neil Horman
2007-12-07 15:16                                           ` Vivek Goyal
2007-12-07 15:53                                             ` Neil Horman
2007-12-07 18:46                                               ` Eric W. Biederman
2007-12-07  0:33                                     ` Eric W. Biederman
2007-12-07  2:04                                       ` Neil Horman
2007-12-07  8:50                                       ` Yinghai Lu
2007-12-07  9:22                                         ` Yinghai Lu
2007-12-07 14:21                                           ` Neil Horman
2007-12-07 17:58                                             ` Neil Horman
2007-12-07 19:19                                               ` yhlu
2007-12-07 20:13                                                 ` Neil Horman
2007-12-10 15:39                                               ` Neil Horman
2007-12-10 16:20                                                 ` Vivek Goyal
2007-12-11  1:17                                                 ` Eric W. Biederman
2007-12-11  1:08                                               ` Eric W. Biederman
2007-12-11  3:43                                                 ` Neil Horman
2007-12-11  4:48                                                   ` Eric W. Biederman
2007-12-11  6:31                                                     ` Yinghai Lu
2007-12-11 14:39                                                     ` Neil Horman
2007-12-11 15:29                                                       ` Eric W. Biederman
2007-12-11 18:00                                                         ` Yinghai Lu
2007-12-11 18:29                                                           ` Neil Horman
2007-12-11 18:45                                                             ` Yinghai Lu
2007-12-11 18:22                                                         ` Neil Horman
2007-12-11 18:46                                                           ` Eric W. Biederman
2007-12-11 19:24                                                             ` Neil Horman
2007-12-11 19:51                                                               ` Yinghai Lu
2007-12-11 20:59                                                                 ` Neil Horman
2007-12-12  0:16                                                                   ` Ben Woodard
2007-12-12  0:52                                                                     ` Neil Horman
2007-12-12  1:07                                                                       ` Yinghai Lu
2007-12-12  8:43                                                                   ` [PATCH] k8: Enable legacy irqs with extended cpu ids Eric W. Biederman
2007-12-12 14:21                                                                   ` [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu Andi Kleen
2007-12-12 15:55                                                                     ` Neil Horman
2007-12-12 16:07                                                                       ` Andi Kleen
2007-12-12 19:43                                                                         ` Eric W. Biederman
2007-12-12 20:22                                                                           ` Neil Horman
2007-12-12 21:32                                                                             ` Eric W. Biederman
2007-12-13 14:39                                                                               ` Neil Horman
2007-12-13 15:16                                                                                 ` Andi Kleen
2007-12-13 15:32                                                                                   ` Neil Horman
2007-12-17 11:38                                                                                     ` Neil Horman
2007-12-18  0:13                                                                                   ` Eric W. Biederman
2007-12-17 15:16                                                                                 ` Ingo Molnar
2007-12-17 15:47                                                                                   ` Neil Horman
2007-12-07 18:36                                             ` Eric W. Biederman
2007-12-07 18:48                                               ` Neil Horman
2007-11-27 13:53       ` Neil Horman
2007-11-27 10:55 ` Andi Kleen
2007-11-27 11:19   ` Eric W. Biederman
2007-11-27 13:28   ` Neil Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=474F7290.8010504@redhat.com \
    --to=woodard@redhat.com \
    --cc=ak@suse.de \
    --cc=andi@firstfloor.org \
    --cc=ebiederm@xmission.com \
    --cc=hbabu@us.ibm.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nhorman@redhat.com \
    --cc=vgoyal@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox