Re: RT kernel on Acer laptop unreliable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2017-08-21 15:12, Sebastian Andrzej Siewior wrote:
> On 2017-08-20 16:48:24 [+0200], Jacek Konieczny wrote:
>> Does this help?
> 
> yup, the following patch should make it go away.
> 
> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
[...]

I have applied the patch, no crash since then, but I got another problem
detected:


======================================================
[ INFO: possible circular locking dependency detected ]
4.11.12-rt9-1 #4 Not tainted
-------------------------------------------------------
irq/132-ath10k_/1008 is trying to acquire lock:
 ((icmp_sk_lock).lock){+.+...}, at: [<ffffffff92677264>]
icmp_send+0x144/0x7a0

                              but task is already holding lock:
 ((xt_write_lock).lock){+.+...}, at: [<ffffffffc059b256>]
ipt_do_table+0xd6/0x710 [ip_tables]

                              which lock already depends on the new lock.

                              the existing dependency chain (in reverse
order) is:

                              -> #1 ((xt_write_lock).lock){+.+...}:
       lock_acquire+0xb7/0x250
       rt_spin_lock+0x4b/0x60
       ipt_do_table+0xd6/0x710 [ip_tables]
       iptable_raw_hook+0x27/0x60 [iptable_raw]
       nf_hook_slow+0x2c/0xf0
       __ip_local_out+0x134/0x2e0
       ip_local_out+0x1c/0x70
       ip_send_skb+0x19/0x40
       ip_push_pending_frames+0x33/0x40
       icmp_push_reply+0xf5/0x130
       icmp_send+0x754/0x7a0
       __udp4_lib_rcv+0x927/0xc00
       udp_rcv+0x1a/0x20
       ip_local_deliver_finish+0xe4/0x3d0
       ip_local_deliver+0x1a7/0x220
       ip_rcv_finish+0x222/0x6e0
       ip_rcv+0x3aa/0x540
       __netif_receive_skb_core+0x790/0xdc0
       __netif_receive_skb+0x1d/0x60
       process_backlog+0x9f/0x270
       net_rx_action+0x389/0x6c0
       do_current_softirqs+0x22e/0x670
       __local_bh_enable+0x5b/0x80
       ip_finish_output2+0x2aa/0x5e0
       ip_finish_output+0x229/0x320
       ip_output+0x182/0x260
       ip_local_out+0x39/0x70
       ip_send_skb+0x19/0x40
       udp_send_skb+0x14d/0x280
       udp_sendmsg+0x364/0xb30
       inet_sendmsg+0x4a/0x1c0
       sock_sendmsg+0x38/0x50
       SyS_sendto+0x10a/0x190
       do_syscall_64+0x7f/0x210
       return_from_SYSCALL_64+0x0/0x7a

                              -> #0 ((icmp_sk_lock).lock){+.+...}:
       __lock_acquire+0x1b84/0x1d30
       lock_acquire+0xb7/0x250
       rt_spin_lock+0x4b/0x60
       icmp_send+0x144/0x7a0
       nf_send_unreach+0x97/0xa00 [nf_reject_ipv4]
       reject_tg+0x2b/0x96 [ipt_REJECT]
       ipt_do_table+0x353/0x710 [ip_tables]
       iptable_filter_hook+0x27/0x57 [iptable_filter]
       nf_hook_slow+0x2c/0xf0
       ip_local_deliver+0xfb/0x220
       ip_rcv_finish+0x222/0x6e0
       ip_rcv+0x3aa/0x540
       __netif_receive_skb_core+0x790/0xdc0
       __netif_receive_skb+0x1d/0x60
       netif_receive_skb_internal+0x7c/0x200
       napi_gro_receive+0x16b/0x210
       ieee80211_deliver_skb+0xe9/0x220 [mac80211]
       ieee80211_rx_handlers+0x1df8/0x2700 [mac80211]
       ieee80211_invoke_rx_handlers+0x155/0x750 [mac80211]
       ieee80211_prepare_and_rx_handle+0x586/0xb00 [mac80211]
       ieee80211_rx_napi+0x35a/0xc10 [mac80211]
       ath10k_htt_rx_h_deliver+0xae/0x120 [ath10k_core]
       ath10k_htt_rx_handle_amsdu+0x7c0/0x910 [ath10k_core]
       ath10k_htt_txrx_compl_task+0x61e/0x790 [ath10k_core]
       ath10k_pci_napi_poll+0x4a/0xf0 [ath10k_pci]
       net_rx_action+0x389/0x6c0
       do_current_softirqs+0x22e/0x670
       __local_bh_enable+0x5b/0x80
       irq_forced_thread_fn+0x55/0x70
       irq_thread+0x15e/0x200
       kthread+0x114/0x150
       ret_from_fork+0x27/0x40

                              other info that might help us debug this:
 Possible unsafe locking scenario:
       CPU0                    CPU1
       ----                    ----
  lock((xt_write_lock).lock);
                               lock((icmp_sk_lock).lock);
                               lock((xt_write_lock).lock);
  lock((icmp_sk_lock).lock);

                               *** DEADLOCK ***
6 locks held by irq/132-ath10k_/1008:
 #0:  (&per_cpu(local_softirq_locks[i], __cpu).lock){+.+...}, at:
[<ffffffff9206e1ed>] do_current_softirqs+0x14d/0x670
 #1:  (rcu_read_lock){......}, at: [<ffffffffc0b15762>]
ieee80211_rx_napi+0xb2/0xc10 [mac80211]
 #2:  (&local->rx_path_lock){+.+...}, at: [<ffffffffc0b11a60>]
ieee80211_rx_handlers+0x40/0x2700 [mac80211]
 #3:  (rcu_read_lock){......}, at: [<ffffffff925e138e>]
netif_receive_skb_internal+0x2e/0x200
 #4:  (rcu_read_lock){......}, at: [<ffffffff92636356>]
ip_local_deliver+0x66/0x220
 #5:  ((xt_write_lock).lock){+.+...}, at: [<ffffffffc059b256>]
ipt_do_table+0xd6/0x710 [ip_tables]

                              stack backtrace:
CPU: 0 PID: 1008 Comm: irq/132-ath10k_ Not tainted 4.11.12-rt9-1 #4
Hardware name: Acer Aspire E5-575/Ironman_SK  , BIOS V1.25 03/03/2017
Call Trace:
 dump_stack+0x68/0x92
 print_circular_bug+0x1f6/0x300
 __lock_acquire+0x1b84/0x1d30
 ? __this_cpu_preempt_check+0x13/0x20
 lock_acquire+0xb7/0x250
 ? lock_acquire+0xb7/0x250
 ? icmp_send+0x144/0x7a0
 rt_spin_lock+0x4b/0x60
 ? icmp_send+0x144/0x7a0
 icmp_send+0x144/0x7a0
 ? __this_cpu_preempt_check+0x13/0x20
 ? trace_hardirqs_on_caller+0xef/0x210
 ? preempt_count_sub+0xa1/0x100
 ? lock_acquire+0xb7/0x250
 ? ipt_do_table+0xd6/0x710 [ip_tables]
 nf_send_unreach+0x97/0xa00 [nf_reject_ipv4]
 reject_tg+0x2b/0x96 [ipt_REJECT]
 ipt_do_table+0x353/0x710 [ip_tables]
 iptable_filter_hook+0x27/0x57 [iptable_filter]
 nf_hook_slow+0x2c/0xf0
 ip_local_deliver+0xfb/0x220
 ? inet_del_offload+0x40/0x40
 ip_rcv_finish+0x222/0x6e0
 ip_rcv+0x3aa/0x540
 ? ip_local_deliver_finish+0x3d0/0x3d0
 __netif_receive_skb_core+0x790/0xdc0
 ? lock_acquire+0xb7/0x250
 ? __this_cpu_preempt_check+0x13/0x20
 ? netif_receive_skb_internal+0x2e/0x200
 __netif_receive_skb+0x1d/0x60
 netif_receive_skb_internal+0x7c/0x200
 napi_gro_receive+0x16b/0x210
 ieee80211_deliver_skb+0xe9/0x220 [mac80211]
 ieee80211_rx_handlers+0x1df8/0x2700 [mac80211]
 ieee80211_invoke_rx_handlers+0x155/0x750 [mac80211]
 ? __lock_acquire+0x516/0x1d30
 ieee80211_prepare_and_rx_handle+0x586/0xb00 [mac80211]
 ? sta_info_hash_lookup+0x13a/0x250 [mac80211]
 ieee80211_rx_napi+0x35a/0xc10 [mac80211]
 ? ath10k_htt_rx_h_mpdu+0x40d/0x840 [ath10k_core]
 ath10k_htt_rx_h_deliver+0xae/0x120 [ath10k_core]
 ? ath10k_htt_rx_h_ppdu+0xbe/0x2c0 [ath10k_core]
 ath10k_htt_rx_handle_amsdu+0x7c0/0x910 [ath10k_core]
 ? __lock_acquire+0x516/0x1d30
 ath10k_htt_txrx_compl_task+0x61e/0x790 [ath10k_core]
 ? _raw_spin_unlock_irqrestore+0x80/0x90
 ? __this_cpu_preempt_check+0x13/0x20
 ? __local_bh_enable+0x31/0x80
 ? __this_cpu_preempt_check+0x13/0x20
 ? trace_hardirqs_on_caller+0xef/0x210
 ? trace_hardirqs_on+0xd/0x10
 ? __local_bh_enable+0x31/0x80
 ? ath10k_ce_per_engine_service+0xc3/0xe0 [ath10k_pci]
 ath10k_pci_napi_poll+0x4a/0xf0 [ath10k_pci]
 net_rx_action+0x389/0x6c0
 ? trace_hardirqs_on_caller+0xef/0x210
 ? preempt_count_sub+0xa1/0x100
 do_current_softirqs+0x22e/0x670
 __local_bh_enable+0x5b/0x80
 irq_forced_thread_fn+0x55/0x70
 ? irq_thread+0xb7/0x200
 irq_thread+0x15e/0x200
 ? irq_finalize_oneshot.part.2+0xe0/0xe0
 ? wake_threads_waitq+0x30/0x30
 kthread+0x114/0x150
 ? irq_thread_dtor+0xc0/0xc0
 ? kthread_create_on_node+0x70/0x70
 ret_from_fork+0x27/0x40


Jacek
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux