Sergei Shtylyov wrote:
> Sergei Shtylyov wrote:
>
>>>>>int register_die_notifier(struct notifier_block *nb)
>>>>>{
>
>
>>>> BTW, I'm getting this warning on x86_64:
>
>
>>> Onl, with 2.6.21-rt7 appied
>
>
>>>>arch/x86_64/kernel/kgdb.c: In function `kgdb_arch_init':
>>>>arch/x86_64/kernel/kgdb.c:319: warning: passing arg 1 of
>>>>`atomic_notifier_chain_register' from incompatible pointer type
>
>
>>>> After looking at the code, it turned out that this is because
>>>>'die_chain' is dealred as 'struct raw_notifier_head' (the same is true
>
>
>>> I meant "declared". RT patch changed these for i386 and x86_64 -- I
>>> wonder
>>>if it should be done forother archs also (BTW, RT kernel stops as soon as
>>>the
>>>userland is started for some reason on my PPC board when I'm using 8250
>>>driver)...
>
>
>> I'm also getting this with RT patch applied on x86_64 SMP machine (with
>>low-latency desktop kernel) after hitting initial breakpoint:
>>BUG: at kernel/softirq.c:647 __tasklet_action()
>>Call Trace:
>> [<ffffffff8022e61a>] __tasklet_action+0xe7/0x138
>> [<ffffffff8022e693>] tasklet_action+0x28/0x2a
>> [<ffffffff8022e892>] ksoftirqd+0x149/0x1f3
>> [<ffffffff8022e749>] ksoftirqd+0x0/0x1f3
>> [<ffffffff8023d324>] kthread+0xdc/0x113
>> [<ffffffff8020adf8>] child_rip+0xa/0x12
>> [<ffffffff8023d44f>] kthread_create+0x6a/0x15c
>> [<ffffffff8023d248>] kthread+0x0/0x113
>> [<ffffffff8020adee>] child_rip+0x0/0x12
>>---------------------------
>>| preempt count: 00000100 ]
>>| 0-level deep critical section nesting:
>>----------------------------------------
> ... and in the RT mode, this causes a hard lockup. If I'm not using
> initial breakpoint and using anync one instead there's longer trace (which I
> cannot reproduce) and the target lock up after I continue from that
> breakpoint.
Actually, I can -- here is it:
BUG: scheduling with irqs disabled: swapper/0x00010001/0
caller is rt_spin_lock_slowlock+0xfe/0x1a3
Call Trace:
[] schedule+0x85/0x108
[] rt_spin_lock_slowlock+0xfe/0x1a3
[] __lock_text_start+0x20/0x22
[] kgdb_nmihook+0xbb/0xfa
[] kgdb_notify+0x63/0x105
[] notifier_call_chain+0x2c/0x43
[] raw_notifier_call_chain+0x9/0xb
[] default_do_nmi+0x61/0x1c2
[] do_nmi+0x27/0x38
[] nmi+0x7f/0x90
[] mwait_idle+0x0/0x5c
[] mwait_idle+0x57/0x5c
<>
[] cpu_idle+0x5d/0x9c
[] start_secondary+0x2ec/0x2fb
[] rest_init+0x44/0x46
---------------------------
[] start_kernel+0x2e0/0x2ed
| preempt count: 00010001 ]
[] _sinittext+0x189/0x198
| 1-level deep critical section nesting:
----------------------------------------
.. [] ....
cpu_idle+0x99/0x9c
.....[] .. ( <= ---------------------------
| preempt count: 00010001 ]
| 1-level deep critical section nesting:
start_secondary+0x2ec/0x2fb)
----------------------------------------
BUG: scheduling while atomic: swapper/0x00010001/0, CPU#1
Call Trace:
.. [] .... cpu_idle+0x99/0x9c
.....[] .. ( <= [] __sched_text_start+0xb1/0xd1c
rest_init+0x44/0x46)
BUG: scheduling while atomic: swapper/0x00010001/0, CPU#0
[] print_traces+0xe9/0xf5
Call Trace:
[] show_trace+0x63/0x74
[] schedule+0xe6/0x108
[] __sched_text_start+0xb1/0xd1c
[] rt_spin_lock_slowlock+0xfe/0x1a3
[] print_traces+0xe9/0xf5
[] __lock_text_start+0x20/0x22
[] show_trace+0x63/0x74
[] kgdb_nmihook+0xbb/0xfa
[] schedule+0xe6/0x108
[] kgdb_notify+0x63/0x105
[] rt_spin_lock_slowlock+0xfe/0x1a3
[] notifier_call_chain+0x2c/0x43
[] __lock_text_start+0x20/0x22
[] raw_notifier_call_chain+0x9/0xb
[] kgdb_nmihook+0xbb/0xfa
[] default_do_nmi+0x61/0x1c2
[] kgdb_notify+0x63/0x105
[] do_nmi+0x27/0x38
[] notifier_call_chain+0x2c/0x43
[] nmi+0x7f/0x90
[] raw_notifier_call_chain+0x9/0xb
[] mwait_idle+0x0/0x5c
[] default_do_nmi+0x61/0x1c2
[] mwait_idle+0x57/0x5c
[] do_nmi+0x27/0x38
<> [] nmi+0x7f/0x90
[] cpu_idle+0x5d/0x9c
[] mwait_idle+0x0/0x5c
[] start_secondary+0x2ec/0x2fb
[] mwait_idle+0x57/0x5c
<> ---------------------------
| preempt count: 00010001 ]
| 1-level deep critical section nesting:
[] cpu_idle+0x5d/0x9c
----------------------------------------
.. [] .... [] rest_init+0x44/0x46
cpu_idle+0x99/0x9c
.....[] .. ( <= [] start_kernel+0x2e0/0x2ed
start_secondary+0x2ec/0x2fb)
[] _sinittext+0x189/0x198
BUG: scheduling from the idle thread!
---------------------------
Call Trace:
| preempt count: 00010001 ]
| 1-level deep critical section nesting:
----------------------------------------
[] __sched_text_start+0x140/0xd1c
.. [] .... [] print_traces+0xe9/0xf5
cpu_idle+0x99/0x9c
.....[] .. ( <= [] show_trace+0x63/0x74
rest_init+0x44/0x46)
[] schedule+0xe6/0x108
[] rt_spin_lock_slowlock+0xfe/0x1a3
BUG: scheduling from the idle thread!
[] __lock_text_start+0x20/0x22
Call Trace:
[] kgdb_nmihook+0xbb/0xfa
[] kgdb_notify+0x63/0x105
[] __sched_text_start+0x140/0xd1c
[] notifier_call_chain+0x2c/0x43
[] print_traces+0xe9/0xf5
[] raw_notifier_call_chain+0x9/0xb
[] show_trace+0x63/0x74
[] default_do_nmi+0x61/0x1c2
[] schedule+0xe6/0x108
[] do_nmi+0x27/0x38
[] rt_spin_lock_slowlock+0xfe/0x1a3
[] nmi+0x7f/0x90
[] __lock_text_start+0x20/0x22
[] mwait_idle+0x0/0x5c
[] kgdb_nmihook+0xbb/0xfa
[] mwait_idle+0x57/0x5c
[] kgdb_notify+0x63/0x105
<> [] notifier_call_chain+0x2c/0x43
[] cpu_idle+0x5d/0x9c
[] raw_notifier_call_chain+0x9/0xb
[] start_secondary+0x2ec/0x2fb
[] default_do_nmi+0x61/0x1c2
---------------------------
[] do_nmi+0x27/0x38
| preempt count: 00010002 ]
| 2-level deep critical section nesting:
[] nmi+0x7f/0x90
----------------------------------------
.. [] .... [] mwait_idle+0x0/0x5c
cpu_idle+0x99/0x9c
[] mwait_idle+0x57/0x5c
.....[] .. ( <= <> [] cpu_idle+0x5d/0x9c
start_secondary+0x2ec/0x2fb)
.. [] .... [] rest_init+0x44/0x46
__sched_text_start+0xd8/0xd1c
.....[] .. ( <= [] start_kernel+0x2e0/0x2ed
schedule+0xe6/0x108)
[] _sinittext+0x189/0x198
---------------------------
| preempt count: 00010002 ]
| 2-level deep critical section nesting:
----------------------------------------
.. [] .... cpu_idle+0x99/0x9c
.....[] .. ( <= rest_init+0x44/0x46)
.. [] .... __sched_text_start+0xd8/0xd1c
.....[] .. ( <= schedule+0xe6/0x108)
caller is rt_spin_lock_slowlock+0xfe/0x1a3
Call Trace:
[] schedule+0x85/0x108
[] rt_spin_lock_slowlock+0xfe/0x1a3
[] __lock_text_start+0x20/0x22
[] kgdb_nmihook+0xbb/0xfa
[] kgdb_notify+0x63/0x105
[] notifier_call_chain+0x2c/0x43
[] raw_notifier_call_chain+0x9/0xb
[] default_do_nmi+0x61/0x1c2
[] do_nmi+0x27/0x38
[] nmi+0x7f/0x90
[] mwait_idle+0x0/0x5c
[] mwait_idle+0x57/0x5c
<> [] cpu_idle+0x5d/0x9c
[] start_secondary+0x2ec/0x2fb
---------------------------
| preempt count: 00010001 ]
| 1-level deep critical section nesting:
----------------------------------------
.. [] .... cpu_idle+0x99/0x9c
.....[] .. ( <= start_secondary+0x2ec/0x2fb)
BUG: scheduling while atomic: swapper/0x00010001/0, CPU#2
Call Trace:
[] __sched_text_start+0xb1/0xd1c
[] print_traces+0xe9/0xf5
[] show_trace+0x63/0x74
[] schedule+0xe6/0x108
[] rt_spin_lock_slowlock+0xfe/0x1a3
[] __lock_text_start+0x20/0x22
[] kgdb_nmihook+0xbb/0xfa
[] kgdb_notify+0x63/0x105
[] notifier_call_chain+0x2c/0x43
[] raw_notifier_call_chain+0x9/0xb
[] default_do_nmi+0x61/0x1c2
[] do_nmi+0x27/0x38
[] nmi+0x7f/0x90
[] mwait_idle+0x0/0x5c
[] mwait_idle+0x57/0x5c
<> [] cpu_idle+0x5d/0x9c
[] start_secondary+0x2ec/0x2fb
---------------------------
| preempt count: 00010001 ]
| 1-level deep critical section nesting:
----------------------------------------
.. [] .... cpu_idle+0x99/0x9c
.....[] .. ( <= start_secondary+0x2ec/0x2fb)
BUG: scheduling from the idle thread!
Call Trace:
[] __sched_text_start+0x140/0xd1c
[] print_traces+0xe9/0xf5
[] show_trace+0x63/0x74
[] schedule+0xe6/0x108
[] rt_spin_lock_slowlock+0xfe/0x1a3
[] __lock_text_start+0x20/0x22
[] kgdb_nmihook+0xbb/0xfa
[] kgdb_notify+0x63/0x105
[] notifier_call_chain+0x2c/0x43
[] raw_notifier_call_chain+0x9/0xb
[] default_do_nmi+0x61/0x1c2
[] do_nmi+0x27/0x38
[] nmi+0x7f/0x90
[] mwait_idle+0x0/0x5c
[] mwait_idle+0x57/0x5c
<> [] cpu_idle+0x5d/0x9c
[] start_secondary+0x2ec/0x2fb
---------------------------
| preempt count: 00010002 ]
| 2-level deep critical section nesting:
----------------------------------------
.. [] .... cpu_idle+0x99/0x9c
.....[] .. ( <= start_secondary+0x2ec/0x2fb)
.. [] .... __sched_text_start+0xd8/0xd1c
.....[] .. ( <= schedule+0xe6/0x108)
> Oh well, haven't I told that KGDBoE is broken by design in RT mode? :-)
And now I'm getting BUGs setting breakpoint in do_mount(), after hitting
and continuing from it, like this one:
BUG: scheduling while atomic: swapper/0x00000006/1
2 locks held by swapper/1:
#0: (rpciod_mutex){....}, at: [] mutex_lock+0x9/0xb
#1: (workqueue_mutex){....}, at: [] mutex_lock+0x9/0xb
Call Trace:
[] debug_show_held_locks+0x24/0x29
[] __sched_text_start+0x6d/0x519
[] wait_for_completion+0xa1/0xf2
[] default_wake_function+0x0/0xf
[] __queue_work+0x7f/0x8a
[] default_wake_function+0x0/0xf
[] queue_work+0x73/0x81
[] kthread_create+0xfb/0x168
[] worker_thread+0x0/0x170
[] keventd_create_kthread+0x0/0x8d
[] __lock_acquire+0x42d/0xd23
[] __spin_lock_init+0x38/0x93
[] create_workqueue_thread+0xd6/0x106
[] __create_workqueue+0xe1/0x13c
[] rpciod_up+0x72/0xb2
[] nfs_create_server+0x138/0xa0f
[] __lock_acquire+0x42d/0xd23
[] _spin_unlock+0x49/0x50
[] _spin_unlock+0x49/0x50
[] __lock_acquire+0x42d/0xd23
[] _atomic_dec_and_lock+0x36/0x48
[] nfs_get_sb+0x20b/0x45c
[] vfs_kern_mount+0xa7/0x141
[] do_kern_mount+0x49/0x6f
[] do_mount+0x6e9/0x738
[] _spin_unlock+0x30/0x50
[] __lock_acquire+0x42d/0xd23
[] _atomic_dec_and_lock+0x36/0x48
[] __lock_acquire+0x42d/0xd23
[] __lock_acquire+0x42d/0xd23
[] __lock_acquire+0x42d/0xd23
[] __lock_acquire+0x42d/0xd23
[] get_page_from_freelist+0x1d6/0x387
[] __alloc_pages+0x65/0x2d7
[] sys_mount+0x95/0xe8
[] do_mount_root+0x1c/0x90
[] mount_root+0x7f/0x143
[] prepare_namespace+0xfa/0x137
[] init+0x1bb/0x1cf
[] _spin_unlock_irq+0x31/0x51
[] schedule_tail+0x0/0xcf
[] schedule_tail+0x67/0xcf
[] child_rip+0xa/0x12
[] release_console_sem+0x49/0x1dc
[] release_console_sem+0x49/0x1dc
[] init+0x0/0x1cf
[] child_rip+0x0/0x12
WBR, Sergei
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Kgdb-bugreport mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport