Patch "selftests/bpf: Fix flaky fib_lookup test" has been added to the 6.3-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    selftests/bpf: Fix flaky fib_lookup test

to the 6.3-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     selftests-bpf-fix-flaky-fib_lookup-test.patch
and it can be found in the queue-6.3 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 92bcf0c205535ee9aca4fb0ef18d4a73431635e7
Author: Martin KaFai Lau <martin.lau@xxxxxxxxxx>
Date:   Wed Mar 8 22:02:44 2023 -0800

    selftests/bpf: Fix flaky fib_lookup test
    
    [ Upstream commit a6865576317f6249f3f83cf4c10ab56e627ee153 ]
    
    There is a report that fib_lookup test is flaky when running in parallel.
    A symptom of slowness or delay. An example:
    
    Testing IPv6 stale neigh
    set_lookup_params:PASS:inet_pton(IPV6_IFACE_ADDR) 0 nsec
    test_fib_lookup:PASS:bpf_prog_test_run_opts 0 nsec
    test_fib_lookup:FAIL:fib_lookup_ret unexpected fib_lookup_ret: actual 0 != expected 7
    test_fib_lookup:FAIL:dmac not match unexpected dmac not match: actual 1 != expected 0
    dmac expected 11:11:11:11:11:11 actual 00:00:00:00:00:00
    
    [ Note that the "fib_lookup_ret unexpected fib_lookup_ret actual 0 ..."
      is reversed in terms of expected and actual value. Fixing in this
      patch also. ]
    
    One possibility is the testing stale neigh entry was marked dead by the
    gc (in neigh_periodic_work). The default gc_stale_time sysctl is 60s.
    This patch increases it to 15 mins.
    
    It also:
    
    - fixes the reversed arg (actual vs expected) in one of the
      ASSERT_EQ test
    - removes the nodad command arg when adding v4 neigh entry which
      currently has a warning.
    
    Fixes: 168de0233586 ("selftests/bpf: Add bpf_fib_lookup test")
    Reported-by: Alexei Starovoitov <ast@xxxxxxxxxx>
    Signed-off-by: Martin KaFai Lau <martin.lau@xxxxxxxxxx>
    Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/20230309060244.3242491-1-martin.lau@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/bpf/prog_tests/fib_lookup.c b/tools/testing/selftests/bpf/prog_tests/fib_lookup.c
index 429393caf6122..a1e7121058118 100644
--- a/tools/testing/selftests/bpf/prog_tests/fib_lookup.c
+++ b/tools/testing/selftests/bpf/prog_tests/fib_lookup.c
@@ -54,11 +54,19 @@ static int setup_netns(void)
 	SYS(fail, "ip link add veth1 type veth peer name veth2");
 	SYS(fail, "ip link set dev veth1 up");
 
+	err = write_sysctl("/proc/sys/net/ipv4/neigh/veth1/gc_stale_time", "900");
+	if (!ASSERT_OK(err, "write_sysctl(net.ipv4.neigh.veth1.gc_stale_time)"))
+		goto fail;
+
+	err = write_sysctl("/proc/sys/net/ipv6/neigh/veth1/gc_stale_time", "900");
+	if (!ASSERT_OK(err, "write_sysctl(net.ipv6.neigh.veth1.gc_stale_time)"))
+		goto fail;
+
 	SYS(fail, "ip addr add %s/64 dev veth1 nodad", IPV6_IFACE_ADDR);
 	SYS(fail, "ip neigh add %s dev veth1 nud failed", IPV6_NUD_FAILED_ADDR);
 	SYS(fail, "ip neigh add %s dev veth1 lladdr %s nud stale", IPV6_NUD_STALE_ADDR, DMAC);
 
-	SYS(fail, "ip addr add %s/24 dev veth1 nodad", IPV4_IFACE_ADDR);
+	SYS(fail, "ip addr add %s/24 dev veth1", IPV4_IFACE_ADDR);
 	SYS(fail, "ip neigh add %s dev veth1 nud failed", IPV4_NUD_FAILED_ADDR);
 	SYS(fail, "ip neigh add %s dev veth1 lladdr %s nud stale", IPV4_NUD_STALE_ADDR, DMAC);
 
@@ -158,7 +166,7 @@ void test_fib_lookup(void)
 		if (!ASSERT_OK(err, "bpf_prog_test_run_opts"))
 			continue;
 
-		ASSERT_EQ(tests[i].expected_ret, skel->bss->fib_lookup_ret,
+		ASSERT_EQ(skel->bss->fib_lookup_ret, tests[i].expected_ret,
 			  "fib_lookup_ret");
 
 		ret = memcmp(tests[i].dmac, fib_params->dmac, sizeof(tests[i].dmac));



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux