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 ] [ 1783.469827][T12187] [ 1783.470085][T12187] ============================= [ 1783.470704][T12187] WARNING: suspicious RCU usage [ 1783.470965][T12187] 6.8.0-rc4-virtme #1 Not tainted [ 1783.471227][T12187] ----------------------------- [ 1783.471489][T12187] include/net/nexthop.h:320 suspicious rcu_dereference_protected() usage! [ 1783.471924][T12187] [ 1783.471924][T12187] other info that might help us debug this: [ 1783.471924][T12187] [ 1783.472451][T12187] [ 1783.472451][T12187] rcu_scheduler_active = 2, debug_locks = 1 [ 1783.472865][T12187] 2 locks held by ip/12187: [ 1783.473103][T12187] #0: ffff888003a3bec0 (nlk_cb_mutex-ROUTE){+.+.}-{3:3}, at: __netlink_dump_start+0x116/0x9f0 [ 1783.473673][T12187] #1: ffffffff8c75c860 (rcu_read_lock){....}-{1:2}, at: inet_dump_fib+0x11d/0x870 [ 1783.474163][T12187] [ 1783.474163][T12187] stack backtrace: [ 1783.474481][T12187] CPU: 2 PID: 12187 Comm: ip Not tainted 6.8.0-rc4-virtme #1 [ 1783.474863][T12187] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 1783.475489][T12187] Call Trace: [ 1783.475686][T12187] [ 1783.475843][T12187] dump_stack_lvl+0x92/0xb0 [ 1783.476094][T12187] lockdep_rcu_suspicious+0x1ec/0x290 [ 1783.476382][T12187] fib_add_multipath+0x5c3/0x6d0 [ 1783.476650][T12187] fib_dump_info+0x83d/0x10a0 [ 1783.476900][T12187] ? kasan_save_stack+0x24/0x50 [ 1783.477157][T12187] ? __pfx_fib_dump_info+0x10/0x10 [ 1783.477428][T12187] ? __nla_validate_parse+0x248/0x3d0 [ 1783.477716][T12187] fn_trie_dump_leaf+0x77d/0xc10 [ 1783.477982][T12187] ? __pfx_ip_valid_fib_dump_req+0x10/0x10 [ 1783.478286][T12187] ? __pfx_fn_trie_dump_leaf+0x10/0x10 [ 1783.478578][T12187] ? leaf_walk_rcu+0x412/0x5f0 [ 1783.478832][T12187] fib_table_dump+0x163/0x2e0 [ 1783.479083][T12187] ? __pfx_fib_table_dump+0x10/0x10 [ 1783.479352][T12187] ? trace_kmalloc+0x27/0xa0 [ 1783.479596][T12187] ? lock_acquire+0x1c1/0x220 [ 1783.479840][T12187] ? inet_dump_fi DETECTED CRASH, lowering timeout b+0x11d/0x870 [ 1783.480096][T12187] inet_dump_fib+0x5e4/0x870 [ 1783.480337][T12187] ? __build_skb_around+0x23d/0x350 [ 1783.480611][T12187] ? __alloc_skb+0x10b/0x280 [ 1783.480857][T12187] ? __pfx_inet_dump_fib+0x10/0x10 [ 1783.481126][T12187] ? __lock_acquired+0x18a/0x6b0 [ 1783.481387][T12187] ? __pfx___lock_acquired+0x10/0x10 [ 1783.481666][T12187] netlink_dump+0x519/0xbc0 [ 1783.481905][T12187] ? trace_contention_end+0xdc/0x110 [ 1783.482181][T12187] ? __pfx_netlink_dump+0x10/0x10 [ 1783.482441][T12187] ? __mutex_lock+0x26e/0xb10 [ 1783.482684][T12187] ? hlock_class+0x4e/0x130 [ 1783.482936][T12187] ? __pfx___netlink_lookup+0x10/0x10 [ 1783.483216][T12187] ? netlink_lookup+0xbc/0x1b0 [ 1783.483474][T12187] __netlink_dump_start+0x630/0x9f0 [ 1783.483749][T12187] rtnetlink_rcv_msg+0x887/0xbf0 [ 1783.484006][T12187] ? __pfx_inet_dump_fib+0x10/0x10 [ 1783.484274][T12187] ? __pfx_rtnetlink_rcv_msg+0x10/0x10 [ 1783.484556][T12187] ? __pfx_inet_dump_fib+0x10/0x10 [ 1783.484832][T12187] ? __lock_acquire+0xb67/0x1610 [ 1783.485093][T12187] netlink_rcv_skb+0x130/0x360 [ 1783.485342][T12187] ? __pfx_rtnetlink_rcv_msg+0x10/0x10 [ 1783.485630][T12187] ? __pfx_netlink_rcv_skb+0x10/0x10 [ 1783.485933][T12187] ? __pfx___netlink_lookup+0x10/0x10 [ 1783.486212][T12187] ? lock_acquire+0x1c1/0x220 [ 1783.486457][T12187] ? netlink_deliver_tap+0xc8/0x340 [ 1783.486726][T12187] ? netlink_deliver_tap+0xc8/0x340 [ 1783.486997][T12187] ? netlink_deliver_tap+0x149/0x340 [ 1783.487275][T12187] netlink_unicast+0x449/0x710 [ 1783.487530][T12187] ? __pfx_netlink_unicast+0x10/0x10 [ 1783.487805][T12187] ? __pfx___lock_release+0x10/0x10 [ 1783.488082][T12187] netlink_sendmsg+0x726/0xbe0 [ 1783.488338][T12187] ? __pfx_netlink_sendmsg+0x10/0x10 [ 1783.488615][T12187] ? __fget_light+0x54/0x1e0 [ 1783.488867][T12187] __sys_sendto+0x37d/0x410 [ 1783.489108][T12187] ? __pfx___sys_sendto+0x10/0x10 [ 1783.489372][T12187] ? do_user_addr_fault+0x3fa/0xba0 [ 1783.489666][T12187] ? hlock_class+0x4e/0x130 [ 1783.489902][T12187] ? __lock_release+0x40f/0x880 [ 1783.490158][T12187] ? __pfx___lock_release+0x10/0x10 [ 1783.490427][T12187] ? __up_read+0x1a8/0x790 [ 1783.490668][T12187] ? __pfx___up_read+0x10/0x10 [ 1783.490923][T12187] ? do_user_addr_fault+0x469/0xba0 [ 1783.491200][T12187] __x64_sys_sendto+0xe0/0x1c0 [ 1783.491452][T12187] ? lockdep_hardirqs_on_prepare.part.0+0x1b1/0x370 [ 1783.491793][T12187] do_syscall_64+0xc9/0x1e0 [ 1783.492034][T12187] entry_SYSCALL_64_after_hwframe+0x6f/0x77 [ 1783.492340][T12187] RIP: 0033:0x7f3628fe6700 [ 1783.492583][T12187] 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 [ 1783.493562][T12187] RSP: 002b:00007ffc04e86d28 EFLAGS: 00000246 ORIG_RAX: 000000000000002c [ 1783.493996][T12187] RAX: ffffffffffffffda RBX: 0000000000495540 RCX: 00007f3628fe6700 [ 1783.494401][T12187] RDX: 000000000000009c RSI: 00007ffc04e86d30 RDI: 0000000000000005 [ 1783.494804][T12187] RBP: 00007ffc04e86d30 R08: 0000000000000000 R09: 0000000000000000 [ 1783.495209][T12187] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffc04e87038 [ 1783.495620][T12187] R13: 0000000000000001 R14: 0000000000000001 R15: 00007ffc04e87040 [ 1783.496053][T12187] # 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 # -------------------- WAIT TIMEOUT stdout Ctrl-C stdout Ctrl-C stdout # TEST: IPv4 torture test ^Cmake[1]: *** [../lib.mk:102: run_tests] Interrupt make: *** [Makefile:191: run_tests] Interrupt xx__->