circular locking, mirred, 2.6.24.2

Denys Fedoryshchenko
2008-02-24T22:20:52Z

2.6.24.2 with applied patches for printk,softlockup, and patch for htb (as i
understand, they are in 2.6.25 git and it is fixes).

I will send also to private mails QoS rules i am using.

[ 118.840072] =======================================================
[ 118.840158] [ INFO: possible circular locking dependency detected ]
[ 118.840203] 2.6.24.2-build-0022 #7
[ 118.840243] -------------------------------------------------------
[ 118.840288] swapper/0 is trying to acquire lock:
[ 118.840329] (&dev->queue_lock){-+..}, at: [<c0289c11>] dev_queue_xmit
+0x177/0x302
[ 118.840490]
[ 118.840490] but task is already holding lock:
[ 118.840567] (&p->tcfc_lock){-+..}, at: [<f89f0066>] tcf_mirred+0x20/0x180
[act_mirred]
[ 118.840727]
[ 118.840727] which lock already depends on the new lock.
[ 118.840728]
[ 118.840842]
[ 118.840842] the existing dependency chain (in reverse order) is:
[ 118.840921]
[ 118.840921] -> #2 (&p->tcfc_lock){-+..}:
[ 118.841075] [<c0143624>] __lock_acquire+0xa30/0xc19
[ 118.841324] [<c0143887>] lock_acquire+0x7a/0x94
[ 118.841572] [<c02d93f5>] _spin_lock+0x2e/0x58
[ 118.841820] [<f89f0066>] tcf_mirred+0x20/0x180 [act_mirred]
[ 118.842068] [<c0297ec4>] tcf_action_exec+0x44/0x77
[ 118.842344] [<f89ba5d2>] u32_classify+0x119/0x24a [cls_u32]
[ 118.842595] [<c0295ce2>] tc_classify_compat+0x2f/0x5e
[ 118.842845] [<c0295ec3>] tc_classify+0x1a/0x80
[ 118.843092] [<f899c118>] ingress_enqueue+0x1a/0x53 [sch_ingress]
[ 118.843343] [<c0287139>] netif_receive_skb+0x296/0x44c
[ 118.843592] [<f88d1a4e>] e100_poll+0x14b/0x26a [e100]
[ 118.843843] [<c02894bc>] net_rx_action+0xbf/0x201
[ 118.844091] [<c012ac15>] __do_softirq+0x6f/0xe9
[ 118.844343] [<c01078af>] do_softirq+0x61/0xc8
[ 118.844591] [<ffffffff>] 0xffffffff
[ 118.844840]
[ 118.844840] -> #1 (&dev->ingress_lock){-+..}:
[ 118.844993] [<c0143624>] __lock_acquire+0xa30/0xc19
[ 118.845242] [<c0143887>] lock_acquire+0x7a/0x94
[ 118.845489] [<c02d93f5>] _spin_lock+0x2e/0x58
[ 118.845737] [<c0295387>] qdisc_lock_tree+0x1e/0x21
[ 118.845984] [<c02953b6>] dev_init_scheduler+0xb/0x53
[ 118.846235] [<c0288483>] register_netdevice+0x2a3/0x2fd
[ 118.846483] [<c028850f>] register_netdev+0x32/0x3f
[ 118.846730] [<c03ea8ee>] loopback_net_init+0x39/0x6c
[ 118.846980] [<c02858ef>] register_pernet_operations+0x13/0x15
[ 118.847230] [<c0285958>] register_pernet_device+0x1f/0x4c
[ 118.847478] [<c03ea8b3>] loopback_init+0xd/0xf
[ 118.847725] [<c03d64df>] kernel_init+0x155/0x2c6
[ 118.847973] [<c0105bab>] kernel_thread_helper+0x7/0x10
[ 118.848225] [<ffffffff>] 0xffffffff
[ 118.848472]
[ 118.848472] -> #0 (&dev->queue_lock){-+..}:
[ 118.848626] [<c0143514>] __lock_acquire+0x920/0xc19
[ 118.848874] [<c0143887>] lock_acquire+0x7a/0x94
[ 118.849122] [<c02d93f5>] _spin_lock+0x2e/0x58
[ 118.849370] [<c0289c11>] dev_queue_xmit+0x177/0x302
[ 118.849617] [<f89f01a5>] tcf_mirred+0x15f/0x180 [act_mirred]
[ 118.849866] [<c0297ec4>] tcf_action_exec+0x44/0x77
[ 118.850114] [<f89ba5d2>] u32_classify+0x119/0x24a [cls_u32]
[ 118.850366] [<c0295ce2>] tc_classify_compat+0x2f/0x5e
[ 118.850614] [<c0295ec3>] tc_classify+0x1a/0x80
[ 118.850861] [<f899c118>] ingress_enqueue+0x1a/0x53 [sch_ingress]
[ 118.851111] [<c0287139>] netif_receive_skb+0x296/0x44c
[ 118.851360] [<f88d1a4e>] e100_poll+0x14b/0x26a [e100]
[ 118.851612] [<c02894bc>] net_rx_action+0xbf/0x201
[ 118.851859] [<c012ac15>] __do_softirq+0x6f/0xe9
[ 118.852106] [<c01078af>] do_softirq+0x61/0xc8
[ 118.852355] [<ffffffff>] 0xffffffff
[ 118.852602]
[ 118.852602] other info that might help us debug this:
[ 118.852603]
[ 118.852716] 5 locks held by swapper/0:
[ 118.852756] #0: (rcu_read_lock){..--}, at: [<c028944d>] net_rx_action
+0x50/0x201
[ 118.852940] #1: (rcu_read_lock){..--}, at: [<c0286f99>] netif_receive_skb
+0xf6/0x44c
[ 118.853123] #2: (&dev->ingress_lock){-+..}, at: [<c0287125>]
netif_receive_skb+0x282/0x44c
[ 118.853309] #3: (&p->tcfc_lock){-+..}, at: [<f89f0066>] tcf_mirred
+0x20/0x180 [act_mirred]
[ 118.853493] #4: (rcu_read_lock){..--}, at: [<c0289bb7>] dev_queue_xmit
+0x11d/0x302
[ 118.853677]
[ 118.853677] stack backtrace:
[ 118.853753] Pid: 0, comm: swapper Not tainted 2.6.24.2-build-0022 #7
[ 118.853796] [<c0105f2a>] show_trace_log_lvl+0x1a/0x2f
[ 118.853865] [<c0106843>] show_trace+0x12/0x14
[ 118.853932] [<c010713a>] dump_stack+0x6c/0x72
[ 118.853999] [<c01416f4>] print_circular_bug_tail+0x5f/0x68
[ 118.854068] [<c0143514>] __lock_acquire+0x920/0xc19
[ 118.854135] [<c0143887>] lock_acquire+0x7a/0x94
[ 118.854205] [<c02d93f5>] _spin_lock+0x2e/0x58
[ 118.854272] [<c0289c11>] dev_queue_xmit+0x177/0x302
[ 118.854340] [<f89f01a5>] tcf_mirred+0x15f/0x180 [act_mirred]
[ 118.854409] [<c0297ec4>] tcf_action_exec+0x44/0x77
[ 118.854477] [<f89ba5d2>] u32_classify+0x119/0x24a [cls_u32]
[ 118.854547] [<c0295ce2>] tc_classify_compat+0x2f/0x5e
[ 118.854615] [<c0295ec3>] tc_classify+0x1a/0x80
[ 118.854682] [<f899c118>] ingress_enqueue+0x1a/0x53 [sch_ingress]
[ 118.854752] [<c0287139>] netif_receive_skb+0x296/0x44c
[ 118.854820] [<f88d1a4e>] e100_poll+0x14b/0x26a [e100]
[ 118.854890] [<c02894bc>] net_rx_action+0xbf/0x201
[ 118.854958] [<c012ac15>] __do_softirq+0x6f/0xe9
[ 118.855025] [<c01078af>] do_softirq+0x61/0xc8

--
Denys Fedoryshchenko
Technical Manager
Virtual ISP S.A.L.