Messages in this thread | | | Date | Tue, 22 Mar 2005 08:24:13 +0100 | From | Ingo Molnar <> | Subject | Re: [patch] Real-Time Preemption, -RT-2.6.12-rc1-V0.7.41-01 |
| |
* Paul E. McKenney <paulmck@us.ibm.com> wrote:
> > it includes the latest round of RCU fixes - but doesnt solve the SMP > > bootup crash. > > Hello, Ingo, > > Does the following help with the SMP problem? This fix and the > earlier one make my old patch survive a few rounds of kernbench on a > 4-CPU x86 box. [...]
does not seem to fix my testbox (see the crash log below). I've uploaded the 40-02 patch with both of your fixes (maybe i mismerged something somewhere). Does it boot on your box with PREEMPT_RT enabled? The patch order is:
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2 http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.12-rc1.bz2 http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.12-rc1-V0.7.41-02
Ingo
NET: Registered protocol family 16 BUG: Unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip: c0131bcc *pde = 00000000 Oops: 0002 [#1] PREEMPT SMP Modules linked in: CPU: 1 EIP: 0060:[<c0131bcc>] Not tainted VLI EFLAGS: 00010297 (2.6.12-rc1-RT-V0.7.41-01) EIP is at rcu_advance_callbacks+0x3c/0x80 eax: 00000000 ebx: c050f280 ecx: c12191e0 edx: 00000000 esi: c1341c64 edi: c1341be4 ebp: c1355dd0 esp: c1355dc8 ds: 007b es: 007b ss: 0068 preempt: 00000003 Process khelper (pid: 17, threadinfo=c1354000 task=c13538d0) Stack: 00000001 c12191e0 c1355de4 c0131c47 00000001 c1341bdc c13004d8 c1355e00 c017e529 c1341bdc c04d6e80 c1358006 fffffffe c1355e54 c1355e70 c0174aac c1341bdc c1355e50 c1355e4c c1355e54 c1358001 c1341bdc c04cf920 00000286 Call Trace: [<c010412f>] show_stack+0x7f/0xa0 (28) [<c01042da>] show_registers+0x16a/0x1e0 (56) [<c0104511>] die+0x101/0x190 (64) [<c0115862>] do_page_fault+0x442/0x680 (216) [<c0103d9b>] error_code+0x2b/0x30 (68) [<c0131c47>] call_rcu+0x37/0x70 (20) [<c017e529>] dput+0x139/0x210 (28) [<c0174aac>] __link_path_walk+0x9fc/0xf80 (112) [<c017507a>] link_path_walk+0x4a/0x130 (100) [<c017546e>] path_lookup+0x9e/0x1c0 (32) [<c01708c8>] open_exec+0x28/0x100 (100) [<c0171ae4>] do_execve+0x44/0x220 (36) [<c0101da2>] sys_execve+0x42/0xa0 (36) [<c0103315>] syscall_call+0x7/0xb (-8096) --------------------------- | preempt count: 00000004 ] | 4-level deep critical section nesting: ---------------------------------------- .. [<c0131c2f>] .... call_rcu+0x1f/0x70 .....[<c017e529>] .. ( <= dput+0x139/0x210) .. [<c0131ba3>] .... rcu_advance_callbacks+0x13/0x80 .....[<c0131c47>] .. ( <= call_rcu+0x37/0x70) .. [<c03ddeaa>] .... _raw_spin_lock_irqsave+0x1a/0xa0 .....[<c010444f>] .. ( <= die+0x3f/0x190) .. [<c013bac6>] .... print_traces+0x16/0x50 .....[<c010412f>] .. ( <= show_stack+0x7f/0xa0)
Code: 00 00 e8 78 2d 0a 00 8b 0c 85 20 20 51 c0 bb 80 f2 50 c0 01 d9 f0 83 44 24 00 00 a1 88 19 52 c0 39 41 40 74 23 8b 41 44 8b 51 50 <89> 02 8b 41 48 c7 41 44 00 00 00 00 89 41 50 8d 41 44 89 41 48
(gdb) list *0xc0131bcc 0xc0131bcc is in rcu_advance_callbacks (kernel/rcupdate.c:586). 581 struct rcu_data *rdp; 582 583 rdp = &get_cpu_var(rcu_data); 584 smp_mb(); /* prevent sampling batch # before list removal. */ 585 if (rdp->batch != rcu_ctrlblk.batch) { 586 *rdp->donetail = rdp->waitlist; 587 rdp->donetail = rdp->waittail; 588 rdp->waitlist = NULL; 589 rdp->waittail = &rdp->waitlist; 590 rdp->batch = rcu_ctrlblk.batch; (gdb)
- 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/
| |