• Mike Travis's avatar
    x86: fix remove cpu_pda table patch · 7496b606
    Mike Travis authored
    Mike Travis wrote:
    > Ingo Molnar wrote:
    >> * Mike Travis <travis@sgi.com> wrote:
    >>
    >>> [Ingo - please replace "PATCH 07/11" with this one.]
    
    > >>>     *	Remove 544k bytes from the kernel by removing the boot_cpu_pda
    > >>> 	array from the data section and allocating it during startup.
    
    >>> 	Fixed panic in setup_per_cpu_areas when HOTPLUG_CPU not set.
    >>>
    >>> For inclusion into sched-devel/latest tree.
    >> sched-devel.git randconfig testing found another crash with your queue:
    >>
    >> [    0.111060] Brought up 1 CPUs
    >> [    0.111986] Total of 1 processors activated (4022.73 BogoMIPS).
    >> [    0.112987] Testing NMI watchdog ... <1>BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
    >> [    0.114982] IP: [<ffffffff8180d4a0>] check_nmi_watchdog+0xb0/0x210
    >> [    0.114982] PGD 0
    >> [    0.114982] Oops: 0000 [1] SMP
    >> [    0.114982] CPU 0
    >> [............]
    >>
    >>  http://redhat.com/~mingo/misc/config-Mon_Apr_28_23_25_25_CEST_2008.bad
    >>  http://redhat.com/~mingo/misc/log-Mon_Apr_28_23_25_25_CEST_2008.bad
    >>
    >> 	Ingo
    >
    > Hi Ingo,
    >
    > I need a bit more information on your hardware configuration.  Building a
    > kernel with the above config file started up fine on both the Intel and AMD
    > boxes.
    >
    > Based on the above output it looks like it might be a UP machine?
    ...
    
    Ok, I think I found it.  In check_nmi_watchdog():
    
            for (cpu = 0; cpu < NR_CPUS; cpu++)
                    prev_nmi_count[cpu] = cpu_pda(cpu)->__nmi_count;
    
    As I mentioned it works fine on both of my systems so could you try it out?
    
    Thanks!
    Mike
    --
    
      * Change function check_nmi_watchdog() to use nr_cpu_ids instead of NR_CPUS.
    
    Based on:
    	git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
        +   sched-devel/latest  .../mingo/linux-2.6-sched-devel.git
    Signed-off-by: default avatarMike Travis <travis@sgi.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    7496b606
nmi_64.c 10.9 KB