* BUG: iproute2 4.14.1 tc class add come to kernel-panic @ 2018-01-29 14:51 Roland Franke 2018-01-29 15:02 ` Eric Dumazet 0 siblings, 1 reply; 11+ messages in thread From: Roland Franke @ 2018-01-29 14:51 UTC (permalink / raw) To: netdev Starting with Kernel 4.14.1 (x86_64) I found the following problem: When I made the following commands: tc qdisc add dev eth0 root handle 20: htb default 4 r2q 1 tc class add dev eth0 parent 20: classid 20:7 htb rate 10000kbit tc qdisc add dev eth0 parent 20:7 sfq perturb 10 tc class add dev eth0 parent 20:7 classid 20:1 htb rate 200kbit ceil 10000kbit prio 0 I become an Kernel-panic with the following output: kern.err kernel: BUG: scheduling while atomic: tc/1036/0x00000200 The identical message come, when i try the kernel till 4.14.15. When i have tested the same with one of the kernels from the 4.13 series, i had no problem.Will this be solved in the kernel-series 4.14 or will this only with the coming series 4.15 be made? Kernel 4.15 is not be tested till now. Best regards, Roland Franke ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: BUG: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-29 14:51 BUG: iproute2 4.14.1 tc class add come to kernel-panic Roland Franke @ 2018-01-29 15:02 ` Eric Dumazet 2018-01-29 15:18 ` Roland Franke 0 siblings, 1 reply; 11+ messages in thread From: Eric Dumazet @ 2018-01-29 15:02 UTC (permalink / raw) To: Roland Franke, netdev On Mon, 2018-01-29 at 15:51 +0100, Roland Franke wrote: > Starting with Kernel 4.14.1 (x86_64) I found the following problem: > When I made the following commands: > > tc qdisc add dev eth0 root handle 20: htb default 4 r2q 1 > tc class add dev eth0 parent 20: classid 20:7 htb rate 10000kbit > tc qdisc add dev eth0 parent 20:7 sfq perturb 10 > tc class add dev eth0 parent 20:7 classid 20:1 htb rate 200kbit ceil > 10000kbit prio 0 > > I become an Kernel-panic with the following output: > kern.err kernel: BUG: scheduling while atomic: tc/1036/0x00000200 > > The identical message come, when i try the kernel till 4.14.15. > > When i have tested the same with one of the kernels from the 4.13 series, > i had no problem.Will this be solved in the kernel-series 4.14 or will this > only with the > coming series 4.15 be made? > > Kernel 4.15 is not be tested till now. > > Best regards, > Roland Franke > Hi Roland Would you have a stack trace to share with us ? Thanks ! ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-29 15:02 ` Eric Dumazet @ 2018-01-29 15:18 ` Roland Franke 2018-01-29 16:00 ` Stephen Hemminger 0 siblings, 1 reply; 11+ messages in thread From: Roland Franke @ 2018-01-29 15:18 UTC (permalink / raw) To: Eric Dumazet, netdev Hello, > To: Roland Franke ; netdev@vger.kernel.org > Subject: Re: BUG: iproute2 4.14.1 tc class add come to kernel-panic >> >> tc qdisc add dev eth0 root handle 20: htb default 4 r2q 1 >> tc class add dev eth0 parent 20: classid 20:7 htb rate 10000kbit >> tc qdisc add dev eth0 parent 20:7 sfq perturb 10 >> tc class add dev eth0 parent 20:7 classid 20:1 htb rate 200kbit ceil >> 10000kbit prio 0 >> >> I become an Kernel-panic with the following output: >> kern.err kernel: BUG: scheduling while atomic: tc/1036/0x00000200 > > Would you have a stack trace to share with us ? As i will be an absolute newby here, i will not know how to get the stack trace out. When i will get some information how to get this, i can try to give you this information. But by my last tests i made the first 3 commands on an console and had no error. Only by typing the last line i will get the error and here i get actally only the "kern.err kernel: BUG: ....." message. Roland ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-29 15:18 ` Roland Franke @ 2018-01-29 16:00 ` Stephen Hemminger 2018-01-29 17:03 ` Cong Wang 0 siblings, 1 reply; 11+ messages in thread From: Stephen Hemminger @ 2018-01-29 16:00 UTC (permalink / raw) To: Roland Franke; +Cc: Eric Dumazet, netdev On Mon, 29 Jan 2018 16:18:07 +0100 "Roland Franke" <fli4l@franke-prem.de> wrote: > Hello, > > > To: Roland Franke ; netdev@vger.kernel.org > > Subject: Re: BUG: iproute2 4.14.1 tc class add come to kernel-panic > >> > >> tc qdisc add dev eth0 root handle 20: htb default 4 r2q 1 > >> tc class add dev eth0 parent 20: classid 20:7 htb rate 10000kbit > >> tc qdisc add dev eth0 parent 20:7 sfq perturb 10 > >> tc class add dev eth0 parent 20:7 classid 20:1 htb rate 200kbit ceil > >> 10000kbit prio 0 > >> > >> I become an Kernel-panic with the following output: > >> kern.err kernel: BUG: scheduling while atomic: tc/1036/0x00000200 > > > > > Would you have a stack trace to share with us ? > > As i will be an absolute newby here, i will not know how to > get the stack trace out. > When i will get some information how to get this, i can try to > give you this information. > But by my last tests i made the first 3 commands on an console > and had no error. Only by typing the last line i will get the error and > here i get actally only the "kern.err kernel: BUG: ....." message. > > Roland It generates this with lockdep (on 4.15) [ 151.355076] HTB: quantum of class 200007 is big. Consider r2q change. [ 151.371495] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:747 [ 151.371815] in_atomic(): 1, irqs_disabled(): 0, pid: 1135, name: tc [ 151.371875] 2 locks held by tc/1135: [ 151.371878] #0: (rtnl_mutex){+.+.}, at: [<ffffffff98826e5b>] rtnetlink_rcv_msg+0x23b/0x5f0 [ 151.371899] #1: (&qdisc_tx_lock){+...}, at: [<ffffffffc07a5f0f>] htb_change_class+0x55f/0x880 [sch_htb] [ 151.371918] CPU: 2 PID: 1135 Comm: tc Not tainted 4.14.15 #2 [ 151.371921] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 151.371924] Call Trace: [ 151.371934] dump_stack+0x7c/0xbe [ 151.371944] ___might_sleep+0x21e/0x250 [ 151.371953] __mutex_lock+0x59/0x9a0 [ 151.371960] ? lock_acquire+0xec/0x1e0 [ 151.371973] ? __raw_spin_lock_init+0x1c/0x50 [ 151.371990] ? _rcu_barrier+0x2f/0x170 [ 151.371995] ? __lockdep_init_map+0x5c/0x1d0 [ 151.371998] _rcu_barrier+0x2f/0x170 [ 151.372006] tcf_block_put+0x7f/0xa0 [ 151.372013] sfq_destroy+0x15/0x50 [sch_sfq] [ 151.372021] qdisc_destroy+0x6c/0xe0 [ 151.372028] htb_change_class+0x704/0x880 [sch_htb] [ 151.372050] tc_ctl_tclass+0x193/0x3c0 [ 151.372075] rtnetlink_rcv_msg+0x270/0x5f0 [ 151.372088] ? rtnetlink_put_metrics+0x1c0/0x1c0 [ 151.372096] netlink_rcv_skb+0xde/0x110 [ 151.372109] netlink_unicast+0x1e4/0x310 [ 151.372118] netlink_sendmsg+0x2dc/0x3c0 [ 151.372136] sock_sendmsg+0x30/0x40 [ 151.372142] ___sys_sendmsg+0x2b9/0x2d0 [ 151.372171] ? __handle_mm_fault+0x7f8/0x1120 [ 151.372189] ? __do_page_fault+0x2a5/0x530 [ 151.372200] ? __sys_sendmsg+0x51/0x90 [ 151.372205] __sys_sendmsg+0x51/0x90 [ 151.372225] entry_SYSCALL_64_fastpath+0x29/0xa0 [ 151.372230] RIP: 0033:0x7f7049397490 [ 151.372233] RSP: 002b:00007ffd0c432f48 EFLAGS: 00000246 [ 151.372445] BUG: scheduling while atomic: tc/1135/0x00000202 [ 151.372524] 3 locks held by tc/1135: [ 151.372527] #0: (rtnl_mutex){+.+.}, at: [<ffffffff98826e5b>] rtnetlink_rcv_msg+0x23b/0x5f0 [ 151.372544] #1: (&qdisc_tx_lock){+...}, at: [<ffffffffc07a5f0f>] htb_change_class+0x55f/0x880 [sch_htb] [ 151.372560] #2: (rcu_sched_state.barrier_mutex){+.+.}, at: [<ffffffff9810bbbf>] _rcu_barrier+0x2f/0x170 [ 151.372575] Modules linked in: sch_sfq sch_htb ppdev input_leds serio_raw joydev parport_pc parport i2c_piix4 mac_hid ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs zstd_decompress zstd_compress xxhash raid10 raid456 libcrc32c async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq raid1 raid0 multipath linear qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 crypto_simd cryptd glue_helper psmouse floppy pata_acpi hid_generic usbhid hid [ 151.372748] CPU: 2 PID: 1135 Comm: tc Tainted: G W 4.14.15 #2 [ 151.372751] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 151.372753] Call Trace: [ 151.372759] dump_stack+0x7c/0xbe [ 151.372767] __schedule_bug+0x62/0x90 [ 151.372772] __schedule+0x7d9/0xb80 [ 151.372788] schedule+0x39/0x90 [ 151.372793] schedule_timeout+0x24d/0x5c0 [ 151.372813] ? mark_held_locks+0x71/0xa0 [ 151.372825] ? wait_for_completion+0x12e/0x1a0 [ 151.372829] wait_for_completion+0x12e/0x1a0 [ 151.372835] ? wake_up_q+0x60/0x60 [ 151.372846] _rcu_barrier+0x11a/0x170 [ 151.372853] tcf_block_put+0x7f/0xa0 [ 151.372860] sfq_destroy+0x15/0x50 [sch_sfq] [ 151.372866] qdisc_destroy+0x6c/0xe0 [ 151.372872] htb_change_class+0x704/0x880 [sch_htb] [ 151.372894] tc_ctl_tclass+0x193/0x3c0 [ 151.372918] rtnetlink_rcv_msg+0x270/0x5f0 [ 151.372932] ? rtnetlink_put_metrics+0x1c0/0x1c0 [ 151.372940] netlink_rcv_skb+0xde/0x110 [ 151.372952] netlink_unicast+0x1e4/0x310 [ 151.372961] netlink_sendmsg+0x2dc/0x3c0 [ 151.372977] sock_sendmsg+0x30/0x40 [ 151.372983] ___sys_sendmsg+0x2b9/0x2d0 [ 151.373010] ? __handle_mm_fault+0x7f8/0x1120 [ 151.373026] ? __do_page_fault+0x2a5/0x530 [ 151.373037] ? __sys_sendmsg+0x51/0x90 [ 151.373042] __sys_sendmsg+0x51/0x90 [ 151.373061] entry_SYSCALL_64_fastpath+0x29/0xa0 [ 151.373065] RIP: 0033:0x7f7049397490 [ 151.373068] RSP: 002b:00007ffd0c432f48 EFLAGS: 00000246 [ 151.373306] NOHZ: local_softirq_pending 202 [ 151.400331] ------------[ cut here ]------------ [ 151.400342] WARNING: CPU: 2 PID: 1135 at net/core/skbuff.c:615 skb_release_head_state+0x4b/0x50 [ 151.400345] Modules linked in: sch_sfq sch_htb ppdev input_leds serio_raw joydev parport_pc parport i2c_piix4 mac_hid ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs zstd_decompress zstd_compress xxhash raid10 raid456 libcrc32c async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq raid1 raid0 multipath linear qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 crypto_simd cryptd glue_helper psmouse floppy pata_acpi hid_generic usbhid hid [ 151.400521] CPU: 2 PID: 1135 Comm: tc Tainted: G W 4.14.15 #2 [ 151.400524] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 151.400527] task: ffff980e7b050000 task.stack: ffffa3ca00578000 [ 151.400532] RIP: 0010:skb_release_head_state+0x4b/0x50 [ 151.400536] RSP: 0018:ffffa3ca0057bc38 EFLAGS: 00010206 [ 151.400543] RAX: ffffffff9884c9a0 RBX: ffff980e7b18c800 RCX: 0000000000000002 [ 151.400546] RDX: 00000000000f0000 RSI: 00000000ffffffff RDI: 0000000000000000 [ 151.400550] RBP: ffff980e72d9f800 R08: 0000000000000004 R09: 0000000000000000 [ 151.400553] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000868 [ 151.400556] R13: ffff980e7b18c800 R14: 0000000000000000 R15: 0000000000000000 [ 151.400560] FS: 00007f7049d82700(0000) GS:ffff980e7e200000(0000) knlGS:0000000000000000 [ 151.400564] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 151.400567] CR2: 00007fb14b0f74a0 CR3: 000000003b142004 CR4: 00000000003606e0 [ 151.400574] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 151.400578] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 151.400581] Call Trace: [ 151.400589] skb_release_all+0xe/0x30 [ 151.400594] consume_skb+0x43/0x140 [ 151.400603] netlink_unicast+0x1ec/0x310 [ 151.400613] netlink_sendmsg+0x2dc/0x3c0 [ 151.400630] sock_sendmsg+0x30/0x40 [ 151.400637] ___sys_sendmsg+0x2b9/0x2d0 [ 151.400667] ? __handle_mm_fault+0x7f8/0x1120 [ 151.400685] ? __do_page_fault+0x2a5/0x530 [ 151.400697] ? __sys_sendmsg+0x51/0x90 [ 151.400702] __sys_sendmsg+0x51/0x90 [ 151.400724] entry_SYSCALL_64_fastpath+0x29/0xa0 [ 151.400729] RIP: 0033:0x7f7049397490 [ 151.400732] RSP: 002b:00007ffd0c432f48 EFLAGS: 00000246 [ 151.400755] Code: 48 8b 43 60 48 85 c0 74 20 65 8b 15 b0 c2 81 67 81 e2 00 00 0f 00 75 13 48 89 df 5b ff e0 48 83 e7 fe e8 a9 27 02 00 eb cf 5b c3 <0f> ff eb e9 90 0f 1f 44 00 00 53 48 89 fb e8 a2 ff ff ff 48 83 [ 151.400935] ---[ end trace a2dc1d508339e762 ]--- [ 151.400954] show_signal_msg: 5 callbacks suppressed [ 151.400957] tc[1135]: segfault at 7ffd0c434000 ip 00007f7049401af8 sp 00007ffd0c432f48 error 6 [ 151.401033] BUG: scheduling while atomic: tc/1135/0x7ffffe00 [ 151.401104] no locks held by tc/1135. [ 151.401107] Modules linked in: sch_sfq sch_htb ppdev input_leds serio_raw joydev parport_pc parport i2c_piix4 mac_hid ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs zstd_decompress zstd_compress xxhash raid10 raid456 libcrc32c async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq raid1 raid0 multipath linear qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 crypto_simd cryptd glue_helper psmouse floppy pata_acpi hid_generic usbhid hid [ 151.401277] CPU: 2 PID: 1135 Comm: tc Tainted: G W 4.14.15 #2 [ 151.401281] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 151.401284] Call Trace: [ 151.401291] dump_stack+0x7c/0xbe [ 151.401300] __schedule_bug+0x62/0x90 [ 151.401306] __schedule+0x7d9/0xb80 [ 151.401323] schedule+0x39/0x90 [ 151.401329] schedule_timeout+0x24d/0x5c0 [ 151.401334] ? try_to_wake_up+0x55/0x550 [ 151.401351] ? wait_for_completion+0x126/0x1a0 [ 151.401366] ? wait_for_completion+0x12e/0x1a0 [ 151.401371] wait_for_completion+0x12e/0x1a0 [ 151.401377] ? wake_up_q+0x60/0x60 [ 151.401389] call_usermodehelper_exec+0x143/0x170 [ 151.401402] ? wait_for_completion+0x49/0x1a0 [ 151.401415] do_coredump+0xb8a/0x10e0 [ 151.401466] get_signal+0x3d0/0x8f0 [ 151.401488] do_signal+0x36/0x700 [ 151.401493] ? force_sig_info+0xca/0xe0 [ 151.401504] ? force_sig_info_fault+0x97/0xf0 [ 151.401519] ? __bad_area_nosemaphore+0x168/0x1a0 [ 151.401537] exit_to_usermode_loop+0x80/0xc0 [ 151.401543] ? async_page_fault+0x36/0x60 [ 151.401550] prepare_exit_to_usermode+0x7a/0x90 [ 151.401557] retint_user+0x8/0x18 [ 151.401562] RIP: 0033:0x7f7049401af8 [ 151.401565] RSP: 002b:00007ffd0c432f48 EFLAGS: 00010207 [ 151.401571] RAX: 0000000000000000 RBX: 000000000064cb00 RCX: 0000000000006fd0 [ 151.401575] RDX: 0000000000008000 RSI: 00007ffd0c43afd0 RDI: 00007ffd0c434000 [ 151.401578] RBP: 000000005a6f436a R08: 0000000000000014 R09: 0000000000000000 [ 151.401581] R10: 00000000000005e7 R11: 0000000000000246 R12: 00007ffd0c432f90 [ 151.401584] R13: 00007ffd0c432fd0 R14: 0000000000655aa0 R15: 0000000000000000 [ 168.036082] ======================================================== [ 168.037902] WARNING: possible irq lock inversion dependency detected [ 168.039397] 4.14.15 #2 Tainted: G W [ 168.040574] -------------------------------------------------------- [ 168.041051] swapper/3/0 just changed the state of lock: [ 168.041520] (&qdisc_tx_lock){+.-.}, at: [<ffffffff98811e2a>] __dev_queue_xmit+0x24a/0x9a0 [ 168.042009] but this lock took another, SOFTIRQ-unsafe lock in the past: [ 168.042486] (rcu_sched_state.barrier_mutex){+.+.} [ 168.042488] and interrupts could create inverse lock ordering between them. [ 168.044723] other info that might help us debug this: [ 168.045509] Possible interrupt unsafe locking scenario: [ 168.046288] CPU0 CPU1 [ 168.046649] ---- ---- [ 168.047009] lock(rcu_sched_state.barrier_mutex); [ 168.047372] local_irq_disable(); [ 168.047742] lock(&qdisc_tx_lock); [ 168.048112] lock(rcu_sched_state.barrier_mutex); [ 168.048504] <Interrupt> [ 168.048871] lock(&qdisc_tx_lock); [ 168.049240] *** DEADLOCK *** [ 168.050329] 4 locks held by swapper/3/0: [ 168.050693] #0: (rcu_read_lock){....}, at: [<ffffffff9881355a>] netif_receive_skb_internal+0x2a/0x360 [ 168.051082] #1: (rcu_read_lock){....}, at: [<ffffffff9885e836>] ip_local_deliver_finish+0x26/0x1f0 [ 168.051472] #2: (rcu_read_lock_bh){....}, at: [<ffffffff9886389c>] ip_finish_output2+0xac/0x650 [ 168.051868] #3: (rcu_read_lock_bh){....}, at: [<ffffffff98811c3e>] __dev_queue_xmit+0x5e/0x9a0 [ 168.052266] the shortest dependencies between 2nd lock and 1st lock: [ 168.053089] -> (rcu_sched_state.barrier_mutex){+.+.} ops: 3 { [ 168.053504] HARDIRQ-ON-W at: [ 168.053900] lock_acquire+0xec/0x1e0 [ 168.054301] __mutex_lock+0x92/0x9a0 [ 168.054698] _rcu_barrier+0x2f/0x170 [ 168.055094] slab_caches_to_rcu_destroy_workfn+0x95/0xe0 [ 168.055522] process_one_work+0x204/0x650 [ 168.055922] worker_thread+0x4d/0x3e0 [ 168.056316] kthread+0x10a/0x140 [ 168.056717] ret_from_fork+0x3a/0x50 [ 168.057107] SOFTIRQ-ON-W at: [ 168.057494] lock_acquire+0xec/0x1e0 [ 168.057886] __mutex_lock+0x92/0x9a0 [ 168.058267] _rcu_barrier+0x2f/0x170 [ 168.058641] slab_caches_to_rcu_destroy_workfn+0x95/0xe0 [ 168.059016] process_one_work+0x204/0x650 [ 168.059386] worker_thread+0x4d/0x3e0 [ 168.059751] kthread+0x10a/0x140 [ 168.060109] ret_from_fork+0x3a/0x50 [ 168.060468] INITIAL USE at: [ 168.060808] lock_acquire+0xec/0x1e0 [ 168.061147] __mutex_lock+0x92/0x9a0 [ 168.061484] _rcu_barrier+0x2f/0x170 [ 168.061825] slab_caches_to_rcu_destroy_workfn+0x95/0xe0 [ 168.062166] process_one_work+0x204/0x650 [ 168.062502] worker_thread+0x4d/0x3e0 [ 168.062843] kthread+0x10a/0x140 [ 168.063180] ret_from_fork+0x3a/0x50 [ 168.063514] } [ 168.063857] ... key at: [<ffffffff992798b0>] rcu_sched_state+0x8530/0x8800 [ 168.064200] ... acquired at: [ 168.064554] __mutex_lock+0x92/0x9a0 [ 168.064897] _rcu_barrier+0x2f/0x170 [ 168.065236] tcf_block_put+0x7f/0xa0 [ 168.065599] sfq_destroy+0x15/0x50 [sch_sfq] [ 168.065940] qdisc_destroy+0x6c/0xe0 [ 168.066277] htb_change_class+0x704/0x880 [sch_htb] [ 168.066618] tc_ctl_tclass+0x193/0x3c0 [ 168.066960] rtnetlink_rcv_msg+0x270/0x5f0 [ 168.067306] netlink_rcv_skb+0xde/0x110 [ 168.067653] netlink_unicast+0x1e4/0x310 [ 168.067999] netlink_sendmsg+0x2dc/0x3c0 [ 168.068332] sock_sendmsg+0x30/0x40 [ 168.068713] ___sys_sendmsg+0x2b9/0x2d0 [ 168.069036] __sys_sendmsg+0x51/0x90 [ 168.069357] entry_SYSCALL_64_fastpath+0x29/0xa0 [ 168.069974] -> (&qdisc_tx_lock){+.-.} ops: 5 { [ 168.070283] HARDIRQ-ON-W at: [ 168.070587] lock_acquire+0xec/0x1e0 [ 168.070901] _raw_spin_lock_bh+0x38/0x70 [ 168.071212] htb_change_class+0x55f/0x880 [sch_htb] [ 168.071526] tc_ctl_tclass+0x193/0x3c0 [ 168.071838] rtnetlink_rcv_msg+0x270/0x5f0 [ 168.072148] netlink_rcv_skb+0xde/0x110 [ 168.072466] netlink_unicast+0x1e4/0x310 [ 168.072774] netlink_sendmsg+0x2dc/0x3c0 [ 168.073080] sock_sendmsg+0x30/0x40 [ 168.073384] ___sys_sendmsg+0x2b9/0x2d0 [ 168.073703] __sys_sendmsg+0x51/0x90 [ 168.074005] entry_SYSCALL_64_fastpath+0x29/0xa0 [ 168.074312] IN-SOFTIRQ-W at: [ 168.074615] lock_acquire+0xec/0x1e0 [ 168.074948] _raw_spin_lock+0x30/0x70 [ 168.075260] __dev_queue_xmit+0x24a/0x9a0 [ 168.075567] ip_finish_output2+0x4c6/0x650 [ 168.075877] ip_output+0x7c/0x250 [ 168.076183] tcp_v4_send_synack+0x8e/0x120 [ 168.076497] tcp_conn_request+0xaf4/0xc80 [ 168.076804] tcp_rcv_state_process+0x233/0xf30 [ 168.077114] tcp_v4_do_rcv+0xae/0x1c0 [ 168.077419] tcp_v4_rcv+0xa2e/0xa80 [ 168.077720] ip_local_deliver_finish+0x97/0x1f0 [ 168.078024] ip_local_deliver+0x71/0x210 [ 168.078329] ip_rcv+0x271/0x4c0 [ 168.078631] __netif_receive_skb_core+0x79c/0xd20 [ 168.078937] netif_receive_skb_internal+0x1a7/0x360 [ 168.079241] napi_gro_receive+0x137/0x1b0 [ 168.079539] receive_buf+0x444/0x1730 [ 168.079837] virtnet_poll+0x119/0x290 [ 168.080136] net_rx_action+0x1fd/0x410 [ 168.080444] __do_softirq+0xc8/0x49a [ 168.080743] irq_exit+0xc1/0xd0 [ 168.081039] do_IRQ+0x60/0x110 [ 168.081333] ret_from_intr+0x0/0x22 [ 168.081624] native_safe_halt+0x2/0x10 [ 168.081917] default_idle+0x1d/0x1a0 [ 168.082209] do_idle+0x170/0x200 [ 168.082501] cpu_startup_entry+0x6f/0x80 [ 168.082797] start_secondary+0x197/0x1f0 [ 168.083093] secondary_startup_64+0xa5/0xb0 [ 168.083404] INITIAL USE at: [ 168.083697] lock_acquire+0xec/0x1e0 [ 168.083995] _raw_spin_lock_bh+0x38/0x70 [ 168.084293] htb_change_class+0x55f/0x880 [sch_htb] [ 168.084614] tc_ctl_tclass+0x193/0x3c0 [ 168.084922] rtnetlink_rcv_msg+0x270/0x5f0 [ 168.085218] netlink_rcv_skb+0xde/0x110 [ 168.085514] netlink_unicast+0x1e4/0x310 [ 168.085807] netlink_sendmsg+0x2dc/0x3c0 [ 168.086096] sock_sendmsg+0x30/0x40 [ 168.086384] ___sys_sendmsg+0x2b9/0x2d0 [ 168.086673] __sys_sendmsg+0x51/0x90 [ 168.086963] entry_SYSCALL_64_fastpath+0x29/0xa0 [ 168.087256] } [ 168.087544] ... key at: [<ffffffff9a7cc448>] qdisc_tx_lock+0x0/0x8 [ 168.087845] ... acquired at: [ 168.088144] mark_lock+0x30a/0x5c0 [ 168.088448] __lock_acquire+0x3a5/0x1510 [ 168.088743] lock_acquire+0xec/0x1e0 [ 168.089035] _raw_spin_lock+0x30/0x70 [ 168.089328] __dev_queue_xmit+0x24a/0x9a0 [ 168.089621] ip_finish_output2+0x4c6/0x650 [ 168.089915] ip_output+0x7c/0x250 [ 168.090207] tcp_v4_send_synack+0x8e/0x120 [ 168.090500] tcp_conn_request+0xaf4/0xc80 [ 168.090794] tcp_rcv_state_process+0x233/0xf30 [ 168.091089] tcp_v4_do_rcv+0xae/0x1c0 [ 168.091382] tcp_v4_rcv+0xa2e/0xa80 [ 168.091675] ip_local_deliver_finish+0x97/0x1f0 [ 168.091971] ip_local_deliver+0x71/0x210 [ 168.092265] ip_rcv+0x271/0x4c0 [ 168.092561] __netif_receive_skb_core+0x79c/0xd20 [ 168.092857] netif_receive_skb_internal+0x1a7/0x360 [ 168.093154] napi_gro_receive+0x137/0x1b0 [ 168.093448] receive_buf+0x444/0x1730 [ 168.093758] virtnet_poll+0x119/0x290 [ 168.094050] net_rx_action+0x1fd/0x410 [ 168.094355] __do_softirq+0xc8/0x49a [ 168.094647] irq_exit+0xc1/0xd0 [ 168.094937] do_IRQ+0x60/0x110 [ 168.095227] ret_from_intr+0x0/0x22 [ 168.095518] native_safe_halt+0x2/0x10 [ 168.095809] default_idle+0x1d/0x1a0 [ 168.096099] do_idle+0x170/0x200 [ 168.096395] cpu_startup_entry+0x6f/0x80 [ 168.096687] start_secondary+0x197/0x1f0 [ 168.096978] secondary_startup_64+0xa5/0xb0 [ 168.097552] stack backtrace: [ 168.098105] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G W 4.14.15 #2 [ 168.098393] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 168.098690] Call Trace: [ 168.098986] <IRQ> [ 168.099278] dump_stack+0x7c/0xbe [ 168.099574] print_irq_inversion_bug.part.43+0x198/0x1a3 [ 168.099877] check_usage_forwards+0x17a/0x180 [ 168.100182] ? __save_stack_trace+0x82/0x100 [ 168.100493] ? secondary_startup_64+0xa5/0xb0 [ 168.100799] ? check_usage_backwards+0x180/0x180 [ 168.101106] ? mark_lock+0x30a/0x5c0 [ 168.101410] mark_lock+0x30a/0x5c0 [ 168.101709] __lock_acquire+0x3a5/0x1510 [ 168.102005] ? __lock_acquire+0xc21/0x1510 [ 168.102303] ? lock_acquire+0xec/0x1e0 [ 168.102598] lock_acquire+0xec/0x1e0 [ 168.102893] ? __dev_queue_xmit+0x24a/0x9a0 [ 168.103191] _raw_spin_lock+0x30/0x70 [ 168.103488] ? __dev_queue_xmit+0x24a/0x9a0 [ 168.103803] __dev_queue_xmit+0x24a/0x9a0 [ 168.104124] ip_finish_output2+0x4c6/0x650 [ 168.104437] ? ip_output+0x7c/0x250 [ 168.104733] ip_output+0x7c/0x250 [ 168.105028] ? tcp_make_synack+0x38b/0x4b0 [ 168.105325] tcp_v4_send_synack+0x8e/0x120 [ 168.105623] ? _raw_spin_unlock+0x24/0x30 [ 168.105920] ? inet_ehash_insert+0xfa/0x170 [ 168.106218] tcp_conn_request+0xaf4/0xc80 [ 168.106519] ? tcp_rcv_state_process+0x233/0xf30 [ 168.106818] tcp_rcv_state_process+0x233/0xf30 [ 168.107119] ? tcp_v4_do_rcv+0xae/0x1c0 [ 168.107416] tcp_v4_do_rcv+0xae/0x1c0 [ 168.107713] tcp_v4_rcv+0xa2e/0xa80 [ 168.108010] ip_local_deliver_finish+0x97/0x1f0 [ 168.108310] ip_local_deliver+0x71/0x210 [ 168.108614] ip_rcv+0x271/0x4c0 [ 168.108953] ? packet_rcv+0x3d/0x3a0 [ 168.109261] __netif_receive_skb_core+0x79c/0xd20 [ 168.109564] ? lock_acquire+0xec/0x1e0 [ 168.109867] ? dev_gro_receive+0x26b/0x5c0 [ 168.110172] ? netif_receive_skb_internal+0x2a/0x360 [ 168.110480] ? netif_receive_skb_internal+0x1a7/0x360 [ 168.110892] ? netif_receive_skb_internal+0x56/0x360 [ 168.111197] netif_receive_skb_internal+0x1a7/0x360 [ 168.111503] napi_gro_receive+0x137/0x1b0 [ 168.111806] receive_buf+0x444/0x1730 [ 168.112115] ? __lock_acquire+0x2e7/0x1510 [ 168.112439] ? vring_unmap_one+0x16/0x70 [ 168.112754] ? detach_buf+0x68/0x110 [ 168.113052] virtnet_poll+0x119/0x290 [ 168.113339] ? __wake_up_common_lock+0x89/0xc0 [ 168.113675] net_rx_action+0x1fd/0x410 [ 168.113970] ? credit_entropy_bits+0x313/0x350 [ 168.114262] __do_softirq+0xc8/0x49a [ 168.114551] irq_exit+0xc1/0xd0 [ 168.114837] do_IRQ+0x60/0x110 [ 168.115121] common_interrupt+0xa2/0xa2 [ 168.115404] </IRQ> [ 168.115684] RIP: 0010:native_safe_halt+0x2/0x10 [ 168.115969] RSP: 0018:ffffa3ca001ffec8 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff2e [ 168.116267] RAX: ffff980e7db91b40 RBX: ffff980e7db91b40 RCX: 0000000000000000 [ 168.116578] RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffff980e7db91b40 [ 168.116886] RBP: 0000000000000003 R08: 0000000000000001 R09: 0000000000000000 [ 168.117194] R10: 0000000000000000 R11: 0000000000000000 R12: ffff980e7db91b40 [ 168.117501] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 [ 168.117811] default_idle+0x1d/0x1a0 [ 168.118116] do_idle+0x170/0x200 [ 168.118419] cpu_startup_entry+0x6f/0x80 [ 168.118725] start_secondary+0x197/0x1f0 [ 168.119029] secondary_startup_64+0xa5/0xb0 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-29 16:00 ` Stephen Hemminger @ 2018-01-29 17:03 ` Cong Wang 2018-01-29 19:07 ` Cong Wang 0 siblings, 1 reply; 11+ messages in thread From: Cong Wang @ 2018-01-29 17:03 UTC (permalink / raw) To: Stephen Hemminger Cc: Roland Franke, Eric Dumazet, Linux Kernel Network Developers On Mon, Jan 29, 2018 at 8:00 AM, Stephen Hemminger <stephen@networkplumber.org> wrote: > On Mon, 29 Jan 2018 16:18:07 +0100 > "Roland Franke" <fli4l@franke-prem.de> wrote: > >> Hello, >> >> > To: Roland Franke ; netdev@vger.kernel.org >> > Subject: Re: BUG: iproute2 4.14.1 tc class add come to kernel-panic >> >> >> >> tc qdisc add dev eth0 root handle 20: htb default 4 r2q 1 >> >> tc class add dev eth0 parent 20: classid 20:7 htb rate 10000kbit >> >> tc qdisc add dev eth0 parent 20:7 sfq perturb 10 >> >> tc class add dev eth0 parent 20:7 classid 20:1 htb rate 200kbit ceil >> >> 10000kbit prio 0 >> >> >> >> I become an Kernel-panic with the following output: >> >> kern.err kernel: BUG: scheduling while atomic: tc/1036/0x00000200 >> > >> >> > Would you have a stack trace to share with us ? >> >> As i will be an absolute newby here, i will not know how to >> get the stack trace out. >> When i will get some information how to get this, i can try to >> give you this information. >> But by my last tests i made the first 3 commands on an console >> and had no error. Only by typing the last line i will get the error and >> here i get actally only the "kern.err kernel: BUG: ....." message. >> >> Roland > > It generates this with lockdep (on 4.15) > > [ 151.355076] HTB: quantum of class 200007 is big. Consider r2q change. > [ 151.371495] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:747 > [ 151.371815] in_atomic(): 1, irqs_disabled(): 0, pid: 1135, name: tc > [ 151.371875] 2 locks held by tc/1135: > [ 151.371878] #0: (rtnl_mutex){+.+.}, at: [<ffffffff98826e5b>] rtnetlink_rcv_msg+0x23b/0x5f0 > [ 151.371899] #1: (&qdisc_tx_lock){+...}, at: [<ffffffffc07a5f0f>] htb_change_class+0x55f/0x880 [sch_htb] > [ 151.371918] CPU: 2 PID: 1135 Comm: tc Not tainted 4.14.15 #2 > [ 151.371921] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 > [ 151.371924] Call Trace: > [ 151.371934] dump_stack+0x7c/0xbe > [ 151.371944] ___might_sleep+0x21e/0x250 > [ 151.371953] __mutex_lock+0x59/0x9a0 > [ 151.371960] ? lock_acquire+0xec/0x1e0 > [ 151.371973] ? __raw_spin_lock_init+0x1c/0x50 > [ 151.371990] ? _rcu_barrier+0x2f/0x170 > [ 151.371995] ? __lockdep_init_map+0x5c/0x1d0 > [ 151.371998] _rcu_barrier+0x2f/0x170 > [ 151.372006] tcf_block_put+0x7f/0xa0 > [ 151.372013] sfq_destroy+0x15/0x50 [sch_sfq] > [ 151.372021] qdisc_destroy+0x6c/0xe0 > [ 151.372028] htb_change_class+0x704/0x880 [sch_htb] We hold qdisc tree spinlock but call rcu_barrier() in mini_qdisc_pair_swap()... > [ 151.372050] tc_ctl_tclass+0x193/0x3c0 > [ 151.372075] rtnetlink_rcv_msg+0x270/0x5f0 > [ 151.372088] ? rtnetlink_put_metrics+0x1c0/0x1c0 > [ 151.372096] netlink_rcv_skb+0xde/0x110 > [ 151.372109] netlink_unicast+0x1e4/0x310 > [ 151.372118] netlink_sendmsg+0x2dc/0x3c0 > [ 151.372136] sock_sendmsg+0x30/0x40 > [ 151.372142] ___sys_sendmsg+0x2b9/0x2d0 > [ 151.372171] ? __handle_mm_fault+0x7f8/0x1120 > [ 151.372189] ? __do_page_fault+0x2a5/0x530 > [ 151.372200] ? __sys_sendmsg+0x51/0x90 > [ 151.372205] __sys_sendmsg+0x51/0x90 > [ 151.372225] entry_SYSCALL_64_fastpath+0x29/0xa0 > [ 151.372230] RIP: 0033:0x7f7049397490 > [ 151.372233] RSP: 002b:00007ffd0c432f48 EFLAGS: 00000246 > [ 151.372445] BUG: scheduling while atomic: tc/1135/0x00000202 > [ 151.372524] 3 locks held by tc/1135: > [ 151.372527] #0: (rtnl_mutex){+.+.}, at: [<ffffffff98826e5b>] rtnetlink_rcv_msg+0x23b/0x5f0 > [ 151.372544] #1: (&qdisc_tx_lock){+...}, at: [<ffffffffc07a5f0f>] htb_change_class+0x55f/0x880 [sch_htb] > [ 151.372560] #2: (rcu_sched_state.barrier_mutex){+.+.}, at: [<ffffffff9810bbbf>] _rcu_barrier+0x2f/0x170 > [ 151.372575] Modules linked in: sch_sfq sch_htb ppdev input_leds serio_raw joydev parport_pc parport i2c_piix4 mac_hid ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs zstd_decompress zstd_compress xxhash raid10 raid456 libcrc32c async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq raid1 raid0 multipath linear qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 crypto_simd cryptd glue_helper psmouse floppy pata_acpi hid_generic usbhid hid > [ 151.372748] CPU: 2 PID: 1135 Comm: tc Tainted: G W 4.14.15 #2 > [ 151.372751] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 > [ 151.372753] Call Trace: > [ 151.372759] dump_stack+0x7c/0xbe > [ 151.372767] __schedule_bug+0x62/0x90 > [ 151.372772] __schedule+0x7d9/0xb80 > [ 151.372788] schedule+0x39/0x90 > [ 151.372793] schedule_timeout+0x24d/0x5c0 > [ 151.372813] ? mark_held_locks+0x71/0xa0 > [ 151.372825] ? wait_for_completion+0x12e/0x1a0 > [ 151.372829] wait_for_completion+0x12e/0x1a0 > [ 151.372835] ? wake_up_q+0x60/0x60 > [ 151.372846] _rcu_barrier+0x11a/0x170 > [ 151.372853] tcf_block_put+0x7f/0xa0 > [ 151.372860] sfq_destroy+0x15/0x50 [sch_sfq] > [ 151.372866] qdisc_destroy+0x6c/0xe0 > [ 151.372872] htb_change_class+0x704/0x880 [sch_htb] > [ 151.372894] tc_ctl_tclass+0x193/0x3c0 > [ 151.372918] rtnetlink_rcv_msg+0x270/0x5f0 > [ 151.372932] ? rtnetlink_put_metrics+0x1c0/0x1c0 > [ 151.372940] netlink_rcv_skb+0xde/0x110 > [ 151.372952] netlink_unicast+0x1e4/0x310 > [ 151.372961] netlink_sendmsg+0x2dc/0x3c0 > [ 151.372977] sock_sendmsg+0x30/0x40 > [ 151.372983] ___sys_sendmsg+0x2b9/0x2d0 > [ 151.373010] ? __handle_mm_fault+0x7f8/0x1120 > [ 151.373026] ? __do_page_fault+0x2a5/0x530 > [ 151.373037] ? __sys_sendmsg+0x51/0x90 > [ 151.373042] __sys_sendmsg+0x51/0x90 > [ 151.373061] entry_SYSCALL_64_fastpath+0x29/0xa0 > [ 151.373065] RIP: 0033:0x7f7049397490 > [ 151.373068] RSP: 002b:00007ffd0c432f48 EFLAGS: 00000246 > [ 151.373306] NOHZ: local_softirq_pending 202 > [ 151.400331] ------------[ cut here ]------------ > [ 151.400342] WARNING: CPU: 2 PID: 1135 at net/core/skbuff.c:615 skb_release_head_state+0x4b/0x50 > [ 151.400345] Modules linked in: sch_sfq sch_htb ppdev input_leds serio_raw joydev parport_pc parport i2c_piix4 mac_hid ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs zstd_decompress zstd_compress xxhash raid10 raid456 libcrc32c async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq raid1 raid0 multipath linear qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 crypto_simd cryptd glue_helper psmouse floppy pata_acpi hid_generic usbhid hid > [ 151.400521] CPU: 2 PID: 1135 Comm: tc Tainted: G W 4.14.15 #2 > [ 151.400524] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 > [ 151.400527] task: ffff980e7b050000 task.stack: ffffa3ca00578000 > [ 151.400532] RIP: 0010:skb_release_head_state+0x4b/0x50 > [ 151.400536] RSP: 0018:ffffa3ca0057bc38 EFLAGS: 00010206 > [ 151.400543] RAX: ffffffff9884c9a0 RBX: ffff980e7b18c800 RCX: 0000000000000002 > [ 151.400546] RDX: 00000000000f0000 RSI: 00000000ffffffff RDI: 0000000000000000 > [ 151.400550] RBP: ffff980e72d9f800 R08: 0000000000000004 R09: 0000000000000000 > [ 151.400553] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000868 > [ 151.400556] R13: ffff980e7b18c800 R14: 0000000000000000 R15: 0000000000000000 > [ 151.400560] FS: 00007f7049d82700(0000) GS:ffff980e7e200000(0000) knlGS:0000000000000000 > [ 151.400564] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 151.400567] CR2: 00007fb14b0f74a0 CR3: 000000003b142004 CR4: 00000000003606e0 > [ 151.400574] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > [ 151.400578] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > [ 151.400581] Call Trace: > [ 151.400589] skb_release_all+0xe/0x30 > [ 151.400594] consume_skb+0x43/0x140 > [ 151.400603] netlink_unicast+0x1ec/0x310 > [ 151.400613] netlink_sendmsg+0x2dc/0x3c0 > [ 151.400630] sock_sendmsg+0x30/0x40 > [ 151.400637] ___sys_sendmsg+0x2b9/0x2d0 > [ 151.400667] ? __handle_mm_fault+0x7f8/0x1120 > [ 151.400685] ? __do_page_fault+0x2a5/0x530 > [ 151.400697] ? __sys_sendmsg+0x51/0x90 > [ 151.400702] __sys_sendmsg+0x51/0x90 > [ 151.400724] entry_SYSCALL_64_fastpath+0x29/0xa0 > [ 151.400729] RIP: 0033:0x7f7049397490 > [ 151.400732] RSP: 002b:00007ffd0c432f48 EFLAGS: 00000246 > [ 151.400755] Code: 48 8b 43 60 48 85 c0 74 20 65 8b 15 b0 c2 81 67 81 e2 00 00 0f 00 75 13 48 89 df 5b ff e0 48 83 e7 fe e8 a9 27 02 00 eb cf 5b c3 <0f> ff eb e9 90 0f 1f 44 00 00 53 48 89 fb e8 a2 ff ff ff 48 83 > [ 151.400935] ---[ end trace a2dc1d508339e762 ]--- > [ 151.400954] show_signal_msg: 5 callbacks suppressed > [ 151.400957] tc[1135]: segfault at 7ffd0c434000 ip 00007f7049401af8 sp 00007ffd0c432f48 error 6 > [ 151.401033] BUG: scheduling while atomic: tc/1135/0x7ffffe00 > [ 151.401104] no locks held by tc/1135. > [ 151.401107] Modules linked in: sch_sfq sch_htb ppdev input_leds serio_raw joydev parport_pc parport i2c_piix4 mac_hid ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs zstd_decompress zstd_compress xxhash raid10 raid456 libcrc32c async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq raid1 raid0 multipath linear qxl drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 crypto_simd cryptd glue_helper psmouse floppy pata_acpi hid_generic usbhid hid > [ 151.401277] CPU: 2 PID: 1135 Comm: tc Tainted: G W 4.14.15 #2 > [ 151.401281] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 > [ 151.401284] Call Trace: > [ 151.401291] dump_stack+0x7c/0xbe > [ 151.401300] __schedule_bug+0x62/0x90 > [ 151.401306] __schedule+0x7d9/0xb80 > [ 151.401323] schedule+0x39/0x90 > [ 151.401329] schedule_timeout+0x24d/0x5c0 > [ 151.401334] ? try_to_wake_up+0x55/0x550 > [ 151.401351] ? wait_for_completion+0x126/0x1a0 > [ 151.401366] ? wait_for_completion+0x12e/0x1a0 > [ 151.401371] wait_for_completion+0x12e/0x1a0 > [ 151.401377] ? wake_up_q+0x60/0x60 > [ 151.401389] call_usermodehelper_exec+0x143/0x170 > [ 151.401402] ? wait_for_completion+0x49/0x1a0 > [ 151.401415] do_coredump+0xb8a/0x10e0 > [ 151.401466] get_signal+0x3d0/0x8f0 > [ 151.401488] do_signal+0x36/0x700 > [ 151.401493] ? force_sig_info+0xca/0xe0 > [ 151.401504] ? force_sig_info_fault+0x97/0xf0 > [ 151.401519] ? __bad_area_nosemaphore+0x168/0x1a0 > [ 151.401537] exit_to_usermode_loop+0x80/0xc0 > [ 151.401543] ? async_page_fault+0x36/0x60 > [ 151.401550] prepare_exit_to_usermode+0x7a/0x90 > [ 151.401557] retint_user+0x8/0x18 > [ 151.401562] RIP: 0033:0x7f7049401af8 > [ 151.401565] RSP: 002b:00007ffd0c432f48 EFLAGS: 00010207 > [ 151.401571] RAX: 0000000000000000 RBX: 000000000064cb00 RCX: 0000000000006fd0 > [ 151.401575] RDX: 0000000000008000 RSI: 00007ffd0c43afd0 RDI: 00007ffd0c434000 > [ 151.401578] RBP: 000000005a6f436a R08: 0000000000000014 R09: 0000000000000000 > [ 151.401581] R10: 00000000000005e7 R11: 0000000000000246 R12: 00007ffd0c432f90 > [ 151.401584] R13: 00007ffd0c432fd0 R14: 0000000000655aa0 R15: 0000000000000000 > > [ 168.036082] ======================================================== > [ 168.037902] WARNING: possible irq lock inversion dependency detected > [ 168.039397] 4.14.15 #2 Tainted: G W > [ 168.040574] -------------------------------------------------------- > [ 168.041051] swapper/3/0 just changed the state of lock: > [ 168.041520] (&qdisc_tx_lock){+.-.}, at: [<ffffffff98811e2a>] __dev_queue_xmit+0x24a/0x9a0 > [ 168.042009] but this lock took another, SOFTIRQ-unsafe lock in the past: > [ 168.042486] (rcu_sched_state.barrier_mutex){+.+.} > [ 168.042488] > > and interrupts could create inverse lock ordering between them. > > [ 168.044723] > other info that might help us debug this: > [ 168.045509] Possible interrupt unsafe locking scenario: > > [ 168.046288] CPU0 CPU1 > [ 168.046649] ---- ---- > [ 168.047009] lock(rcu_sched_state.barrier_mutex); > [ 168.047372] local_irq_disable(); > [ 168.047742] lock(&qdisc_tx_lock); > [ 168.048112] lock(rcu_sched_state.barrier_mutex); > [ 168.048504] <Interrupt> > [ 168.048871] lock(&qdisc_tx_lock); > [ 168.049240] > *** DEADLOCK *** > > [ 168.050329] 4 locks held by swapper/3/0: > [ 168.050693] #0: (rcu_read_lock){....}, at: [<ffffffff9881355a>] netif_receive_skb_internal+0x2a/0x360 > [ 168.051082] #1: (rcu_read_lock){....}, at: [<ffffffff9885e836>] ip_local_deliver_finish+0x26/0x1f0 > [ 168.051472] #2: (rcu_read_lock_bh){....}, at: [<ffffffff9886389c>] ip_finish_output2+0xac/0x650 > [ 168.051868] #3: (rcu_read_lock_bh){....}, at: [<ffffffff98811c3e>] __dev_queue_xmit+0x5e/0x9a0 > [ 168.052266] > the shortest dependencies between 2nd lock and 1st lock: > [ 168.053089] -> (rcu_sched_state.barrier_mutex){+.+.} ops: 3 { > [ 168.053504] HARDIRQ-ON-W at: > [ 168.053900] lock_acquire+0xec/0x1e0 > [ 168.054301] __mutex_lock+0x92/0x9a0 > [ 168.054698] _rcu_barrier+0x2f/0x170 > [ 168.055094] slab_caches_to_rcu_destroy_workfn+0x95/0xe0 > [ 168.055522] process_one_work+0x204/0x650 > [ 168.055922] worker_thread+0x4d/0x3e0 > [ 168.056316] kthread+0x10a/0x140 > [ 168.056717] ret_from_fork+0x3a/0x50 > [ 168.057107] SOFTIRQ-ON-W at: > [ 168.057494] lock_acquire+0xec/0x1e0 > [ 168.057886] __mutex_lock+0x92/0x9a0 > [ 168.058267] _rcu_barrier+0x2f/0x170 > [ 168.058641] slab_caches_to_rcu_destroy_workfn+0x95/0xe0 > [ 168.059016] process_one_work+0x204/0x650 > [ 168.059386] worker_thread+0x4d/0x3e0 > [ 168.059751] kthread+0x10a/0x140 > [ 168.060109] ret_from_fork+0x3a/0x50 > [ 168.060468] INITIAL USE at: > [ 168.060808] lock_acquire+0xec/0x1e0 > [ 168.061147] __mutex_lock+0x92/0x9a0 > [ 168.061484] _rcu_barrier+0x2f/0x170 > [ 168.061825] slab_caches_to_rcu_destroy_workfn+0x95/0xe0 > [ 168.062166] process_one_work+0x204/0x650 > [ 168.062502] worker_thread+0x4d/0x3e0 > [ 168.062843] kthread+0x10a/0x140 > [ 168.063180] ret_from_fork+0x3a/0x50 > [ 168.063514] } > [ 168.063857] ... key at: [<ffffffff992798b0>] rcu_sched_state+0x8530/0x8800 > [ 168.064200] ... acquired at: > [ 168.064554] __mutex_lock+0x92/0x9a0 > [ 168.064897] _rcu_barrier+0x2f/0x170 > [ 168.065236] tcf_block_put+0x7f/0xa0 > [ 168.065599] sfq_destroy+0x15/0x50 [sch_sfq] > [ 168.065940] qdisc_destroy+0x6c/0xe0 > [ 168.066277] htb_change_class+0x704/0x880 [sch_htb] > [ 168.066618] tc_ctl_tclass+0x193/0x3c0 > [ 168.066960] rtnetlink_rcv_msg+0x270/0x5f0 > [ 168.067306] netlink_rcv_skb+0xde/0x110 > [ 168.067653] netlink_unicast+0x1e4/0x310 > [ 168.067999] netlink_sendmsg+0x2dc/0x3c0 > [ 168.068332] sock_sendmsg+0x30/0x40 > [ 168.068713] ___sys_sendmsg+0x2b9/0x2d0 > [ 168.069036] __sys_sendmsg+0x51/0x90 > [ 168.069357] entry_SYSCALL_64_fastpath+0x29/0xa0 > > [ 168.069974] -> (&qdisc_tx_lock){+.-.} ops: 5 { > [ 168.070283] HARDIRQ-ON-W at: > [ 168.070587] lock_acquire+0xec/0x1e0 > [ 168.070901] _raw_spin_lock_bh+0x38/0x70 > [ 168.071212] htb_change_class+0x55f/0x880 [sch_htb] > [ 168.071526] tc_ctl_tclass+0x193/0x3c0 > [ 168.071838] rtnetlink_rcv_msg+0x270/0x5f0 > [ 168.072148] netlink_rcv_skb+0xde/0x110 > [ 168.072466] netlink_unicast+0x1e4/0x310 > [ 168.072774] netlink_sendmsg+0x2dc/0x3c0 > [ 168.073080] sock_sendmsg+0x30/0x40 > [ 168.073384] ___sys_sendmsg+0x2b9/0x2d0 > [ 168.073703] __sys_sendmsg+0x51/0x90 > [ 168.074005] entry_SYSCALL_64_fastpath+0x29/0xa0 > [ 168.074312] IN-SOFTIRQ-W at: > [ 168.074615] lock_acquire+0xec/0x1e0 > [ 168.074948] _raw_spin_lock+0x30/0x70 > [ 168.075260] __dev_queue_xmit+0x24a/0x9a0 > [ 168.075567] ip_finish_output2+0x4c6/0x650 > [ 168.075877] ip_output+0x7c/0x250 > [ 168.076183] tcp_v4_send_synack+0x8e/0x120 > [ 168.076497] tcp_conn_request+0xaf4/0xc80 > [ 168.076804] tcp_rcv_state_process+0x233/0xf30 > [ 168.077114] tcp_v4_do_rcv+0xae/0x1c0 > [ 168.077419] tcp_v4_rcv+0xa2e/0xa80 > [ 168.077720] ip_local_deliver_finish+0x97/0x1f0 > [ 168.078024] ip_local_deliver+0x71/0x210 > [ 168.078329] ip_rcv+0x271/0x4c0 > [ 168.078631] __netif_receive_skb_core+0x79c/0xd20 > [ 168.078937] netif_receive_skb_internal+0x1a7/0x360 > [ 168.079241] napi_gro_receive+0x137/0x1b0 > [ 168.079539] receive_buf+0x444/0x1730 > [ 168.079837] virtnet_poll+0x119/0x290 > [ 168.080136] net_rx_action+0x1fd/0x410 > [ 168.080444] __do_softirq+0xc8/0x49a > [ 168.080743] irq_exit+0xc1/0xd0 > [ 168.081039] do_IRQ+0x60/0x110 > [ 168.081333] ret_from_intr+0x0/0x22 > [ 168.081624] native_safe_halt+0x2/0x10 > [ 168.081917] default_idle+0x1d/0x1a0 > [ 168.082209] do_idle+0x170/0x200 > [ 168.082501] cpu_startup_entry+0x6f/0x80 > [ 168.082797] start_secondary+0x197/0x1f0 > [ 168.083093] secondary_startup_64+0xa5/0xb0 > [ 168.083404] INITIAL USE at: > [ 168.083697] lock_acquire+0xec/0x1e0 > [ 168.083995] _raw_spin_lock_bh+0x38/0x70 > [ 168.084293] htb_change_class+0x55f/0x880 [sch_htb] > [ 168.084614] tc_ctl_tclass+0x193/0x3c0 > [ 168.084922] rtnetlink_rcv_msg+0x270/0x5f0 > [ 168.085218] netlink_rcv_skb+0xde/0x110 > [ 168.085514] netlink_unicast+0x1e4/0x310 > [ 168.085807] netlink_sendmsg+0x2dc/0x3c0 > [ 168.086096] sock_sendmsg+0x30/0x40 > [ 168.086384] ___sys_sendmsg+0x2b9/0x2d0 > [ 168.086673] __sys_sendmsg+0x51/0x90 > [ 168.086963] entry_SYSCALL_64_fastpath+0x29/0xa0 > [ 168.087256] } > [ 168.087544] ... key at: [<ffffffff9a7cc448>] qdisc_tx_lock+0x0/0x8 > [ 168.087845] ... acquired at: > [ 168.088144] mark_lock+0x30a/0x5c0 > [ 168.088448] __lock_acquire+0x3a5/0x1510 > [ 168.088743] lock_acquire+0xec/0x1e0 > [ 168.089035] _raw_spin_lock+0x30/0x70 > [ 168.089328] __dev_queue_xmit+0x24a/0x9a0 > [ 168.089621] ip_finish_output2+0x4c6/0x650 > [ 168.089915] ip_output+0x7c/0x250 > [ 168.090207] tcp_v4_send_synack+0x8e/0x120 > [ 168.090500] tcp_conn_request+0xaf4/0xc80 > [ 168.090794] tcp_rcv_state_process+0x233/0xf30 > [ 168.091089] tcp_v4_do_rcv+0xae/0x1c0 > [ 168.091382] tcp_v4_rcv+0xa2e/0xa80 > [ 168.091675] ip_local_deliver_finish+0x97/0x1f0 > [ 168.091971] ip_local_deliver+0x71/0x210 > [ 168.092265] ip_rcv+0x271/0x4c0 > [ 168.092561] __netif_receive_skb_core+0x79c/0xd20 > [ 168.092857] netif_receive_skb_internal+0x1a7/0x360 > [ 168.093154] napi_gro_receive+0x137/0x1b0 > [ 168.093448] receive_buf+0x444/0x1730 > [ 168.093758] virtnet_poll+0x119/0x290 > [ 168.094050] net_rx_action+0x1fd/0x410 > [ 168.094355] __do_softirq+0xc8/0x49a > [ 168.094647] irq_exit+0xc1/0xd0 > [ 168.094937] do_IRQ+0x60/0x110 > [ 168.095227] ret_from_intr+0x0/0x22 > [ 168.095518] native_safe_halt+0x2/0x10 > [ 168.095809] default_idle+0x1d/0x1a0 > [ 168.096099] do_idle+0x170/0x200 > [ 168.096395] cpu_startup_entry+0x6f/0x80 > [ 168.096687] start_secondary+0x197/0x1f0 > [ 168.096978] secondary_startup_64+0xa5/0xb0 > > [ 168.097552] > stack backtrace: > [ 168.098105] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G W 4.14.15 #2 > [ 168.098393] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 > [ 168.098690] Call Trace: > [ 168.098986] <IRQ> > [ 168.099278] dump_stack+0x7c/0xbe > [ 168.099574] print_irq_inversion_bug.part.43+0x198/0x1a3 > [ 168.099877] check_usage_forwards+0x17a/0x180 > [ 168.100182] ? __save_stack_trace+0x82/0x100 > [ 168.100493] ? secondary_startup_64+0xa5/0xb0 > [ 168.100799] ? check_usage_backwards+0x180/0x180 > [ 168.101106] ? mark_lock+0x30a/0x5c0 > [ 168.101410] mark_lock+0x30a/0x5c0 > [ 168.101709] __lock_acquire+0x3a5/0x1510 > [ 168.102005] ? __lock_acquire+0xc21/0x1510 > [ 168.102303] ? lock_acquire+0xec/0x1e0 > [ 168.102598] lock_acquire+0xec/0x1e0 > [ 168.102893] ? __dev_queue_xmit+0x24a/0x9a0 > [ 168.103191] _raw_spin_lock+0x30/0x70 > [ 168.103488] ? __dev_queue_xmit+0x24a/0x9a0 > [ 168.103803] __dev_queue_xmit+0x24a/0x9a0 > [ 168.104124] ip_finish_output2+0x4c6/0x650 > [ 168.104437] ? ip_output+0x7c/0x250 > [ 168.104733] ip_output+0x7c/0x250 > [ 168.105028] ? tcp_make_synack+0x38b/0x4b0 > [ 168.105325] tcp_v4_send_synack+0x8e/0x120 > [ 168.105623] ? _raw_spin_unlock+0x24/0x30 > [ 168.105920] ? inet_ehash_insert+0xfa/0x170 > [ 168.106218] tcp_conn_request+0xaf4/0xc80 > [ 168.106519] ? tcp_rcv_state_process+0x233/0xf30 > [ 168.106818] tcp_rcv_state_process+0x233/0xf30 > [ 168.107119] ? tcp_v4_do_rcv+0xae/0x1c0 > [ 168.107416] tcp_v4_do_rcv+0xae/0x1c0 > [ 168.107713] tcp_v4_rcv+0xa2e/0xa80 > [ 168.108010] ip_local_deliver_finish+0x97/0x1f0 > [ 168.108310] ip_local_deliver+0x71/0x210 > [ 168.108614] ip_rcv+0x271/0x4c0 > [ 168.108953] ? packet_rcv+0x3d/0x3a0 > [ 168.109261] __netif_receive_skb_core+0x79c/0xd20 > [ 168.109564] ? lock_acquire+0xec/0x1e0 > [ 168.109867] ? dev_gro_receive+0x26b/0x5c0 > [ 168.110172] ? netif_receive_skb_internal+0x2a/0x360 > [ 168.110480] ? netif_receive_skb_internal+0x1a7/0x360 > [ 168.110892] ? netif_receive_skb_internal+0x56/0x360 > [ 168.111197] netif_receive_skb_internal+0x1a7/0x360 > [ 168.111503] napi_gro_receive+0x137/0x1b0 > [ 168.111806] receive_buf+0x444/0x1730 > [ 168.112115] ? __lock_acquire+0x2e7/0x1510 > [ 168.112439] ? vring_unmap_one+0x16/0x70 > [ 168.112754] ? detach_buf+0x68/0x110 > [ 168.113052] virtnet_poll+0x119/0x290 > [ 168.113339] ? __wake_up_common_lock+0x89/0xc0 > [ 168.113675] net_rx_action+0x1fd/0x410 > [ 168.113970] ? credit_entropy_bits+0x313/0x350 > [ 168.114262] __do_softirq+0xc8/0x49a > [ 168.114551] irq_exit+0xc1/0xd0 > [ 168.114837] do_IRQ+0x60/0x110 > [ 168.115121] common_interrupt+0xa2/0xa2 > [ 168.115404] </IRQ> > [ 168.115684] RIP: 0010:native_safe_halt+0x2/0x10 > [ 168.115969] RSP: 0018:ffffa3ca001ffec8 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff2e > [ 168.116267] RAX: ffff980e7db91b40 RBX: ffff980e7db91b40 RCX: 0000000000000000 > [ 168.116578] RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffff980e7db91b40 > [ 168.116886] RBP: 0000000000000003 R08: 0000000000000001 R09: 0000000000000000 > [ 168.117194] R10: 0000000000000000 R11: 0000000000000000 R12: ffff980e7db91b40 > [ 168.117501] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 > [ 168.117811] default_idle+0x1d/0x1a0 > [ 168.118116] do_idle+0x170/0x200 > [ 168.118419] cpu_startup_entry+0x6f/0x80 > [ 168.118725] start_secondary+0x197/0x1f0 > [ 168.119029] secondary_startup_64+0xa5/0xb0 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-29 17:03 ` Cong Wang @ 2018-01-29 19:07 ` Cong Wang 2018-01-30 17:46 ` Roland Franke 0 siblings, 1 reply; 11+ messages in thread From: Cong Wang @ 2018-01-29 19:07 UTC (permalink / raw) To: Stephen Hemminger Cc: Roland Franke, Eric Dumazet, Linux Kernel Network Developers On Mon, Jan 29, 2018 at 9:03 AM, Cong Wang <xiyou.wangcong@gmail.com> wrote: > On Mon, Jan 29, 2018 at 8:00 AM, Stephen Hemminger > <stephen@networkplumber.org> wrote: >> On Mon, 29 Jan 2018 16:18:07 +0100 >> "Roland Franke" <fli4l@franke-prem.de> wrote: >> >>> Hello, >>> >>> > To: Roland Franke ; netdev@vger.kernel.org >>> > Subject: Re: BUG: iproute2 4.14.1 tc class add come to kernel-panic >>> >> >>> >> tc qdisc add dev eth0 root handle 20: htb default 4 r2q 1 >>> >> tc class add dev eth0 parent 20: classid 20:7 htb rate 10000kbit >>> >> tc qdisc add dev eth0 parent 20:7 sfq perturb 10 >>> >> tc class add dev eth0 parent 20:7 classid 20:1 htb rate 200kbit ceil >>> >> 10000kbit prio 0 >>> >> >>> >> I become an Kernel-panic with the following output: >>> >> kern.err kernel: BUG: scheduling while atomic: tc/1036/0x00000200 >>> > >>> >>> > Would you have a stack trace to share with us ? >>> >>> As i will be an absolute newby here, i will not know how to >>> get the stack trace out. >>> When i will get some information how to get this, i can try to >>> give you this information. >>> But by my last tests i made the first 3 commands on an console >>> and had no error. Only by typing the last line i will get the error and >>> here i get actally only the "kern.err kernel: BUG: ....." message. >>> >>> Roland >> >> It generates this with lockdep (on 4.15) >> >> [ 151.355076] HTB: quantum of class 200007 is big. Consider r2q change. >> [ 151.371495] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:747 >> [ 151.371815] in_atomic(): 1, irqs_disabled(): 0, pid: 1135, name: tc >> [ 151.371875] 2 locks held by tc/1135: >> [ 151.371878] #0: (rtnl_mutex){+.+.}, at: [<ffffffff98826e5b>] rtnetlink_rcv_msg+0x23b/0x5f0 >> [ 151.371899] #1: (&qdisc_tx_lock){+...}, at: [<ffffffffc07a5f0f>] htb_change_class+0x55f/0x880 [sch_htb] >> [ 151.371918] CPU: 2 PID: 1135 Comm: tc Not tainted 4.14.15 #2 >> [ 151.371921] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 >> [ 151.371924] Call Trace: >> [ 151.371934] dump_stack+0x7c/0xbe >> [ 151.371944] ___might_sleep+0x21e/0x250 >> [ 151.371953] __mutex_lock+0x59/0x9a0 >> [ 151.371960] ? lock_acquire+0xec/0x1e0 >> [ 151.371973] ? __raw_spin_lock_init+0x1c/0x50 >> [ 151.371990] ? _rcu_barrier+0x2f/0x170 >> [ 151.371995] ? __lockdep_init_map+0x5c/0x1d0 >> [ 151.371998] _rcu_barrier+0x2f/0x170 >> [ 151.372006] tcf_block_put+0x7f/0xa0 >> [ 151.372013] sfq_destroy+0x15/0x50 [sch_sfq] >> [ 151.372021] qdisc_destroy+0x6c/0xe0 >> [ 151.372028] htb_change_class+0x704/0x880 [sch_htb] > > > We hold qdisc tree spinlock but call rcu_barrier() in > mini_qdisc_pair_swap()... Well, not min_qdisc things, but it should be resolved by: commit efbf78973978b0d25af59bc26c8013a942af6e64 Author: Cong Wang <xiyou.wangcong@gmail.com> Date: Mon Dec 4 10:48:18 2017 -0800 net_sched: get rid of rcu_barrier() in tcf_block_put_ext() ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-29 19:07 ` Cong Wang @ 2018-01-30 17:46 ` Roland Franke 2018-01-31 6:27 ` Cong Wang 0 siblings, 1 reply; 11+ messages in thread From: Roland Franke @ 2018-01-30 17:46 UTC (permalink / raw) To: Cong Wang, Stephen Hemminger Cc: Eric Dumazet, Linux Kernel Network Developers Hello, > On Mon, Jan 29, 2018 at 9:03 AM, Cong Wang <xiyou.wangcong@gmail.com> > wrote: >> On Mon, Jan 29, 2018 at 8:00 AM, Stephen Hemminger >> <stephen@networkplumber.org> wrote: >>> On Mon, 29 Jan 2018 16:18:07 +0100 >>> "Roland Franke" <fli4l@franke-prem.de> wrote: >>> >>>> Hello, >>>> >>>> > To: Roland Franke ; netdev@vger.kernel.org >>>> > Subject: Re: BUG: iproute2 4.14.1 tc class add come to kernel-panic >>>> >> >>>> >> tc qdisc add dev eth0 root handle 20: htb default 4 r2q 1 >>>> >> tc class add dev eth0 parent 20: classid 20:7 htb rate 10000kbit >>>> >> tc qdisc add dev eth0 parent 20:7 sfq perturb 10 >>>> >> tc class add dev eth0 parent 20:7 classid 20:1 htb rate 200kbit ceil >>>> >> 10000kbit prio 0 >>>> >> >>>> >> I become an Kernel-panic with the following output: >>>> >> kern.err kernel: BUG: scheduling while atomic: tc/1036/0x00000200 >>>> > >>>> >>>> > Would you have a stack trace to share with us ? >>>> >>>> As i will be an absolute newby here, i will not know how to >>>> get the stack trace out. >>>> When i will get some information how to get this, i can try to >>>> give you this information. >>>> But by my last tests i made the first 3 commands on an console >>>> and had no error. Only by typing the last line i will get the error and >>>> here i get actally only the "kern.err kernel: BUG: ....." message. >>>> >>>> Roland >>> >>> It generates this with lockdep (on 4.15) >>> >>> [ 151.355076] HTB: quantum of class 200007 is big. Consider r2q change. >> >> >> We hold qdisc tree spinlock but call rcu_barrier() in >> mini_qdisc_pair_swap()... > Well, not min_qdisc things, but it should be resolved by: > commit efbf78973978b0d25af59bc26c8013a942af6e64 > Author: Cong Wang <xiyou.wangcong@gmail.com> > Date: Mon Dec 4 10:48:18 2017 -0800 > net_sched: get rid of rcu_barrier() in tcf_block_put_ext() Against what kernel-version was this be made? patch from https://patchwork.ozlabs.org/patch/844372/ will not fit against kernel 4.14.15 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-30 17:46 ` Roland Franke @ 2018-01-31 6:27 ` Cong Wang 2018-01-31 7:46 ` Roland Franke 0 siblings, 1 reply; 11+ messages in thread From: Cong Wang @ 2018-01-31 6:27 UTC (permalink / raw) To: Roland Franke Cc: Stephen Hemminger, Eric Dumazet, Linux Kernel Network Developers On Tue, Jan 30, 2018 at 9:46 AM, Roland Franke <fli4l@franke-prem.de> wrote: > Hello, > >> Well, not min_qdisc things, but it should be resolved by: > > >> commit efbf78973978b0d25af59bc26c8013a942af6e64 >> Author: Cong Wang <xiyou.wangcong@gmail.com> >> Date: Mon Dec 4 10:48:18 2017 -0800 > > >> net_sched: get rid of rcu_barrier() in tcf_block_put_ext() > > > Against what kernel-version was this be made? > patch from https://patchwork.ozlabs.org/patch/844372/ > will not fit against kernel 4.14.15 > It is merged during 4.15 window, it was to address a performance issue, I don't realize it fixes any bug until you report this. If you need, we can ask DaveM to queue it for stable, but it may need some other commit too. Thanks. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-31 6:27 ` Cong Wang @ 2018-01-31 7:46 ` Roland Franke 2018-02-02 6:42 ` Cong Wang 0 siblings, 1 reply; 11+ messages in thread From: Roland Franke @ 2018-01-31 7:46 UTC (permalink / raw) To: Cong Wang Cc: Stephen Hemminger, Eric Dumazet, Linux Kernel Network Developers Hello, > On Tue, Jan 30, 2018 at 9:46 AM, Roland Franke <fli4l@franke-prem.de> > wrote: >> Hello, >> >>> Well, not min_qdisc things, but it should be resolved by: >> >>> commit efbf78973978b0d25af59bc26c8013a942af6e64 >>> Author: Cong Wang <xiyou.wangcong@gmail.com> >>> Date: Mon Dec 4 10:48:18 2017 -0800 >> >>> net_sched: get rid of rcu_barrier() in tcf_block_put_ext() >> >> >> Against what kernel-version was this be made? >> patch from https://patchwork.ozlabs.org/patch/844372/ >> will not fit against kernel 4.14.15 >> > It is merged during 4.15 window, it was to address a performance > issue, I don't realize it fixes any bug until you report this. > If you need, we can ask DaveM to queue it for stable, but it may > need some other commit too. It is not for me. It is a general question, if tc schould work with the requested function general not with the kernel-line 4.14 (As i was thinking that this should be come to a very long support. (As i was suggest to read in an german page for computers; but it may be a mistake from my side) Or if the 4.14 series come to a "short end" and then it take no matter when the function not work. Best regards. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-01-31 7:46 ` Roland Franke @ 2018-02-02 6:42 ` Cong Wang 2018-02-03 7:07 ` Roland Franke 0 siblings, 1 reply; 11+ messages in thread From: Cong Wang @ 2018-02-02 6:42 UTC (permalink / raw) To: Roland Franke Cc: Stephen Hemminger, Eric Dumazet, Linux Kernel Network Developers On Tue, Jan 30, 2018 at 11:46 PM, Roland Franke <fli4l@franke-prem.de> wrote: > Hello, > >> On Tue, Jan 30, 2018 at 9:46 AM, Roland Franke <fli4l@franke-prem.de> >> wrote: >>> >>> Hello, >>> >>>> Well, not min_qdisc things, but it should be resolved by: >>> >>> >>>> commit efbf78973978b0d25af59bc26c8013a942af6e64 >>>> Author: Cong Wang <xiyou.wangcong@gmail.com> >>>> Date: Mon Dec 4 10:48:18 2017 -0800 >>> >>> >>>> net_sched: get rid of rcu_barrier() in tcf_block_put_ext() >>> >>> >>> >>> Against what kernel-version was this be made? >>> patch from https://patchwork.ozlabs.org/patch/844372/ >>> will not fit against kernel 4.14.15 >>> > >> It is merged during 4.15 window, it was to address a performance >> issue, I don't realize it fixes any bug until you report this. > > >> If you need, we can ask DaveM to queue it for stable, but it may >> need some other commit too. > > > It is not for me. It is a general question, if tc schould work with > the requested function general not with the kernel-line 4.14 (As > i was thinking that this should be come to a very long support. > (As i was suggest to read in an german page for computers; but > it may be a mistake from my side) > Or if the 4.14 series come to a "short end" and then it take no > matter when the function not work. > Sure, I will send a list of commits to backport to DaveM. Thanks. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: iproute2 4.14.1 tc class add come to kernel-panic 2018-02-02 6:42 ` Cong Wang @ 2018-02-03 7:07 ` Roland Franke 0 siblings, 0 replies; 11+ messages in thread From: Roland Franke @ 2018-02-03 7:07 UTC (permalink / raw) To: Cong Wang Cc: Stephen Hemminger, Eric Dumazet, Linux Kernel Network Developers Hello, >> Hello, >> >>>>> Well, not min_qdisc things, but it should be resolved by: >>>> >>>> >>>>> commit efbf78973978b0d25af59bc26c8013a942af6e64 >>>>> Author: Cong Wang <xiyou.wangcong@gmail.com> >>>>> Date: Mon Dec 4 10:48:18 2017 -0800 >>>> >>>> >>>>> net_sched: get rid of rcu_barrier() in tcf_block_put_ext() >>>> >>>> >>>> >>>> Against what kernel-version was this be made? >>>> patch from https://patchwork.ozlabs.org/patch/844372/ >>>> will not fit against kernel 4.14.15 >>>> >> >>> It is merged during 4.15 window, it was to address a performance >>> issue, I don't realize it fixes any bug until you report this. >> >> >>> If you need, we can ask DaveM to queue it for stable, but it may >>> need some other commit too. >> >> >> It is not for me. It is a general question, if tc schould work with >> the requested function general not with the kernel-line 4.14 (As >> i was thinking that this should be come to a very long support. >> (As i was suggest to read in an german page for computers; but >> it may be a mistake from my side) >> Or if the 4.14 series come to a "short end" and then it take no >> matter when the function not work. >> > > Sure, I will send a list of commits to backport to DaveM. > Only as information: With Kernel 4.15(.0) i will get the same problem here by me. At last: kern.err kernel: BUG: scheduling while atomic: tc/23022/0x00000200 Best regards, Roland ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-02-03 7:07 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-01-29 14:51 BUG: iproute2 4.14.1 tc class add come to kernel-panic Roland Franke 2018-01-29 15:02 ` Eric Dumazet 2018-01-29 15:18 ` Roland Franke 2018-01-29 16:00 ` Stephen Hemminger 2018-01-29 17:03 ` Cong Wang 2018-01-29 19:07 ` Cong Wang 2018-01-30 17:46 ` Roland Franke 2018-01-31 6:27 ` Cong Wang 2018-01-31 7:46 ` Roland Franke 2018-02-02 6:42 ` Cong Wang 2018-02-03 7:07 ` Roland Franke
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).