All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
	linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org
Subject: Re: v2.6.20-rt1, yum/rpm
Date: Mon, 05 Feb 2007 22:29:50 +0100	[thread overview]
Message-ID: <45C7A1CE.7050903@googlemail.com> (raw)
In-Reply-To: <20070205134708.GA6318@elte.hu>

Ingo Molnar napisał(a):
> * Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:
> 
>> It looks like a bug to me
>>
>> BUG: MAX_LOCKDEP_ENTRIES too low!
>> turning off the locking correctness validator.
> 
> hm, the patch below should solve this.

Lockdep works. Thanks!

2.6.20-rt2

======================================================
[ INFO: hard-safe -> hard-unsafe lock order detected ]
[ 2.6.20-rt2 #2
------------------------------------------------------
softirq-timer/0/5 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
 (console_sem.lock){--..}, at: [<c0311981>] rt_mutex_slowunlock+0xc/0x5b

and this task is already holding:
 (xtime_lock){+...}, at: [<c012a8b8>] run_timer_softirq+0x47/0x9ad
which would create a new lock dependency:
 (xtime_lock){+...} -> (console_sem.lock){--..}

but this new dependency connects a hard-irq-safe lock:
 (xtime_lock){+...}
... which became hard-irq-safe at:
  [<c013d124>] mark_lock+0x6b/0x40b
  [<c013dee5>] __lock_acquire+0x3b3/0xb94
  [<c013e72e>] lock_acquire+0x68/0x82
  [<c03127d3>] __spin_lock+0x35/0x42
  [<c013a654>] tick_periodic+0x15/0x68
  [<c013a6ba>] tick_handle_periodic+0x13/0x45
  [<c010684f>] timer_interrupt+0x31/0x38
  [<c0155912>] handle_IRQ_event+0x63/0xfc
  [<c0157267>] handle_level_irq+0xa7/0xf0
  [<c0105dc1>] do_IRQ+0xa3/0xce
  [<c0103ac6>] common_interrupt+0x2e/0x34
  [<c0312e57>] __spin_unlock_irqrestore+0x42/0x59
  [<c0156075>] setup_irq+0x170/0x1e0
  [<c04907e4>] time_init_hook+0x19/0x1b
  [<c0488d87>] hpet_time_init+0xd/0xf
  [<c0485667>] start_kernel+0x271/0x42a
  [<ffffffff>] 0xffffffff

to a hard-irq-unsafe lock:
 (console_sem.lock){--..}
... which became hard-irq-unsafe at:
...  [<c013d124>] mark_lock+0x6b/0x40b
  [<c013d50e>] mark_held_locks+0x4a/0x67
  [<c013d6f1>] trace_hardirqs_on+0x10d/0x150
  [<c0312e55>] __spin_unlock_irqrestore+0x40/0x59
  [<c01431f4>] task_blocks_on_rt_mutex+0x1c4/0x20a
  [<c0311cd0>] rt_mutex_slowlock+0x140/0x234
  [<c03119fd>] rt_mutex_lock+0x2d/0x31
  [<c014441a>] rt_down+0x11/0x28
  [<c012290f>] acquire_console_sem+0x36/0x4c
  [<c0209c10>] fb_flashcursor+0x1a/0x24d
  [<c013177a>] run_workqueue+0x8b/0xd8
  [<c0132309>] worker_thread+0xf8/0x124
  [<c01344b4>] kthread+0xb5/0xe1
  [<c0103dab>] kernel_thread_helper+0x7/0x10
  [<ffffffff>] 0xffffffff

other info that might help us debug this:

1 lock held by softirq-timer/0/5:
 #0:  (xtime_lock){+...}, at: [<c012a8b8>] run_timer_softirq+0x47/0x9ad

the hard-irq-safe lock's dependencies:
-> (xtime_lock){+...} ops: 7875 {
   initial-use  at:
                        [<c013d124>] mark_lock+0x6b/0x40b
                        [<c013dfb9>] __lock_acquire+0x487/0xb94
                        [<c013e72e>] lock_acquire+0x68/0x82
                        [<c03127d3>] __spin_lock+0x35/0x42
                        [<c04916fb>] timekeeping_init+0x25/0x143
                        [<c04855be>] start_kernel+0x1c8/0x42a
                        [<ffffffff>] 0xffffffff
   in-hardirq-W at:
                        [<c013d124>] mark_lock+0x6b/0x40b
                        [<c013dee5>] __lock_acquire+0x3b3/0xb94
                        [<c013e72e>] lock_acquire+0x68/0x82
                        [<c03127d3>] __spin_lock+0x35/0x42
                        [<c013a654>] tick_periodic+0x15/0x68
                        [<c013a6ba>] tick_handle_periodic+0x13/0x45
                        [<c010684f>] timer_interrupt+0x31/0x38
                        [<c0155912>] handle_IRQ_event+0x63/0xfc
                        [<c0157267>] handle_level_irq+0xa7/0xf0
                        [<c0105dc1>] do_IRQ+0xa3/0xce
                        [<c0103ac6>] common_interrupt+0x2e/0x34
                        [<c0312e57>] __spin_unlock_irqrestore+0x42/0x59
                        [<c0156075>] setup_irq+0x170/0x1e0
                        [<c04907e4>] time_init_hook+0x19/0x1b
                        [<c0488d87>] hpet_time_init+0xd/0xf
                        [<c0485667>] start_kernel+0x271/0x42a
                        [<ffffffff>] 0xffffffff
 }
 ... key      at: [<c046bb18>] xtime_lock+0x18/0x80
 -> (clocksource_lock){....} ops: 3800 {
    initial-use  at:
                          [<c013d124>] mark_lock+0x6b/0x40b
                          [<c013dfb9>] __lock_acquire+0x487/0xb94
                          [<c013e72e>] lock_acquire+0x68/0x82
                          [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                          [<c0138c4b>] clocksource_get_next+0xd/0x43
                          [<c049170b>] timekeeping_init+0x35/0x143
                          [<c04855be>] start_kernel+0x1c8/0x42a
                          [<ffffffff>] 0xffffffff
  }
  ... key      at: [<c046bd94>] clocksource_lock+0x14/0x80
 ... acquired at:
   [<c013c05b>] add_lock_to_list+0x65/0x89
   [<c013e544>] __lock_acquire+0xa12/0xb94
   [<c013e72e>] lock_acquire+0x68/0x82
   [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
   [<c0138c4b>] clocksource_get_next+0xd/0x43
   [<c049170b>] timekeeping_init+0x35/0x143
   [<c04855be>] start_kernel+0x1c8/0x42a
   [<ffffffff>] 0xffffffff

 -> (logbuf_lock){....} ops: 1544 {
    initial-use  at:
                          [<c013d124>] mark_lock+0x6b/0x40b
                          [<c013dfb9>] __lock_acquire+0x487/0xb94
                          [<c013e72e>] lock_acquire+0x68/0x82
                          [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                          [<c012273c>] release_console_sem+0x3c/0x1c5
                          [<c0122ed2>] vprintk+0x2cd/0x330
                          [<c0122f50>] printk+0x1b/0x1d
                          [<c0485456>] start_kernel+0x60/0x42a
                          [<ffffffff>] 0xffffffff
  }
  ... key      at: [<c046b694>] logbuf_lock+0x14/0x80
 ... acquired at:
   [<c013c05b>] add_lock_to_list+0x65/0x89
   [<c013e544>] __lock_acquire+0xa12/0xb94
   [<c013e72e>] lock_acquire+0x68/0x82
   [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
   [<c012273c>] release_console_sem+0x3c/0x1c5
   [<c0122ed2>] vprintk+0x2cd/0x330
   [<c0122f50>] printk+0x1b/0x1d
   [<c012aee1>] run_timer_softirq+0x670/0x9ad
   [<c0127689>] ksoftirqd+0x121/0x205
   [<c01344b4>] kthread+0xb5/0xe1
   [<c0103dab>] kernel_thread_helper+0x7/0x10
   [<ffffffff>] 0xffffffff


the hard-irq-unsafe lock's dependencies:
-> (console_sem.lock){--..} ops: 829 {
   initial-use  at:
                        [<c013d124>] mark_lock+0x6b/0x40b
                        [<c013dfb9>] __lock_acquire+0x487/0xb94
                        [<c013e72e>] lock_acquire+0x68/0x82
                        [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                        [<c0311981>] rt_mutex_slowunlock+0xc/0x5b
                        [<c03118e4>] rt_mutex_unlock+0x8/0xa
                        [<c014402c>] rt_up+0x25/0x45
                        [<c0122870>] release_console_sem+0x170/0x1c5
                        [<c0122ed2>] vprintk+0x2cd/0x330
                        [<c0122f50>] printk+0x1b/0x1d
                        [<c0485456>] start_kernel+0x60/0x42a
                        [<ffffffff>] 0xffffffff
   softirq-on-W at:
                        [<c013d124>] mark_lock+0x6b/0x40b
                        [<c013d50e>] mark_held_locks+0x4a/0x67
                        [<c013d709>] trace_hardirqs_on+0x125/0x150
                        [<c0312e55>] __spin_unlock_irqrestore+0x40/0x59
                        [<c01431f4>] task_blocks_on_rt_mutex+0x1c4/0x20a
                        [<c0311cd0>] rt_mutex_slowlock+0x140/0x234
                        [<c03119fd>] rt_mutex_lock+0x2d/0x31
                        [<c014441a>] rt_down+0x11/0x28
                        [<c012290f>] acquire_console_sem+0x36/0x4c
                        [<c0209c10>] fb_flashcursor+0x1a/0x24d
                        [<c013177a>] run_workqueue+0x8b/0xd8
                        [<c0132309>] worker_thread+0xf8/0x124
                        [<c01344b4>] kthread+0xb5/0xe1
                        [<c0103dab>] kernel_thread_helper+0x7/0x10
                        [<ffffffff>] 0xffffffff
   hardirq-on-W at:
                        [<c013d124>] mark_lock+0x6b/0x40b
                        [<c013d50e>] mark_held_locks+0x4a/0x67
                        [<c013d6f1>] trace_hardirqs_on+0x10d/0x150
                        [<c0312e55>] __spin_unlock_irqrestore+0x40/0x59
                        [<c01431f4>] task_blocks_on_rt_mutex+0x1c4/0x20a
                        [<c0311cd0>] rt_mutex_slowlock+0x140/0x234
                        [<c03119fd>] rt_mutex_lock+0x2d/0x31
                        [<c014441a>] rt_down+0x11/0x28
                        [<c012290f>] acquire_console_sem+0x36/0x4c
                        [<c0209c10>] fb_flashcursor+0x1a/0x24d
                        [<c013177a>] run_workqueue+0x8b/0xd8
                        [<c0132309>] worker_thread+0xf8/0x124
                        [<c01344b4>] kthread+0xb5/0xe1
                        [<c0103dab>] kernel_thread_helper+0x7/0x10
                        [<ffffffff>] 0xffffffff
 }
 ... key      at: [<c043c318>] console_sem+0x18/0x60
 -> ((raw_spinlock_t *)(&p->pi_lock)){....} ops: 706 {
    initial-use  at:
                          [<c013d124>] mark_lock+0x6b/0x40b
                          [<c013dfb9>] __lock_acquire+0x487/0xb94
                          [<c013e72e>] lock_acquire+0x68/0x82
                          [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                          [<c011c7a5>] sched_setscheduler+0x13f/0x22e
                          [<c0135150>] posix_cpu_thread_call+0x88/0xff
                          [<c0491d70>] posix_cpu_thread_init+0x1c/0x3c
                          [<c01003fa>] init+0x4d/0x3c3
                          [<c0103dab>] kernel_thread_helper+0x7/0x10
                          [<ffffffff>] 0xffffffff
  }
  ... key      at: [<c04cc06c>] __key.24574+0x0/0x8
  -> (&rq->rq_lock_key){+...} ops: 29636 {
     initial-use  at:
                            [<c013d124>] mark_lock+0x6b/0x40b
                            [<c013dfb9>] __lock_acquire+0x487/0xb94
                            [<c013e72e>] lock_acquire+0x68/0x82
                            [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                            [<c011be68>] init_idle+0x63/0x81
                            [<c0490c3e>] sched_init+0x1a9/0x1b0
                            [<c0485516>] start_kernel+0x120/0x42a
                            [<ffffffff>] 0xffffffff
     in-hardirq-W at:
                            [<c013d124>] mark_lock+0x6b/0x40b
                            [<c013dee5>] __lock_acquire+0x3b3/0xb94
                            [<c013e72e>] lock_acquire+0x68/0x82
                            [<c03127d3>] __spin_lock+0x35/0x42
                            [<c011b21f>] task_running_tick+0x2a/0x23d
                            [<c011e849>] scheduler_tick+0x92/0xee
                            [<c012b88a>] update_process_times+0x3e/0x63
                            [<c013a6a5>] tick_periodic+0x66/0x68
                            [<c013a6ba>] tick_handle_periodic+0x13/0x45
                            [<c010684f>] timer_interrupt+0x31/0x38
                            [<c0155912>] handle_IRQ_event+0x63/0xfc
                            [<c0157267>] handle_level_irq+0xa7/0xf0
                            [<c0105dc1>] do_IRQ+0xa3/0xce
                            [<c0103ac6>] common_interrupt+0x2e/0x34
                            [<c013e740>] lock_acquire+0x7a/0x82
                            [<c0312430>] rt_read_lock+0x2b/0x69
                            [<c0120925>] copy_process+0x6cc/0x136b
                            [<c0121e43>] fork_idle+0x3f/0x58
                            [<c0112023>] do_boot_cpu+0x3c/0x547
                            [<c048c4a0>] smp_prepare_cpus+0x477/0x5eb
                            [<c01003eb>] init+0x3e/0x3c3
                            [<c0103dab>] kernel_thread_helper+0x7/0x10
                            [<ffffffff>] 0xffffffff
   }
   ... key      at: [<c60686cc>] 0xc60686cc
   -> (&rq->rq_lock_key#2){+...} ops: 30044 {
      initial-use  at:
                              [<c013d124>] mark_lock+0x6b/0x40b
                              [<c013dfb9>] __lock_acquire+0x487/0xb94
                              [<c013e72e>] lock_acquire+0x68/0x82
                              [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                              [<c011be68>] init_idle+0x63/0x81
                              [<c0121e53>] fork_idle+0x4f/0x58
                              [<c0112023>] do_boot_cpu+0x3c/0x547
                              [<c048c4a0>] smp_prepare_cpus+0x477/0x5eb
                              [<c01003eb>] init+0x3e/0x3c3
                              [<c0103dab>] kernel_thread_helper+0x7/0x10
                              [<ffffffff>] 0xffffffff
      in-hardirq-W at:
                              [<c013d124>] mark_lock+0x6b/0x40b
                              [<c013dee5>] __lock_acquire+0x3b3/0xb94
                              [<c013e72e>] lock_acquire+0x68/0x82
                              [<c03127d3>] __spin_lock+0x35/0x42
                              [<c011b6be>] task_rq_lock+0x36/0x5d
                              [<c011ca30>] try_to_wake_up+0x29/0x3cf
                              [<c011ce79>] wake_up_process+0x19/0x1b
                              [<c0126af7>] wakeup_softirqd+0x30/0x34
                              [<c01277c6>] raise_softirq+0x59/0x77
                              [<c012b50e>] run_local_timers+0xd/0x14
                              [<c012b88f>] update_process_times+0x43/0x63
                              [<c013a6a5>] tick_periodic+0x66/0x68
                              [<c013a6ba>] tick_handle_periodic+0x13/0x45
                              [<c0113e30>] smp_apic_timer_interrupt+0xa6/0xb8
                              [<c0103ba7>] apic_timer_interrupt+0x33/0x38
                              [<c0101b16>] default_idle+0x49/0x62
                              [<c01013ec>] cpu_idle+0xd4/0x11e
                              [<c0112d05>] start_secondary+0x35a/0x362
                              [<ffffffff>] 0xffffffff
    }
    ... key      at: [<c60e86cc>] 0xc60e86cc
   ... acquired at:
   [<c013c05b>] add_lock_to_list+0x65/0x89
   [<c013e544>] __lock_acquire+0xa12/0xb94
   [<c013e72e>] lock_acquire+0x68/0x82
   [<c03127d3>] __spin_lock+0x35/0x42
   [<c011b029>] double_rq_lock+0x33/0x37
   [<c011b8ab>] __migrate_task+0x58/0x131
   [<c011eb9f>] migration_thread+0x196/0x1e5
   [<c01344b4>] kthread+0xb5/0xe1
   [<c0103dab>] kernel_thread_helper+0x7/0x10
   [<ffffffff>] 0xffffffff

  ... acquired at:
   [<c013c05b>] add_lock_to_list+0x65/0x89
   [<c013e544>] __lock_acquire+0xa12/0xb94
   [<c013e72e>] lock_acquire+0x68/0x82
   [<c03127d3>] __spin_lock+0x35/0x42
   [<c011c7c3>] sched_setscheduler+0x15d/0x22e
   [<c0135150>] posix_cpu_thread_call+0x88/0xff
   [<c0491d70>] posix_cpu_thread_init+0x1c/0x3c
   [<c01003fa>] init+0x4d/0x3c3
   [<c0103dab>] kernel_thread_helper+0x7/0x10
   [<ffffffff>] 0xffffffff

  -> (&rq->rq_lock_key#2){+...} ops: 30044 {
     initial-use  at:
                            [<c013d124>] mark_lock+0x6b/0x40b
                            [<c013dfb9>] __lock_acquire+0x487/0xb94
                            [<c013e72e>] lock_acquire+0x68/0x82
                            [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                            [<c011be68>] init_idle+0x63/0x81
                            [<c0121e53>] fork_idle+0x4f/0x58
                            [<c0112023>] do_boot_cpu+0x3c/0x547
                            [<c048c4a0>] smp_prepare_cpus+0x477/0x5eb
                            [<c01003eb>] init+0x3e/0x3c3
                            [<c0103dab>] kernel_thread_helper+0x7/0x10
                            [<ffffffff>] 0xffffffff
     in-hardirq-W at:
                            [<c013d124>] mark_lock+0x6b/0x40b
                            [<c013dee5>] __lock_acquire+0x3b3/0xb94
                            [<c013e72e>] lock_acquire+0x68/0x82
                            [<c03127d3>] __spin_lock+0x35/0x42
                            [<c011b6be>] task_rq_lock+0x36/0x5d
                            [<c011ca30>] try_to_wake_up+0x29/0x3cf
                            [<c011ce79>] wake_up_process+0x19/0x1b
                            [<c0126af7>] wakeup_softirqd+0x30/0x34
                            [<c01277c6>] raise_softirq+0x59/0x77
                            [<c012b50e>] run_local_timers+0xd/0x14
                            [<c012b88f>] update_process_times+0x43/0x63
                            [<c013a6a5>] tick_periodic+0x66/0x68
                            [<c013a6ba>] tick_handle_periodic+0x13/0x45
                            [<c0113e30>] smp_apic_timer_interrupt+0xa6/0xb8
                            [<c0103ba7>] apic_timer_interrupt+0x33/0x38
                            [<c0101b16>] default_idle+0x49/0x62
                            [<c01013ec>] cpu_idle+0xd4/0x11e
                            [<c0112d05>] start_secondary+0x35a/0x362
                            [<ffffffff>] 0xffffffff
   }
   ... key      at: [<c60e86cc>] 0xc60e86cc
  ... acquired at:
   [<c013c05b>] add_lock_to_list+0x65/0x89
   [<c013e544>] __lock_acquire+0xa12/0xb94
   [<c013e72e>] lock_acquire+0x68/0x82
   [<c03127d3>] __spin_lock+0x35/0x42
   [<c011c7c3>] sched_setscheduler+0x15d/0x22e
   [<c0135150>] posix_cpu_thread_call+0x88/0xff
   [<c012ec53>] notifier_call_chain+0x20/0x31
   [<c012ec80>] raw_notifier_call_chain+0x8/0xa
   [<c0144569>] _cpu_up+0x3d/0xbf
   [<c0144611>] cpu_up+0x26/0x38
   [<c010043e>] init+0x91/0x3c3
   [<c0103dab>] kernel_thread_helper+0x7/0x10
   [<ffffffff>] 0xffffffff

 ... acquired at:
   [<c013c05b>] add_lock_to_list+0x65/0x89
   [<c013e544>] __lock_acquire+0xa12/0xb94
   [<c013e72e>] lock_acquire+0x68/0x82
   [<c03127d3>] __spin_lock+0x35/0x42
   [<c0143055>] task_blocks_on_rt_mutex+0x25/0x20a
   [<c0311cd0>] rt_mutex_slowlock+0x140/0x234
   [<c03119fd>] rt_mutex_lock+0x2d/0x31
   [<c014441a>] rt_down+0x11/0x28
   [<c012290f>] acquire_console_sem+0x36/0x4c
   [<c0209c10>] fb_flashcursor+0x1a/0x24d
   [<c013177a>] run_workqueue+0x8b/0xd8
   [<c0132309>] worker_thread+0xf8/0x124
   [<c01344b4>] kthread+0xb5/0xe1
   [<c0103dab>] kernel_thread_helper+0x7/0x10
   [<ffffffff>] 0xffffffff

 -> (&rq->rq_lock_key#2){+...} ops: 30044 {
    initial-use  at:
                          [<c013d124>] mark_lock+0x6b/0x40b
                          [<c013dfb9>] __lock_acquire+0x487/0xb94
                          [<c013e72e>] lock_acquire+0x68/0x82
                          [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
                          [<c011be68>] init_idle+0x63/0x81
                          [<c0121e53>] fork_idle+0x4f/0x58
                          [<c0112023>] do_boot_cpu+0x3c/0x547
                          [<c048c4a0>] smp_prepare_cpus+0x477/0x5eb
                          [<c01003eb>] init+0x3e/0x3c3
                          [<c0103dab>] kernel_thread_helper+0x7/0x10
                          [<ffffffff>] 0xffffffff
    in-hardirq-W at:
                          [<c013d124>] mark_lock+0x6b/0x40b
                          [<c013dee5>] __lock_acquire+0x3b3/0xb94
                          [<c013e72e>] lock_acquire+0x68/0x82
                          [<c03127d3>] __spin_lock+0x35/0x42
                          [<c011b6be>] task_rq_lock+0x36/0x5d
                          [<c011ca30>] try_to_wake_up+0x29/0x3cf
                          [<c011ce79>] wake_up_process+0x19/0x1b
                          [<c0126af7>] wakeup_softirqd+0x30/0x34
                          [<c01277c6>] raise_softirq+0x59/0x77
                          [<c012b50e>] run_local_timers+0xd/0x14
                          [<c012b88f>] update_process_times+0x43/0x63
                          [<c013a6a5>] tick_periodic+0x66/0x68
                          [<c013a6ba>] tick_handle_periodic+0x13/0x45
                          [<c0113e30>] smp_apic_timer_interrupt+0xa6/0xb8
                          [<c0103ba7>] apic_timer_interrupt+0x33/0x38
                          [<c0101b16>] default_idle+0x49/0x62
                          [<c01013ec>] cpu_idle+0xd4/0x11e
                          [<c0112d05>] start_secondary+0x35a/0x362
                          [<ffffffff>] 0xffffffff
  }
  ... key      at: [<c60e86cc>] 0xc60e86cc
 ... acquired at:
   [<c013c05b>] add_lock_to_list+0x65/0x89
   [<c013e544>] __lock_acquire+0xa12/0xb94
   [<c013e72e>] lock_acquire+0x68/0x82
   [<c03127d3>] __spin_lock+0x35/0x42
   [<c011b6be>] task_rq_lock+0x36/0x5d
   [<c011ca30>] try_to_wake_up+0x29/0x3cf
   [<c011ce79>] wake_up_process+0x19/0x1b
   [<c014281e>] wakeup_next_waiter+0x1d9/0x1e1
   [<c03119b8>] rt_mutex_slowunlock+0x43/0x5b
   [<c03118e4>] rt_mutex_unlock+0x8/0xa
   [<c014402c>] rt_up+0x25/0x45
   [<c0122870>] release_console_sem+0x170/0x1c5
   [<c0122ed2>] vprintk+0x2cd/0x330
   [<c0122f50>] printk+0x1b/0x1d
   [<c0288c89>] usb_register_driver+0xa3/0xeb
   [<c049c440>] usb_usual_init+0xf/0x29
   [<c01004df>] init+0x132/0x3c3
   [<c0103dab>] kernel_thread_helper+0x7/0x10
   [<ffffffff>] 0xffffffff


stack backtrace:
 [<c01041a3>] dump_trace+0x63/0x1eb
 [<c0104348>] show_trace_log_lvl+0x1d/0x3a
 [<c0104a23>] show_trace+0x12/0x14
 [<c0104ab6>] dump_stack+0x16/0x18
 [<c013da8f>] check_usage+0x241/0x24b
 [<c013e451>] __lock_acquire+0x91f/0xb94
 [<c013e72e>] lock_acquire+0x68/0x82
 [<c0312a40>] __spin_lock_irqsave+0x3e/0x4e
 [<c0311981>] rt_mutex_slowunlock+0xc/0x5b
 [<c03118e4>] rt_mutex_unlock+0x8/0xa
 [<c014402c>] rt_up+0x25/0x45
 [<c0122870>] release_console_sem+0x170/0x1c5
 [<c0122ed2>] vprintk+0x2cd/0x330
 [<c0122f50>] printk+0x1b/0x1d
 [<c012aee1>] run_timer_softirq+0x670/0x9ad
 [<c0127689>] ksoftirqd+0x121/0x205
 [<c01344b4>] kthread+0xb5/0xe1
 [<c0103dab>] kernel_thread_helper+0x7/0x10
 =======================
---------------------------
| preempt count: 00000003 ]
| 3-level deep critical section nesting:
----------------------------------------
.. [<c03127b1>] .... __spin_lock+0x13/0x42
.....[<c012a8b8>] ..   ( <= run_timer_softirq+0x47/0x9ad)
.. [<c0144017>] .... rt_up+0x10/0x45
.....[<c0122870>] ..   ( <= release_console_sem+0x170/0x1c5)
.. [<c0312a1e>] .... __spin_lock_irqsave+0x1c/0x4e
.....[<c0311981>] ..   ( <= rt_mutex_slowunlock+0xc/0x5b)

0xc03127b1 is in __spin_lock (kernel/spinlock.c:218).
213     EXPORT_SYMBOL(__write_lock_bh);
214
215     void __lockfunc __spin_lock(raw_spinlock_t *lock)
216     {
217             preempt_disable();
218             spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
219             _raw_spin_lock(lock);
220     }
221
222     EXPORT_SYMBOL(__spin_lock);

0xc012a8b8 is in run_timer_softirq (include/linux/seqlock.h:148).
143     }
144
145     static __always_inline void __write_seqlock_raw(raw_seqlock_t *sl)
146     {
147             spin_lock(&sl->lock);
148             ++sl->sequence;
149             smp_wmb();
150     }
151
152     static __always_inline void __write_sequnlock_raw(raw_seqlock_t *sl)


0xc0144017 is in rt_up (include/asm/atomic.h:189).
184             if(unlikely(boot_cpu_data.x86==3))
185                     goto no_xadd;
186     #endif
187             /* Modern 486+ processor */
188             __i = i;
189             __asm__ __volatile__(
190                     LOCK_PREFIX "xaddl %0, %1"
191                     :"+r" (i), "+m" (v->counter)
192                     : : "memory");
193             return i + __i;

0xc0122870 is in release_console_sem (kernel/printk.c:864).
859              * up only if we are in a preemptible section. We normally dont
860              * printk from non-preemptible sections so this is for the emergency
861              * case only.
862              */
863     #ifdef CONFIG_PREEMPT_RT
864             if (!in_atomic() && !irqs_disabled())
865     #endif
866             if (wake_klogd && !oops_in_progress && waitqueue_active(&log_wait))
867                     wake_up_interruptible(&log_wait);
868     }

0xc0312a1e is in __spin_lock_irqsave (kernel/spinlock.c:122).
117     {
118             unsigned long flags;
119
120             local_irq_save(flags);
121             preempt_disable();
122             spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
123             /*
124              * On lockdep we dont want the hand-coded irq-enable of
125              * _raw_spin_lock_flags() code, because lockdep assumes
126              * that interrupts are not re-enabled during lock-acquire:


0xc0311981 is in rt_mutex_slowunlock (kernel/rtmutex.c:1053).
1048    static void __sched
1049    rt_mutex_slowunlock(struct rt_mutex *lock)
1050    {
1051            unsigned long flags;
1052
1053            spin_lock_irqsave(&lock->wait_lock, flags);
1054
1055            debug_rt_mutex_unlock(lock);
1056
1057            rt_mutex_deadlock_account_unlock(current);

http://www.stardust.webpages.pl/files/tbf/euridica/2.6.20-rt2/rt-config
http://www.stardust.webpages.pl/files/tbf/euridica/2.6.20-rt2/rt-dmesg

Regards,
Michal

-- 
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

  reply	other threads:[~2007-02-05 21:30 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-05  6:56 v2.6.20-rt1, yum/rpm Ingo Molnar
2007-02-05  9:18 ` Serge Belyshev
2007-02-05  9:02   ` Ingo Molnar
2007-02-05 10:36 ` Sunil Naidu
2007-02-05 10:42   ` Peter Zijlstra
2007-02-05 10:22     ` Ingo Molnar
2007-02-05 11:15     ` Sunil Naidu
2007-02-05 12:59 ` Michal Piotrowski
2007-02-05 13:47   ` Ingo Molnar
2007-02-05 21:29     ` Michal Piotrowski [this message]
2007-02-05 14:25 ` Karsten Wiese
2007-02-05 21:46   ` USX2Y 2.6.20-rt2 Oops on disconnect Rui Nuno Capela
2007-02-05 22:27     ` Karsten Wiese
2007-02-06 11:53       ` Takashi Iwai
2007-02-07  0:54       ` USX2Y 2.6.20-rt2 Oops on disconnect [SOLVED] Rui Nuno Capela
2007-02-07 10:26         ` Takashi Iwai
2007-02-10  1:29   ` us428control 0.4.5 [RFC] Rui Nuno Capela
2007-02-10 15:37     ` Rui Nuno Capela
2007-02-13 16:07       ` Q: How to detect which USx2y is connected? Rui Nuno Capela
2007-02-13 17:36         ` Karsten Wiese
2007-02-13 17:47           ` Karsten Wiese
2007-02-13 17:48           ` Takashi Iwai
2007-02-13 18:08             ` Rui Nuno Capela
2007-02-13 18:13               ` Rui Nuno Capela
2007-02-13 19:03               ` Karsten Wiese
2007-02-13 21:01                 ` Rui Nuno Capela
2007-02-14 12:59                   ` Takashi Iwai
2007-02-14 14:30                     ` Rui Nuno Capela
2007-02-14 14:36                       ` Takashi Iwai
2007-02-14 14:57                         ` Rui Nuno Capela
2007-02-14 15:01                           ` Takashi Iwai
2007-02-14 15:08                             ` Rui Nuno Capela
2007-02-14 22:43       ` [PATCH] us428control 0.4.5 Rui Nuno Capela
2007-02-14 23:23         ` Takashi Iwai
2007-02-16 17:13       ` [PATCH] us428control 0.4.6 Rui Nuno Capela
2007-02-16 17:46         ` Takashi Iwai
2007-02-05 15:17 ` v2.6.20-rt1, yum/rpm Parag Warudkar
2007-02-05 21:50 ` Michal Piotrowski
2007-02-06  0:11 ` Michal Piotrowski
2007-02-06  1:14 ` Daniel Walker
2007-02-06 10:05 ` Pre-packaged version Alessio Igor Bogani
2007-02-06 10:10 ` v2.6.20-rt1, yum/rpm Arjan van de Ven
2007-02-07 12:32   ` Ingo Molnar
2007-02-06 10:30 ` Sunil Naidu
2007-02-06 19:38 ` Chuck Harding
2007-02-06 20:08   ` K.R. Foley
2007-02-27 17:39 ` K.R. Foley
2007-02-28  8:11   ` Ingo Molnar
2007-02-28 10:16     ` K.R. Foley
2007-04-26 13:57 ` v2.6.21-rt1 Ingo Molnar
2007-04-26 20:53   ` v2.6.21-rt1 Free Ekanayaka
2007-05-03 19:16   ` v2.6.21-rt1 - bug in asm-mips/atomic.h Tim Bird
2007-05-03 19:35     ` v2.6.21-rt1 - mips compile bugs Tim Bird
2007-05-17 18:46   ` v2.6.21-rt1 emin ak
2007-02-05 15:06 v2.6.20-rt1, yum/rpm Milan Svoboda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45C7A1CE.7050903@googlemail.com \
    --to=michal.k.k.piotrowski@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mingo@elte.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.