make -C tools/testing/selftests TARGETS=net TEST_PROGS=fib_nexthops.sh TESST_GEN_PROGS="" run_tests make: Entering directory '/home/virtme/testing-3/tools/testing/selftests' make[1]: Entering directory '/home/virtme/testing-3/tools/testing/selftests/net' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/virtme/testing-3/tools/testing/selftests/net' make[1]: Entering directory '/home/virtme/testing-3/tools/testing/selftests/net' TAP version 13 1..1 # overriding timeout to 7200 # selftests: net: fib_nexthops.sh # # Basic functional tests # ---------------------- # TEST: List with nothing defined [ OK ] # TEST: Nexthop get on non-existent id [ OK ] # TEST: Nexthop with no device or gateway [ OK ] # TEST: Nexthop with down device [ OK ] # TEST: Nexthop with device that is linkdown [ OK ] # TEST: Nexthop with device only [ OK ] # TEST: Nexthop with duplicate id [ OK ] # TEST: Blackhole nexthop [ OK ] # TEST: Blackhole nexthop with other attributes [ OK ] # TEST: Blackhole nexthop with loopback device down [ OK ] # TEST: Maximum nexthop ID dump [ OK ] # TEST: Create group [ OK ] # TEST: Create group with blackhole nexthop [ OK ] # TEST: Create multipath group where 1 path is a blackhole [ OK ] # TEST: Multipath group can not have a member replaced by blackhole [ OK ] # TEST: Create group with non-existent nexthop [ OK ] # TEST: Create group with same nexthop multiple times [ OK ] # TEST: Replace nexthop with nexthop group [ OK ] # TEST: Replace nexthop group with nexthop [ OK ] # TEST: Nexthop group and device [ OK ] # TEST: Test proto flush [ OK ] # TEST: Nexthop group and blackhole [ OK ] # TEST: Large scale nexthop flushing [ OK ] # # Basic resilient nexthop group functional tests # ---------------------------------------------- # TEST: Add a nexthop group with default parameters [ OK ] # TEST: Get a nexthop group with default parameters [ OK ] # TEST: Get a nexthop group with non-default parameters [ OK ] # TEST: Add a nexthop group with 0 buckets [ OK ] # TEST: Replace nexthop group parameters [ OK ] # TEST: Get a nexthop group after replacing parameters [ OK ] # TEST: Replace idle timer [ OK ] # TEST: Get a nexthop group after replacing idle timer [ OK ] # TEST: Replace unbalanced timer [ OK ] # TEST: Get a nexthop group after replacing unbalanced timer [ OK ] # TEST: Replace with no parameters [ OK ] # TEST: Get a nexthop group after replacing no parameters [ OK ] # TEST: Replace nexthop group type - implicit [ OK ] # TEST: Replace nexthop group type - explicit [ OK ] # TEST: Replace number of nexthop buckets [ OK ] # TEST: Get a nexthop group after replacing with invalid parameters [ OK ] # TEST: Dump all nexthop buckets [ OK ] # TEST: Dump all nexthop buckets in a group [ OK ] # TEST: All nexthop buckets report a positive near-zero idle time [ OK ] # TEST: Dump all nexthop buckets with a specific nexthop device [ OK ] # TEST: Dump all nexthop buckets with a specific nexthop identifier [ OK ] # TEST: Dump all nexthop buckets in a non-existent group [ OK ] # TEST: Dump all nexthop buckets in a non-resilient group [ OK ] # TEST: Dump all nexthop buckets using a non-existent device [ OK ] # TEST: Dump all nexthop buckets with invalid 'groups' keyword [ OK ] # TEST: Dump all nexthop buckets with invalid 'fdb' keyword [ OK ] # TEST: Maximum nexthop ID dump [ OK ] # TEST: Get a valid nexthop bucket [ OK ] # TEST: Get a nexthop bucket with valid group, but invalid index [ OK ] # TEST: Get a nexthop bucket from a non-resilient group [ OK ] # TEST: Get a nexthop bucket from a non-existent group [ OK ] # TEST: Initial bucket allocation [ OK ] # TEST: Bucket allocation after replace [ OK ] # TEST: Buckets migrated after idle timer change [ OK ] # # IPv4 functional # ---------------------- # TEST: Create nexthop with id, gw, dev [ OK ] # TEST: Get nexthop by id [ OK ] # TEST: Delete nexthop by id [ OK ] # TEST: Create nexthop - gw only [ OK ] # TEST: Create nexthop - invalid gw+dev combination [ OK ] # TEST: Create nexthop - gw+dev and onlink [ OK ] # TEST: Nexthops removed on admin down [ OK ] # TEST: Delete nexthop route warning [ OK ] # TEST: Delete multipath route with only nh id based entry [ OK ] # TEST: Delete route when specifying only nexthop device [ OK ] # TEST: Delete route when specifying only gateway [ OK ] # TEST: Delete route when not specifying nexthop attributes [ OK ] # # IPv4 groups functional # ---------------------- # TEST: Create nexthop group with single nexthop [ OK ] # TEST: Get nexthop group by id [ OK ] # TEST: Delete nexthop group by id [ OK ] # TEST: Nexthop group with multiple nexthops [ OK ] # TEST: Nexthop group updated when entry is deleted [ OK ] # TEST: Nexthop group with weighted nexthops [ OK ] # TEST: Weighted nexthop group updated when entry is deleted [ OK ] # TEST: Nexthops in groups removed on admin down [ OK ] # TEST: Multiple groups with same nexthop [ OK ] # TEST: Nexthops in group removed on admin down - mixed group [ OK ] # TEST: Nexthop group can not have a group as an entry [ OK ] # TEST: Nexthop group with a blackhole entry [ OK ] # TEST: Nexthop group can not have a blackhole and another nexthop [ OK ] # # IPv4 resilient groups functional # -------------------------------- # TEST: Nexthop group updated when entry is deleted [ OK ] # TEST: Nexthop buckets updated when entry is deleted [ OK ] # TEST: Nexthop group updated after replace [ OK ] # TEST: Nexthop buckets updated after replace [ OK ] # TEST: Nexthop group updated when entry is deleted - nECMP [ OK ] # TEST: Nexthop buckets updated when entry is deleted - nECMP [ OK ] # TEST: Nexthop group updated after replace - nECMP [ OK ] # TEST: Nexthop buckets updated after replace - nECMP [ OK ] # TEST: IPv6 nexthop with IPv4 route [ OK ] # TEST: IPv6 nexthop with IPv4 route [ OK ] [ 208.044724][ T1110] [ 208.044969][ T1110] ============================= [ 208.045245][ T1110] WARNING: suspicious RCU usage [ 208.045504][ T1110] 6.8.0-rc4-virtme #1 Not tainted [ 208.045760][ T1110] ----------------------------- [ 208.046012][ T1110] include/net/nexthop.h:320 suspicious rcu_dereference_protected() usage! [ 208.047202][ T1110] [ 208.047202][ T1110] other info that might help us debug this: [ 208.047202][ T1110] [ 208.047717][ T1110] [ 208.047717][ T1110] rcu_scheduler_active = 2, debug_locks = 1 [ 208.048126][ T1110] 2 locks held by ip/1110: [ 208.048371][ T1110] #0: ffff8880165556c0 (nlk_cb_mutex-ROUTE){+.+.}-{3:3}, at: __netlink_dump_start+0x116/0x9f0 [ 208.048911][ T1110] #1: ffffffff98d5c860 (rcu_read_lock){....}-{1:2}, at: inet_dump_fib+0x11d/0x870 [ 208.049395][ T1110] [ 208.049395][ T1110] stack backtrace: [ 208.049694][ T1110] CPU: 3 PID: 1110 Comm: ip Not tainted 6.8.0-rc4-virtme #1 [ 208.050057][ T1110] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 208.050664][ T1110] Call Trace: [ 208.050841][ T1110] [ 208.050993][ T1110] dump_stack_lvl+0x92/0xb0 [ 208.051228][ T1110] lockdep_rcu_suspicious+0x1ec/0x290 [ 208.051505][ T1110] fib_add_multipath+0x5c3/0x6d0 [ 208.051775][ T1110] fib_dump_info+0x83d/0x10a0 [ 208.052018][ T1110] ? kasan_save_stack+0x24/0x50 [ 208.052275][ T1110] ? __pfx_fib_dump_info+0x10/0x10 [ 208.052549][ T1110] ? __nla_validate_parse+0x248/0x3d0 [ 208.052829][ T1110] fn_trie_dump_leaf+0x77d/0xc10 [ 208.053097][ T1110] ? __pfx_ip_valid_fib_dump_req+0x10/0x10 [ 208.053397][ T1110] ? __pfx_fn_trie_dump_leaf+0x10/0x10 [ 208.053683][ T1110] ? leaf_walk_rcu+0x412/0x5f0 [ 208 DETECTED CRASH, lowering timeout .053937][ T1110] fib_table_dump+0x163/0x2e0 [ 208.054183][ T1110] ? __pfx_fib_table_dump+0x10/0x10 [ 208.054462][ T1110] ? trace_kmalloc+0x27/0xa0 [ 208.054699][ T1110] ? lock_acquire+0x1c1/0x220 [ 208.054943][ T1110] ? inet_dump_fib+0x11d/0x870 [ 208.055192][ T1110] inet_dump_fib+0x5e4/0x870 [ 208.055431][ T1110] ? __build_skb_around+0x23d/0x350 [ 208.055699][ T1110] ? __alloc_skb+0x10b/0x280 [ 208.055941][ T1110] ? __pfx_inet_dump_fib+0x10/0x10 [ 208.056210][ T1110] ? __lock_acquired+0x18a/0x6b0 [ 208.056461][ T1110] ? __pfx___lock_acquired+0x10/0x10 [ 208.056740][ T1110] netlink_dump+0x519/0xbc0 [ 208.056973][ T1110] ? trace_contention_end+0xdc/0x110 [ 208.057247][ T1110] ? __pfx_netlink_dump+0x10/0x10 [ 208.057499][ T1110] ? __mutex_lock+0x26e/0xb10 [ 208.057744][ T1110] ? hlock_class+0x4e/0x130 [ 208.057998][ T1110] ? __pfx___netlink_lookup+0x10/0x10 [ 208.058273][ T1110] ? netlink_lookup+0xbc/0x1b0 [ 208.058533][ T1110] __netlink_dump_start+0x630/0x9f0 [ 208.058802][ T1110] rtnetlink_rcv_msg+0x887/0xbf0 [ 208.059056][ T1110] ? __pfx_inet_dump_fib+0x10/0x10 [ 208.059317][ T1110] ? __pfx_rtnetlink_rcv_msg+0x10/0x10 [ 208.059595][ T1110] ? __pfx_inet_dump_fib+0x10/0x10 [ 208.059863][ T1110] ? __lock_acquire+0xb67/0x1610 [ 208.060173][ T1110] netlink_rcv_skb+0x130/0x360 [ 208.060417][ T1110] ? __pfx_rtnetlink_rcv_msg+0x10/0x10 [ 208.060704][ T1110] ? __pfx_netlink_rcv_skb+0x10/0x10 [ 208.060996][ T1110] ? __pfx___netlink_lookup+0x10/0x10 [ 208.061267][ T1110] ? lock_acquire+0x1c1/0x220 [ 208.061507][ T1110] ? netlink_deliver_tap+0xc8/0x340 [ 208.061769][ T1110] ? netlink_deliver_tap+0xc8/0x340 [ 208.062039][ T1110] ? netlink_deliver_tap+0x149/0x340 [ 208.062319][ T1110] netlink_unicast+0x449/0x710 [ 208.062572][ T1110] ? __pfx_netlink_unicast+0x10/0x10 [ 208.062839][ T1110] ? __pfx___lock_release+0x10/0x10 [ 208.063116][ T1110] netlink_sendmsg+0x726/0xbe0 [ 208.063403][ T1110] ? __pfx_netlink_sendmsg+0x10/0x10 [ 208.063733][ T1110] ? __fget_light+0x54/0x1e0 [ 208.064064][ T1110] __sys_sendto+0x37d/0x410 [ 208.064316][ T1110] ? __pfx___sys_sendto+0x10/0x10 [ 208.064594][ T1110] ? do_user_addr_fault+0x3fa/0xba0 [ 208.064949][ T1110] ? hlock_class+0x4e/0x130 [ 208.065268][ T1110] ? __lock_release+0x40f/0x880 [ 208.065616][ T1110] ? __pfx___lock_release+0x10/0x10 [ 208.065987][ T1110] ? __up_read+0x1a8/0x790 [ 208.066315][ T1110] ? __pfx___up_read+0x10/0x10 [ 208.066662][ T1110] ? do_user_addr_fault+0x469/0xba0 [ 208.067043][ T1110] __x64_sys_sendto+0xe0/0x1c0 [ 208.067391][ T1110] ? lockdep_hardirqs_on_prepare.part.0+0x1b1/0x370 [ 208.067855][ T1110] do_syscall_64+0xc9/0x1e0 [ 208.068183][ T1110] entry_SYSCALL_64_after_hwframe+0x6f/0x77 [ 208.068605][ T1110] RIP: 0033:0x7f33363bd700 [ 208.068923][ T1110] Code: ff ff 64 89 02 eb bd 0f 1f 00 f3 0f 1e fa 41 89 ca 64 8b 04 25 18 00 00 00 85 c0 75 1d 45 31 c9 45 31 c0 b8 2c 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 68 c3 0f 1f 80 00 00 00 00 41 54 48 83 ec 20 [ 208.070276][ T1110] RSP: 002b:00007ffd241cf658 EFLAGS: 00000246 ORIG_RAX: 000000000000002c [ 208.070863][ T1110] RAX: ffffffffffffffda RBX: 0000000000495540 RCX: 00007f33363bd700 [ 208.071385][ T1110] RDX: 000000000000009c RSI: 00007ffd241cf660 RDI: 0000000000000005 [ 208.071831][ T1110] RBP: 00007ffd241cf660 R08: 0000000000000000 R09: 0000000000000000 [ 208.072374][ T1110] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffd241cf968 [ 208.072908][ T1110] R13: 0000000000000001 R14: 0000000000000001 R15: 00007ffd241cf970 [ 208.073480][ T1110] # TEST: IPv4 route with IPv6 gateway [ OK ] # TEST: IPv4 route with invalid IPv6 gateway [ OK ] # # IPv4 functional runtime # ----------------------- # TEST: Route add [ OK ] # TEST: Route delete [ OK ] # TEST: Route add - scope conflict with nexthop [ OK ] # TEST: Nexthop replace with invalid scope for existing route [ OK ] # TEST: IPv4 route with invalid metric [ OK ] # TEST: Basic ping [ OK ] # TEST: Ping - multipath [ OK ] # TEST: Ping - multiple default routes, nh first [ OK ] # TEST: Ping - multiple default routes, nh second [ OK ] # TEST: Ping - blackhole [ OK ] # TEST: Ping - blackhole replaced with gateway [ OK ] # TEST: Ping - gateway replaced by blackhole [ OK ] # TEST: Ping - group with blackhole [ OK ] # TEST: Ping - group blackhole replaced with gateways [ OK ] # TEST: IPv4 route with device only nexthop [ OK ] # TEST: IPv4 multipath route with nexthop mix - dev only + gw [ OK ] # TEST: IPv6 nexthop with IPv4 route [ OK ] # TEST: IPv4 route with mixed v4-v6 multipath route [ OK ] # TEST: IPv6 nexthop with IPv4 route [ OK ] # TEST: IPv4 route with IPv6 gateway [ OK ] # TEST: IPv4 default route with IPv6 gateway [ OK ] # TEST: IPv4 route with MPLS encap [ OK ] # TEST: IPv4 route with MPLS encap - check [ OK ] # TEST: IPv4 route with MPLS encap and v6 gateway [ OK ] # TEST: IPv4 route with MPLS encap, v6 gw - check [ OK ] # # IPv4 large groups (x32) # --------------------- # TEST: Dump large (x32) ecmp groups [ OK ] # # IPv4 large resilient group (128k buckets) # ----------------------------------------- # TEST: Dump large (x131072) nexthop buckets [ OK ] # # IPv4 nexthop api compat mode # ---------------------------- # TEST: IPv4 default nexthop compat mode check [ OK ] # TEST: IPv4 compat mode on - route add notification [ OK ] # TEST: IPv4 compat mode on - route dump [ OK ] # TEST: IPv4 compat mode on - nexthop change [ OK ] # TEST: IPv4 set compat mode - 0 [ OK ] # TEST: IPv4 compat mode off - route add notification [ OK ] # TEST: IPv4 compat mode off - route dump [ OK ] # TEST: IPv4 compat mode off - nexthop change [ OK ] # TEST: IPv4 compat mode off - nexthop delete [ OK ] # TEST: IPv4 set compat mode - 1 [ OK ] # # IPv4 fdb groups functional # -------------------------- # TEST: Fdb Nexthop group with multiple nexthops [ OK ] # TEST: Get Fdb nexthop group by id [ OK ] # TEST: Fdb Nexthop group with non-fdb nexthops [ OK ] # TEST: Non-Fdb Nexthop group with fdb nexthops [ OK ] # TEST: Fdb Nexthop with blackhole [ OK ] # TEST: Fdb Nexthop with oif [ OK ] # TEST: Fdb Nexthop with onlink [ OK ] # TEST: Fdb Nexthop with encap [ OK ] # TEST: Fdb mac add with nexthop group [ OK ] # TEST: Fdb mac add with nexthop [ OK ] # TEST: Route add with fdb nexthop [ OK ] # TEST: Route add with fdb nexthop group [ OK ] # TEST: Fdb entry after deleting a single nexthop [ OK ] # TEST: Fdb nexthop delete [ OK ] # TEST: Fdb entry after deleting a nexthop group [ OK ] # # IPv4 multipath selection # ------------------------ # TEST: Use valid neighbor during multipath selection [ OK ] # TEST: Multipath selection with no valid neighbor [ OK ] # # IPv4 runtime torture # -------------------- [ 703.387634][ T74] kmemleak: 1 new suspected memory leaks (see /sys/kernel/debug/kmemleak) # TEST: IPv4 torture test [ OK ] # # IPv4 runtime resilient nexthop group torture # -------------------------------------------- WAIT TIMEOUT stdout Ctrl-C stdout Ctrl-C stdout ^Cmake[1]: *** [../lib.mk:102: run_tests] Interrupt make: *** [Makefile:191: run_tests] Interrupt xx__->