* Paul E. McKenney <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to