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

Reply via email to