Re: [PATCH 2.5.72] Fix boot deadlock on MTRR main.c:ipi_handler

Mark Haverkamp (markh@osdl.org)
23 Jun 2003 08:00:01 -0700


On Thu, 2003-06-19 at 19:20, Perez-Gonzalez, Inaky wrote:
> Hi All
>
> Stomped over this one this morning; tried to boot
> 2.5.72 (config attached) into my 2xP3 Coppermine
> 933 MHz and it would get stuck just after printing
> the mttr banner.
>
> The NMI watchdog would kick in and print a dump
> pointing to arch/i386/kernel/cpu/mtrr/main.c:ipi_handler:
>
> NMI Watchdog detected LOCKUP on CPU1, eip c0113b70, registers:
> CPU: 1
> EIP: 0060:[<c0113b70>] Not tainted
> EFLAGS: 00000082
> EIP is at ipi_handler+0x60/0x80
> eax: c014b2fe ebx: c2bf5f60 ecx: 000002ff edx: 00000000
> esi: 00000086 edi: c2bf2000 ebp: c2bf3f5c esp: c2bf3f44
> ds: 007b es: 007b ss: 0068
> Process swapper (pid: 0, threadinfo=c2bf2000 task=c2bf72d0)
> Stack: c0464228 00000046 c0495088 00000001 c2bf2000 00000000 c2bf3f70
> c0118412
> c2bf5f60 c01072a0 c2bf2000 c2bf3fac c010a50e c01072a0 00000000
> c2bf2000
> c2bf2000 c2bf2000 c2bf3fac 00000000 0000007b c2bf007b fffffffb
> c01072d0
> Call Trace:
> [<c0118412>] smp_call_function_interrupt+0x42/0xa0
> [<c01072a0>] default_idle+0x0/0x40
> [<c010a50e>] call_function_interrupt+0x1a/0x20
> [<c01072a0>] default_idle+0x0/0x40
> [<c01072d0>] default_idle+0x30/0x40
> [<c010736a>] cpu_idle+0x4a/0x60
> [<c012532d>] printk+0x1dd/0x290
>
> Code: f3 90 8b 43 04 85 c0 75 f7 56 9d 83 c4 10 5b 5e 5d c3 a1 44
> console shuts up ...
>
> Sooo .. decided to do the binary search thingie and tracked
> it down to patch-2.5.70-bk15-bk15.gz, change set 1.28
> (http://linux.bkbits.net:8080/linux-2.5/diffs/arch/i386/kernel/cpu/mtrr/main
> .c@1.28?nav=index.html|tags|ChangeSet@1.1215.18.33..|cset@1.1215.114.28),
>
> where mtrr_init() is changed from being a core_initcall to be a
> subsys_initcall(). Reverting that changes Fixes It For Me (tm)
> both in 2.5.70-bk16 and 2.5.72. No adversities seen so far.
>
> Please apply:
>
> --- arch/i386/kernel/cpu/mtrr/main.c~ 2003-06-16 21:19:39.000000000 -0700
> +++ arch/i386/kernel/cpu/mtrr/main.c 2003-06-19 18:52:38.000000000 -0700
> @@ -701,5 +701,5 @@
> "write-back", /* 6 */
> };
>
> -subsys_initcall(mtrr_init);
> +core_initcall(mtrr_init);

This fixes a boot hang problem that I have been seeing on my three
machines.

-- 
Mark Haverkamp <markh@osdl.org>

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/