From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yanko Kaneti Subject: PPPOE lockdep report in dev_queue_xmit+0x8b8/0x900 Date: Mon, 18 Feb 2013 19:43:41 +0200 Message-ID: <1361209421.9147.12.camel@d2> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: linux-ppp@vger.kernel.org To: netdev@vger.kernel.org Return-path: Sender: linux-ppp-owner@vger.kernel.org List-Id: netdev.vger.kernel.org Hello, I've had the following lockdep report for the last couple of years of kernels. I don't think I've had a lockup during that time related to pppoe. The pppoe entry in the MAINTAINERS file lists Michal Ostrowski which unfortunately bounces. Regards Yanko [ 123.603836] ====================================================== [ 123.603838] [ INFO: possible circular locking dependency detected ] [ 123.603842] 3.8.0-0.rc7.git3.1.fc19.x86_64 #1 Not tainted [ 123.603844] ------------------------------------------------------- [ 123.603846] liferea/2399 is trying to acquire lock: [ 123.603848] (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-...}, at: [] dev_queue_xmit+0x8b8/0x900 [ 123.603860] but task is already holding lock: [ 123.603862] (&(&pch->downl)->rlock){+.-...}, at: [] ppp_push+0x12d/0x630 [ppp_generic] [ 123.603872] which lock already depends on the new lock. [ 123.603875] the existing dependency chain (in reverse order) is: [ 123.603877] -> #3 (&(&pch->downl)->rlock){+.-...}: [ 123.603881] [] lock_acquire+0xa2/0x1f0 [ 123.603887] [] _raw_spin_lock_bh+0x4b/0x80 [ 123.603892] [] ppp_push+0x12d/0x630 [ppp_generic] [ 123.603896] [] ppp_xmit_process+0x43f/0x670 [ppp_generic] [ 123.603900] [] ppp_write+0xf0/0x110 [ppp_generic] [ 123.603904] [] vfs_write+0xa2/0x170 [ 123.603908] [] sys_write+0x4c/0xa0 [ 123.603910] [] system_call_fastpath+0x16/0x1b [ 123.603916] -> #2 (&(&ppp->wlock)->rlock){+.-...}: [ 123.603920] [] lock_acquire+0xa2/0x1f0 [ 123.603923] [] _raw_spin_lock_bh+0x4b/0x80 [ 123.603926] [] ppp_xmit_process+0x2c/0x670 [ppp_generic] [ 123.603930] [] ppp_start_xmit+0x13d/0x1c0 [ppp_generic] [ 123.603933] [] dev_hard_start_xmit+0x259/0x6c0 [ 123.603936] [] sch_direct_xmit+0xee/0x290 [ 123.603940] [] dev_queue_xmit+0x1f6/0x900 [ 123.603943] [] neigh_direct_output+0x11/0x20 [ 123.603946] [] ip_finish_output+0x2b9/0x7f0 [ 123.603950] [] ip_output+0x5c/0x100 [ 123.603952] [] ip_local_out+0x29/0x90 [ 123.603955] [] ip_send_skb+0x15/0x50 [ 123.603958] [] ip_push_pending_frames+0x33/0x40 [ 123.603960] [] icmp_push_reply+0xf5/0x130 [ 123.603964] [] icmp_send+0x49d/0xc80 [ 123.603966] [] __udp4_lib_rcv+0x469/0xa80 [ 123.603969] [] udp_rcv+0x1a/0x20 [ 123.603971] [] ip_local_deliver_finish+0x19e/0x4c0 [ 123.603974] [] ip_local_deliver+0x47/0x80 [ 123.603977] [] ip_rcv_finish+0x160/0x760 [ 123.603979] [] ip_rcv+0x219/0x340 [ 123.603982] [] __netif_receive_skb+0xad2/0xdc0 [ 123.603985] [] process_backlog+0xbe/0x1a0 [ 123.603988] [] net_rx_action+0x172/0x380 [ 123.603990] [] __do_softirq+0xef/0x3d0 [ 123.603994] [] call_softirq+0x1c/0x30 [ 123.603998] [] do_softirq+0x85/0xc0 [ 123.604002] [] irq_exit+0xd5/0xe0 [ 123.604005] [] do_IRQ+0x56/0xc0 [ 123.604008] [] ret_from_intr+0x0/0x1a [ 123.604011] [] default_idle+0x5d/0x550 [ 123.604015] [] cpu_idle+0x10c/0x170 [ 123.604018] [] start_secondary+0x263/0x265 [ 123.604022] -> #1 (_xmit_PPP#2){+.-...}: [ 123.604026] [] lock_acquire+0xa2/0x1f0 [ 123.604029] [] _raw_spin_lock+0x46/0x80 [ 123.604032] [] sch_direct_xmit+0xb0/0x290 [ 123.604035] [] dev_queue_xmit+0x1f6/0x900 [ 123.604038] [] neigh_direct_output+0x11/0x20 [ 123.604040] [] ip_finish_output+0x2b9/0x7f0 [ 123.604043] [] ip_output+0x5c/0x100 [ 123.604046] [] ip_local_out+0x29/0x90 [ 123.604048] [] ip_queue_xmit+0x1b3/0x670 [ 123.604051] [] tcp_transmit_skb+0x3e2/0xa60 [ 123.604054] [] tcp_write_xmit+0x196/0xad0 [ 123.604057] [] __tcp_push_pending_frames+0x2e/0xc0 [ 123.604060] [] tcp_sendmsg+0x11d/0xe00 [ 123.604063] [] inet_sendmsg+0x117/0x230 [ 123.604066] [] sock_sendmsg+0xaa/0xe0 [ 123.604071] [] sys_sendto+0x129/0x1d0 [ 123.604073] [] system_call_fastpath+0x16/0x1b [ 123.604077] -> #0 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-...}: [ 123.604080] [] __lock_acquire+0x17e1/0x1a80 [ 123.604083] [] lock_acquire+0xa2/0x1f0 [ 123.604086] [] _raw_spin_lock+0x46/0x80 [ 123.604089] [] dev_queue_xmit+0x8b8/0x900 [ 123.604091] [] __pppoe_xmit+0x142/0x190 [pppoe] [ 123.604095] [] pppoe_xmit+0x11/0x20 [pppoe] [ 123.604098] [] ppp_push+0x148/0x630 [ppp_generic] [ 123.604101] [] ppp_xmit_process+0x43f/0x670 [ppp_generic] [ 123.604105] [] ppp_start_xmit+0x13d/0x1c0 [ppp_generic] [ 123.604108] [] dev_hard_start_xmit+0x259/0x6c0 [ 123.604111] [] sch_direct_xmit+0xee/0x290 [ 123.604114] [] dev_queue_xmit+0x1f6/0x900 [ 123.604117] [] neigh_direct_output+0x11/0x20 [ 123.604120] [] ip_finish_output+0x2b9/0x7f0 [ 123.604123] [] ip_output+0x5c/0x100 [ 123.604125] [] ip_local_out+0x29/0x90 [ 123.604128] [] ip_queue_xmit+0x1b3/0x670 [ 123.604131] [] tcp_transmit_skb+0x3e2/0xa60 [ 123.604134] [] tcp_send_ack+0xa4/0xf0 [ 123.604137] [] tcp_cleanup_rbuf+0x76/0x120 [ 123.604140] [] tcp_recvmsg+0x72a/0xd50 [ 123.604143] [] inet_recvmsg+0x129/0x220 [ 123.604146] [] sock_recvmsg+0xb9/0xf0 [ 123.604149] [] sys_recvfrom+0xe7/0x160 [ 123.604152] [] system_call_fastpath+0x16/0x1b [ 123.604155] other info that might help us debug this: [ 123.604158] Chain exists of: dev->qdisc_tx_busylock ?: &qdisc_tx_busylock --> &(&ppp->wlock)->rlock --> &(&pch->downl)->rlock [ 123.604163] Possible unsafe locking scenario: [ 123.604165] CPU0 CPU1 [ 123.604167] ---- ---- [ 123.604168] lock(&(&pch->downl)->rlock); [ 123.604171] lock(&(&ppp->wlock)->rlock); [ 123.604173] lock(&(&pch->downl)->rlock); [ 123.604175] lock(dev->qdisc_tx_busylock ?: &qdisc_tx_busylock); [ 123.604178] *** DEADLOCK *** [ 123.604181] 8 locks held by liferea/2399: [ 123.604182] #0: (sk_lock-AF_INET){+.+.+.}, at: [] tcp_recvmsg+0x32/0xd50 [ 123.604188] #1: (rcu_read_lock){.+.+..}, at: [] ip_queue_xmit+0x5/0x670 [ 123.604194] #2: (rcu_read_lock_bh){.+....}, at: [] ip_finish_output+0x138/0x7f0 [ 123.604199] #3: (rcu_read_lock_bh){.+....}, at: [] dev_queue_xmit+0x5/0x900 [ 123.604204] #4: (_xmit_PPP#2){+.-...}, at: [] sch_direct_xmit+0xb0/0x290 [ 123.604210] #5: (&(&ppp->wlock)->rlock){+.-...}, at: [] ppp_xmit_process+0x2c/0x670 [ppp_generic] [ 123.604216] #6: (&(&pch->downl)->rlock){+.-...}, at: [] ppp_push+0x12d/0x630 [ppp_generic] [ 123.604222] #7: (rcu_read_lock_bh){.+....}, at: [] dev_queue_xmit+0x5/0x900 [ 123.604227] stack backtrace: [ 123.604231] Pid: 2399, comm: liferea Not tainted 3.8.0-0.rc7.git3.1.fc19.x86_64 #1 [ 123.604233] Call Trace: [ 123.604239] [] print_circular_bug+0x201/0x210 [ 123.604243] [] __lock_acquire+0x17e1/0x1a80 [ 123.604246] [] ? __lock_acquire+0x2e5/0x1a80 [ 123.604250] [] lock_acquire+0xa2/0x1f0 [ 123.604253] [] ? dev_queue_xmit+0x8b8/0x900 [ 123.604257] [] _raw_spin_lock+0x46/0x80 [ 123.604260] [] ? dev_queue_xmit+0x8b8/0x900 [ 123.604263] [] dev_queue_xmit+0x8b8/0x900 [ 123.604267] [] ? dev_queue_xmit+0x5/0x900 [ 123.604270] [] __pppoe_xmit+0x142/0x190 [pppoe] [ 123.604274] [] pppoe_xmit+0x11/0x20 [pppoe] [ 123.604278] [] ppp_push+0x148/0x630 [ppp_generic] [ 123.604282] [] ? trace_hardirqs_on_caller+0xac/0x190 [ 123.604285] [] ? trace_hardirqs_on+0xd/0x10 [ 123.604289] [] ppp_xmit_process+0x43f/0x670 [ppp_generic] [ 123.604292] [] ? trace_hardirqs_on+0xd/0x10 [ 123.604296] [] ppp_start_xmit+0x13d/0x1c0 [ppp_generic] [ 123.604300] [] dev_hard_start_xmit+0x259/0x6c0 [ 123.604303] [] sch_direct_xmit+0xee/0x290 [ 123.604307] [] dev_queue_xmit+0x1f6/0x900 [ 123.604310] [] ? dev_queue_xmit+0x5/0x900 [ 123.604313] [] neigh_direct_output+0x11/0x20 [ 123.604316] [] ip_finish_output+0x2b9/0x7f0 [ 123.604319] [] ? ip_finish_output+0x138/0x7f0 [ 123.604323] [] ip_output+0x5c/0x100 [ 123.604326] [] ip_local_out+0x29/0x90 [ 123.604329] [] ip_queue_xmit+0x1b3/0x670 [ 123.604332] [] ? ip_queue_xmit+0x5/0x670 [ 123.604335] [] tcp_transmit_skb+0x3e2/0xa60 [ 123.604339] [] ? ksize+0x19/0xc0 [ 123.604342] [] tcp_send_ack+0xa4/0xf0 [ 123.604346] [] tcp_cleanup_rbuf+0x76/0x120 [ 123.604350] [] tcp_recvmsg+0x72a/0xd50 [ 123.604354] [] ? sched_clock_cpu+0xb5/0x100 [ 123.604358] [] inet_recvmsg+0x129/0x220 [ 123.604361] [] sock_recvmsg+0xb9/0xf0 [ 123.604365] [] ? __lock_acquire+0x2e5/0x1a80 [ 123.604368] [] sys_recvfrom+0xe7/0x160 [ 123.604372] [] ? sysret_check+0x22/0x5d [ 123.604376] [] ? trace_hardirqs_on_caller+0xfd/0x190 [ 123.604381] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 123.604385] [] system_call_fastpath+0x16/0x1b