From 5d54d92a6732879d509f8e5d9b9d4e27441252ba Mon Sep 17 00:00:00 2001 From: Ihor Solodrai Date: Wed, 15 Oct 2025 18:14:48 -0700 Subject: [PATCH] Sync with kernel-patches/vmtest Signed-off-by: Ihor Solodrai --- .github/workflows/kernel-build.yml | 2 +- .github/workflows/test.yml | 4 +- ...sable-detection-of-llvm-when-buildin.patch | 41 ++++++++ ...f-work-around-latest-Clang-smartness.patch | 31 ++++++ ...sts-bpf-Fix-bpf-selftest-build-error.patch | 59 ----------- ...x-selftest-btf_tag-btf_type_tag_perc.patch | 59 ----------- ...-throttle-error-of-some-clock-events.patch | 98 ------------------- ...g_parsing-Ensure-data-is-flushed-to-.patch | 33 +++++++ ...f-make-arg_parsing.c-more-robust-to-.patch | 56 +++++++++++ ci/vmtest/configs/DENYLIST | 4 +- ci/vmtest/configs/DENYLIST.aarch64 | 1 + .../configs/DENYLIST.test_progs-no_alu32 | 1 + ci/vmtest/configs/DENYLIST.test_progs_cpuv4 | 1 + ci/vmtest/configs/config | 4 + ci/vmtest/configs/run_veristat.scx.cfg | 3 + ci/vmtest/configs/veristat_meta.cfg | 48 +++++++-- 16 files changed, 219 insertions(+), 226 deletions(-) create mode 100644 ci/diffs/0001-selftests-bpf-disable-detection-of-llvm-when-buildin.patch create mode 100644 ci/diffs/0001-selftests-bpf-work-around-latest-Clang-smartness.patch delete mode 100644 ci/diffs/20250602-0001-selftests-bpf-Fix-bpf-selftest-build-error.patch delete mode 100644 ci/diffs/20250602-0002-selftests-bpf-Fix-selftest-btf_tag-btf_type_tag_perc.patch delete mode 100644 ci/diffs/20250602-0003-perf-Fix-the-throttle-error-of-some-clock-events.patch create mode 100644 ci/diffs/20251014-selftests-arg_parsing-Ensure-data-is-flushed-to-.patch create mode 100644 ci/diffs/20251014-selftests-bpf-make-arg_parsing.c-more-robust-to-.patch create mode 100644 ci/vmtest/configs/DENYLIST.test_progs-no_alu32 create mode 100644 ci/vmtest/configs/DENYLIST.test_progs_cpuv4 create mode 100644 ci/vmtest/configs/config create mode 100644 ci/vmtest/configs/run_veristat.scx.cfg diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml index ae2c3665..c66d041d 100644 --- a/.github/workflows/kernel-build.yml +++ b/.github/workflows/kernel-build.yml @@ -60,7 +60,7 @@ jobs: BPF_NEXT_BASE_BRANCH: 'master' BPF_NEXT_FETCH_DEPTH: 64 # A bit of history is needed to facilitate incremental builds CROSS_COMPILE: ${{ inputs.arch != 'x86_64' && 'true' || '' }} - # BUILD_SCHED_EXT_SELFTESTS: ${{ inputs.arch == 'x86_64' || inputs.arch == 'aarch64' && 'true' || '' }} + BUILD_SCHED_EXT_SELFTESTS: ${{ inputs.arch == 'x86_64' || inputs.arch == 'aarch64' && 'true' || '' }} KBUILD_OUTPUT: ${{ github.workspace }}/kbuild-output KERNEL: ${{ inputs.kernel }} KERNEL_ROOT: ${{ github.workspace }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0b0457cb..893bc0df 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: arch: ["x86_64"] kernel_compiler: ["gcc", "llvm"] gcc_version: [14] - llvm_version: [18] + llvm_version: [20] kernel: ["LATEST"] build_release: [false] tests: @@ -28,7 +28,7 @@ jobs: - {"test": "test_progs_no_alu32", "continue_on_error": false, "timeout_minutes": 360} - {"test": "test_verifier", "continue_on_error": false, "timeout_minutes": 360} - {"test": "test_maps", "continue_on_error": false, "timeout_minutes": 360} - # - {"test": "sched_ext", "continue_on_error": false, "timeout_minutes": 360} + - {"test": "sched_ext", "continue_on_error": false, "timeout_minutes": 360} # - {"test": "test_progs-bpf_gcc", "continue_on_error": false, "timeout_minutes": 360} fail-fast: false diff --git a/ci/diffs/0001-selftests-bpf-disable-detection-of-llvm-when-buildin.patch b/ci/diffs/0001-selftests-bpf-disable-detection-of-llvm-when-buildin.patch new file mode 100644 index 00000000..6497a6cc --- /dev/null +++ b/ci/diffs/0001-selftests-bpf-disable-detection-of-llvm-when-buildin.patch @@ -0,0 +1,41 @@ +From 42839864a62ee244ec280b09149b1cb439f681db Mon Sep 17 00:00:00 2001 +From: Manu Bretelle +Date: Fri, 27 Oct 2023 18:25:39 -0700 +Subject: [PATCH bpf-next] selftests/bpf: disable detection of llvm when + building bpftool + +The VMs in which we run the selftests do not have llvm installed. +We build selftests/bpftool in a host that have llvm. +bpftool currently will use llvm first and fallback to libbfd but there +is no way to disable detection from the command line. + +Removing it from the feature detection should force us to use libbfd. + +Signed-off-by: Manu Bretelle +--- + tools/bpf/bpftool/Makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile +index e9154ace80ff..01314458e25e 100644 +--- a/tools/bpf/bpftool/Makefile ++++ b/tools/bpf/bpftool/Makefile +@@ -95,7 +95,6 @@ RM ?= rm -f + FEATURE_USER = .bpftool + + FEATURE_TESTS := clang-bpf-co-re +-FEATURE_TESTS += llvm + FEATURE_TESTS += libcap + FEATURE_TESTS += libbfd + FEATURE_TESTS += libbfd-liberty +@@ -104,7 +103,6 @@ FEATURE_TESTS += disassembler-four-args + FEATURE_TESTS += disassembler-init-styled + + FEATURE_DISPLAY := clang-bpf-co-re +-FEATURE_DISPLAY += llvm + FEATURE_DISPLAY += libcap + FEATURE_DISPLAY += libbfd + FEATURE_DISPLAY += libbfd-liberty +-- +2.39.3 + diff --git a/ci/diffs/0001-selftests-bpf-work-around-latest-Clang-smartness.patch b/ci/diffs/0001-selftests-bpf-work-around-latest-Clang-smartness.patch new file mode 100644 index 00000000..ec1e29a8 --- /dev/null +++ b/ci/diffs/0001-selftests-bpf-work-around-latest-Clang-smartness.patch @@ -0,0 +1,31 @@ +From d31a7125891994681503770cff46a119692fb2b9 Mon Sep 17 00:00:00 2001 +From: Andrii Nakryiko +Date: Mon, 11 Dec 2023 17:09:38 -0800 +Subject: [PATCH 1/1] selftests/bpf: work around latest Clang smartness + +Work around the issue while we deal with it in the Clang itself. +See [0]. + + [0] https://github.com/llvm/llvm-project/pull/73662#issuecomment-1849281758 + +Signed-off-by: Andrii Nakryiko +--- + tools/testing/selftests/bpf/progs/iters.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/testing/selftests/bpf/progs/iters.c b/tools/testing/selftests/bpf/progs/iters.c +index 3aca3dc145b5..929ba6fa2105 100644 +--- a/tools/testing/selftests/bpf/progs/iters.c ++++ b/tools/testing/selftests/bpf/progs/iters.c +@@ -1420,7 +1420,7 @@ SEC("raw_tp") + __success + int iter_arr_with_actual_elem_count(const void *ctx) + { +- int i, n = loop_data.n, sum = 0; ++ unsigned i, n = loop_data.n, sum = 0; + + if (n > ARRAY_SIZE(loop_data.data)) + return 0; +-- +2.34.1 + diff --git a/ci/diffs/20250602-0001-selftests-bpf-Fix-bpf-selftest-build-error.patch b/ci/diffs/20250602-0001-selftests-bpf-Fix-bpf-selftest-build-error.patch deleted file mode 100644 index aa647e97..00000000 --- a/ci/diffs/20250602-0001-selftests-bpf-Fix-bpf-selftest-build-error.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 4b65d5ae971430287855a89635a184c489bd02a5 Mon Sep 17 00:00:00 2001 -From: Saket Kumar Bhaskar -Date: Mon, 12 May 2025 14:41:07 +0530 -Subject: [PATCH 1/3] selftests/bpf: Fix bpf selftest build error - -On linux-next, build for bpf selftest displays an error due to -mismatch in the expected function signature of bpf_testmod_test_read -and bpf_testmod_test_write. - -Commit 97d06802d10a ("sysfs: constify bin_attribute argument of bin_attribute::read/write()") -changed the required type for struct bin_attribute to const struct bin_attribute. - -To resolve the error, update corresponding signature for the callback. - -Fixes: 97d06802d10a ("sysfs: constify bin_attribute argument of bin_attribute::read/write()") -Reported-by: Venkat Rao Bagalkote -Closes: https://lore.kernel.org/all/e915da49-2b9a-4c4c-a34f-877f378129f6@linux.ibm.com/ -Tested-by: Venkat Rao Bagalkote -Signed-off-by: Saket Kumar Bhaskar -Link: https://lore.kernel.org/r/20250512091108.2015615-1-skb99@linux.ibm.com -Signed-off-by: Alexei Starovoitov ---- - tools/testing/selftests/bpf/test_kmods/bpf_testmod.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c b/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c -index e6c248e3ae54..e9e918cdf31f 100644 ---- a/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c -+++ b/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c -@@ -385,7 +385,7 @@ int bpf_testmod_fentry_ok; - - noinline ssize_t - bpf_testmod_test_read(struct file *file, struct kobject *kobj, -- struct bin_attribute *bin_attr, -+ const struct bin_attribute *bin_attr, - char *buf, loff_t off, size_t len) - { - struct bpf_testmod_test_read_ctx ctx = { -@@ -465,7 +465,7 @@ ALLOW_ERROR_INJECTION(bpf_testmod_test_read, ERRNO); - - noinline ssize_t - bpf_testmod_test_write(struct file *file, struct kobject *kobj, -- struct bin_attribute *bin_attr, -+ const struct bin_attribute *bin_attr, - char *buf, loff_t off, size_t len) - { - struct bpf_testmod_test_write_ctx ctx = { -@@ -567,7 +567,7 @@ static void testmod_unregister_uprobe(void) - - static ssize_t - bpf_testmod_uprobe_write(struct file *file, struct kobject *kobj, -- struct bin_attribute *bin_attr, -+ const struct bin_attribute *bin_attr, - char *buf, loff_t off, size_t len) - { - unsigned long offset = 0; --- -2.49.0 - diff --git a/ci/diffs/20250602-0002-selftests-bpf-Fix-selftest-btf_tag-btf_type_tag_perc.patch b/ci/diffs/20250602-0002-selftests-bpf-Fix-selftest-btf_tag-btf_type_tag_perc.patch deleted file mode 100644 index d1466c90..00000000 --- a/ci/diffs/20250602-0002-selftests-bpf-Fix-selftest-btf_tag-btf_type_tag_perc.patch +++ /dev/null @@ -1,59 +0,0 @@ -From baa39c169dd526cb0186187fc44ec462266efcc6 Mon Sep 17 00:00:00 2001 -From: Yonghong Song -Date: Thu, 29 May 2025 13:11:51 -0700 -Subject: [PATCH 2/3] selftests/bpf: Fix selftest - btf_tag/btf_type_tag_percpu_vmlinux_helper failure - -Ihor Solodrai reported selftest 'btf_tag/btf_type_tag_percpu_vmlinux_helper' -failure ([1]) during 6.16 merge window. The failure log: - - ... - 7: (15) if r0 == 0x0 goto pc+1 ; R0=ptr_css_rstat_cpu() - ; *(volatile int *)rstat; @ btf_type_tag_percpu.c:68 - 8: (61) r1 = *(u32 *)(r0 +0) - cannot access ptr member updated_children with moff 0 in struct css_rstat_cpu with off 0 size 4 - -Two changes are needed. First, 'struct cgroup_rstat_cpu' needs to be -replaced with 'struct css_rstat_cpu' to be consistent with new data -structure. Second, layout of 'css_rstat_cpu' is changed compared -to 'cgroup_rstat_cpu'. The first member becomes a pointer so -the bpf prog needs to do 8-byte load instead of 4-byte load. - - [1] https://lore.kernel.org/bpf/6f688f2e-7d26-423a-9029-d1b1ef1c938a@linux.dev/ - -Cc: Ihor Solodrai -Cc: JP Kobryn -Signed-off-by: Yonghong Song -Acked-by: JP Kobryn -Link: https://lore.kernel.org/r/20250529201151.1787575-1-yonghong.song@linux.dev -Signed-off-by: Alexei Starovoitov ---- - tools/testing/selftests/bpf/progs/btf_type_tag_percpu.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tools/testing/selftests/bpf/progs/btf_type_tag_percpu.c b/tools/testing/selftests/bpf/progs/btf_type_tag_percpu.c -index 69f81cb555ca..d93f68024cc6 100644 ---- a/tools/testing/selftests/bpf/progs/btf_type_tag_percpu.c -+++ b/tools/testing/selftests/bpf/progs/btf_type_tag_percpu.c -@@ -57,15 +57,15 @@ int BPF_PROG(test_percpu_load, struct cgroup *cgrp, const char *path) - SEC("tp_btf/cgroup_mkdir") - int BPF_PROG(test_percpu_helper, struct cgroup *cgrp, const char *path) - { -- struct cgroup_rstat_cpu *rstat; -+ struct css_rstat_cpu *rstat; - __u32 cpu; - - cpu = bpf_get_smp_processor_id(); -- rstat = (struct cgroup_rstat_cpu *)bpf_per_cpu_ptr( -+ rstat = (struct css_rstat_cpu *)bpf_per_cpu_ptr( - cgrp->self.rstat_cpu, cpu); - if (rstat) { - /* READ_ONCE */ -- *(volatile int *)rstat; -+ *(volatile long *)rstat; - } - - return 0; --- -2.49.0 - diff --git a/ci/diffs/20250602-0003-perf-Fix-the-throttle-error-of-some-clock-events.patch b/ci/diffs/20250602-0003-perf-Fix-the-throttle-error-of-some-clock-events.patch deleted file mode 100644 index edb72b04..00000000 --- a/ci/diffs/20250602-0003-perf-Fix-the-throttle-error-of-some-clock-events.patch +++ /dev/null @@ -1,98 +0,0 @@ -From df3bed9ea57603e62696a2f8aee9609d3500b7d1 Mon Sep 17 00:00:00 2001 -From: Kan Liang -Date: Wed, 28 May 2025 10:58:32 -0700 -Subject: [PATCH 3/3] perf: Fix the throttle error of some clock events - -The Arm CI reports RCU stall, which can be reproduced by the below perf -command. - perf record -a -e cpu-clock -- sleep 2 - -The cpu-clock and task_clock are two special SW events, which rely on -the hrtimer. Instead of invoking the stop(), the HRTIMER_NORESTART is -returned to stop the timer. Because the hrtimer interrupt handler cannot -cancel itself, which causes infinite loop. - -There may be two ways to fix it. -- Add a check of MAX_INTERRUPTS in the event_stop. Return immediately if -the stop is invoked by the throttle. -- Introduce a PMU flag to track the case. Avoid the event_stop in -perf_event_throttle() if the flag is detected. - -The latter looks more generic. It may be used if there are more other -cases that want to avoid the stop later. The latter is implemented. - -Reported-by: Leo Yan -Reported-by: Aishwarya TCV -Closes: https://lore.kernel.org/lkml/20250527161656.GJ2566836@e132581.arm.com/ -Tested-by: Leo Yan -Signed-off-by: Kan Liang -Link: https://lore.kernel.org/r/20250528175832.2999139-1-kan.liang@linux.intel.com -Signed-off-by: Alexei Starovoitov ---- - include/linux/perf_event.h | 1 + - kernel/events/core.c | 23 ++++++++++++++++++++--- - 2 files changed, 21 insertions(+), 3 deletions(-) - -diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h -index 52dc7cfab0e0..97a747a97a50 100644 ---- a/include/linux/perf_event.h -+++ b/include/linux/perf_event.h -@@ -305,6 +305,7 @@ struct perf_event_pmu_context; - #define PERF_PMU_CAP_EXTENDED_HW_TYPE 0x0100 - #define PERF_PMU_CAP_AUX_PAUSE 0x0200 - #define PERF_PMU_CAP_AUX_PREFER_LARGE 0x0400 -+#define PERF_PMU_CAP_NO_THROTTLE_STOP 0x0800 - - /** - * pmu::scope -diff --git a/kernel/events/core.c b/kernel/events/core.c -index f34c99f8ce8f..abd19bb571e3 100644 ---- a/kernel/events/core.c -+++ b/kernel/events/core.c -@@ -2656,7 +2656,22 @@ static void perf_event_unthrottle(struct perf_event *event, bool start) - - static void perf_event_throttle(struct perf_event *event) - { -- event->pmu->stop(event, 0); -+ /* -+ * Some PMUs, e.g., cpu-clock and task_clock, may rely on -+ * a special mechanism (hrtimer) to manipulate counters. -+ * The regular stop doesn't work, since the hrtimer interrupt -+ * handler cannot cancel itself. -+ * -+ * The stop should be avoided for such cases. Let the -+ * driver-specific code handle it. -+ * -+ * The counters will eventually be disabled in the driver-specific -+ * code. In unthrottle, they still need to be re-enabled. -+ * There is no handling for PERF_PMU_CAP_NO_THROTTLE_STOP in -+ * the perf_event_unthrottle(). -+ */ -+ if (!(event->pmu->capabilities & PERF_PMU_CAP_NO_THROTTLE_STOP)) -+ event->pmu->stop(event, 0); - event->hw.interrupts = MAX_INTERRUPTS; - if (event == event->group_leader) - perf_log_throttle(event, 0); -@@ -11848,7 +11863,8 @@ static int cpu_clock_event_init(struct perf_event *event) - static struct pmu perf_cpu_clock = { - .task_ctx_nr = perf_sw_context, - -- .capabilities = PERF_PMU_CAP_NO_NMI, -+ .capabilities = PERF_PMU_CAP_NO_NMI | -+ PERF_PMU_CAP_NO_THROTTLE_STOP, - .dev = PMU_NULL_DEV, - - .event_init = cpu_clock_event_init, -@@ -11930,7 +11946,8 @@ static int task_clock_event_init(struct perf_event *event) - static struct pmu perf_task_clock = { - .task_ctx_nr = perf_sw_context, - -- .capabilities = PERF_PMU_CAP_NO_NMI, -+ .capabilities = PERF_PMU_CAP_NO_NMI | -+ PERF_PMU_CAP_NO_THROTTLE_STOP, - .dev = PMU_NULL_DEV, - - .event_init = task_clock_event_init, --- -2.49.0 - diff --git a/ci/diffs/20251014-selftests-arg_parsing-Ensure-data-is-flushed-to-.patch b/ci/diffs/20251014-selftests-arg_parsing-Ensure-data-is-flushed-to-.patch new file mode 100644 index 00000000..efcdbeed --- /dev/null +++ b/ci/diffs/20251014-selftests-arg_parsing-Ensure-data-is-flushed-to-.patch @@ -0,0 +1,33 @@ +From 423112d2e9b591999efa4ad74000f8f6f3f381ea Mon Sep 17 00:00:00 2001 +From: Xing Guo +Date: Tue, 14 Oct 2025 16:03:23 +0800 +Subject: [PATCH 20251015/20251015] selftests: arg_parsing: Ensure data is + flushed to disk before reading. + +Recently, I noticed a selftest failure in my local environment. The +test_parse_test_list_file writes some data to +/tmp/bpf_arg_parsing_test.XXXXXX and parse_test_list_file() will read +the data back. However, after writing data to that file, we forget to +call fsync() and it's causing testing failure in my laptop. This patch +helps fix it by adding the missing fsync() call. + +Signed-off-by: Xing Guo +--- + tools/testing/selftests/bpf/prog_tests/arg_parsing.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/testing/selftests/bpf/prog_tests/arg_parsing.c b/tools/testing/selftests/bpf/prog_tests/arg_parsing.c +index fbf0d9c2f58b..d9fcbfb72aaa 100644 +--- a/tools/testing/selftests/bpf/prog_tests/arg_parsing.c ++++ b/tools/testing/selftests/bpf/prog_tests/arg_parsing.c +@@ -140,6 +140,7 @@ static void test_parse_test_list_file(void) + fprintf(fp, "testA/subtest2\n"); + fprintf(fp, "testC_no_eof_newline"); + fflush(fp); ++ fsync(fd); + + if (!ASSERT_OK(ferror(fp), "prepare tmp")) + goto out_fclose; +-- +2.51.0 + diff --git a/ci/diffs/20251014-selftests-bpf-make-arg_parsing.c-more-robust-to-.patch b/ci/diffs/20251014-selftests-bpf-make-arg_parsing.c-more-robust-to-.patch new file mode 100644 index 00000000..34104b3f --- /dev/null +++ b/ci/diffs/20251014-selftests-bpf-make-arg_parsing.c-more-robust-to-.patch @@ -0,0 +1,56 @@ +From 8a03969566c5447aa72469e8f09b8158e3dad8f9 Mon Sep 17 00:00:00 2001 +From: Andrii Nakryiko +Date: Tue, 14 Oct 2025 13:20:37 -0700 +Subject: [PATCH 20251014/20251015] selftests/bpf: make arg_parsing.c more + robust to crashes + +We started getting a crash in BPF CI, which seems to originate from +test_parse_test_list_file() test and is happening at this line: + + ASSERT_OK(strcmp("test_with_spaces", set.tests[0].name), "test 0 name"); + +One way we can crash there is if set.cnt zero, which is checked for with +ASSERT_EQ() above, but we proceed after this regardless of the outcome. +Instead of crashing, we should bail out with test failure early. + +Similarly, if parse_test_list_file() fails, we shouldn't be even looking +at set, so bail even earlier if ASSERT_OK() fails. + +Fixes: 64276f01dce8 ("selftests/bpf: Test_progs can read test lists from file") +Signed-off-by: Andrii Nakryiko +--- + tools/testing/selftests/bpf/prog_tests/arg_parsing.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/tools/testing/selftests/bpf/prog_tests/arg_parsing.c b/tools/testing/selftests/bpf/prog_tests/arg_parsing.c +index bb143de68875..fbf0d9c2f58b 100644 +--- a/tools/testing/selftests/bpf/prog_tests/arg_parsing.c ++++ b/tools/testing/selftests/bpf/prog_tests/arg_parsing.c +@@ -146,9 +146,12 @@ static void test_parse_test_list_file(void) + + init_test_filter_set(&set); + +- ASSERT_OK(parse_test_list_file(tmpfile, &set, true), "parse file"); ++ if (!ASSERT_OK(parse_test_list_file(tmpfile, &set, true), "parse file")) ++ goto out_fclose; ++ ++ if (!ASSERT_EQ(set.cnt, 4, "test count")) ++ goto out_free_set; + +- ASSERT_EQ(set.cnt, 4, "test count"); + ASSERT_OK(strcmp("test_with_spaces", set.tests[0].name), "test 0 name"); + ASSERT_EQ(set.tests[0].subtest_cnt, 0, "test 0 subtest count"); + ASSERT_OK(strcmp("testA", set.tests[1].name), "test 1 name"); +@@ -158,8 +161,8 @@ static void test_parse_test_list_file(void) + ASSERT_OK(strcmp("testB", set.tests[2].name), "test 2 name"); + ASSERT_OK(strcmp("testC_no_eof_newline", set.tests[3].name), "test 3 name"); + ++out_free_set: + free_test_filter_set(&set); +- + out_fclose: + fclose(fp); + out_remove: +-- +2.51.0 + diff --git a/ci/vmtest/configs/DENYLIST b/ci/vmtest/configs/DENYLIST index 2f9bf5c0..20a09029 100644 --- a/ci/vmtest/configs/DENYLIST +++ b/ci/vmtest/configs/DENYLIST @@ -5,7 +5,6 @@ core_reloc/enum64val core_reloc/size___diff_sz core_reloc/type_based___diff_sz test_ima # All of CI is broken on it following 6.3-rc1 merge - lwt_reroute # crashes kernel after netnext merge from 2ab1efad60ad "net/sched: cls_api: complement tcf_tfilter_dump_policy" tc_links_ingress # started failing after net-next merge from 2ab1efad60ad "net/sched: cls_api: complement tcf_tfilter_dump_policy" xdp_bonding/xdp_bonding_features # started failing after net merge from 359e54a93ab4 "l2tp: pass correct message length to ip6_append_data" @@ -13,3 +12,6 @@ tc_redirect/tc_redirect_dtime # uapi breakage after net-next commit 885c36e59f46 migrate_reuseport/IPv4 TCP_NEW_SYN_RECV reqsk_timer_handler # flaky, under investigation migrate_reuseport/IPv6 TCP_NEW_SYN_RECV reqsk_timer_handler # flaky, under investigation connect_force_port # unreliably fails +sockmap_ktls/sockmap_ktls disconnect_after_delete* # https://lore.kernel.org/bpf/20250415163332.1836826-1-ihor.solodrai@linux.dev/ +verif_scale_pyperf600 # llvm 20 generates code that fails verification +arena_spin_lock # llvm 20 generates code that fails verification diff --git a/ci/vmtest/configs/DENYLIST.aarch64 b/ci/vmtest/configs/DENYLIST.aarch64 index 487b19ed..bdce99f3 100644 --- a/ci/vmtest/configs/DENYLIST.aarch64 +++ b/ci/vmtest/configs/DENYLIST.aarch64 @@ -2,3 +2,4 @@ cgrp_local_storage # libbpf: prog 'update_cookie_tracing': fail core_reloc_btfgen # run_core_reloc_tests:FAIL:run_btfgen unexpected error: 32512 (errno 22) usdt/multispec # usdt_300_bad_attach unexpected pointer: 0x558c63d8f0 xdp_bonding # whole test suite is very unstable on aarch64 +res_spin_lock_success # flaky diff --git a/ci/vmtest/configs/DENYLIST.test_progs-no_alu32 b/ci/vmtest/configs/DENYLIST.test_progs-no_alu32 new file mode 100644 index 00000000..62138992 --- /dev/null +++ b/ci/vmtest/configs/DENYLIST.test_progs-no_alu32 @@ -0,0 +1 @@ +perf_branches/perf_branches_no_hw # this fails on github-hosted runners diff --git a/ci/vmtest/configs/DENYLIST.test_progs_cpuv4 b/ci/vmtest/configs/DENYLIST.test_progs_cpuv4 new file mode 100644 index 00000000..0c02eae8 --- /dev/null +++ b/ci/vmtest/configs/DENYLIST.test_progs_cpuv4 @@ -0,0 +1 @@ +verifier_arena/basic_alloc2 diff --git a/ci/vmtest/configs/config b/ci/vmtest/configs/config new file mode 100644 index 00000000..0a50ecf4 --- /dev/null +++ b/ci/vmtest/configs/config @@ -0,0 +1,4 @@ +CONFIG_KASAN=y +CONFIG_KASAN_GENERIC=y +CONFIG_KASAN_VMALLOC=y +# CONFIG_UBSAN=y diff --git a/ci/vmtest/configs/run_veristat.scx.cfg b/ci/vmtest/configs/run_veristat.scx.cfg new file mode 100644 index 00000000..740cf8e9 --- /dev/null +++ b/ci/vmtest/configs/run_veristat.scx.cfg @@ -0,0 +1,3 @@ +VERISTAT_OBJECTS_DIR="${SCX_PROGS}" +VERISTAT_OBJECTS_GLOB="*.bpf.o" +VERISTAT_OUTPUT="veristat-scx" diff --git a/ci/vmtest/configs/veristat_meta.cfg b/ci/vmtest/configs/veristat_meta.cfg index a8c25d71..5ee6db25 100644 --- a/ci/vmtest/configs/veristat_meta.cfg +++ b/ci/vmtest/configs/veristat_meta.cfg @@ -1,10 +1,46 @@ # List of exceptions we know about that are not going to work with veristat. -# needs 'migrate_misplaced_page' which went away in -# commit 73eab3ca481e ("mm: migrate: convert migrate_misplaced_page() to migrate_misplaced_folio()") -!numamove_bpf-numamove_bpf.o +# libbpf-tools, maintained outside of fbcode +!bcc-libbpf-tools-* -# use non-libbpf loader -!takeover_bpf_lib-takeover.bpf.o -!tcp_tuner_bpf_lib-tcptuner.bpf.o +# missing kernel function 'bictcp_cong_avoid' +!ti-tcpevent-tcp_bpf_state_fentry-tcp_bpf_state_fentry.bpf.o/bictcp_cong_avoid +# missing kernel function 'bictcp_state' +!ti-tcpevent-tcp_bpf_tracer_fentry-tcp_bpf_tracer_fentry.bpf.o/bictcp_state +# missing kernel function 'tcp_drop' +!ti-tcpevent-tcp_bpf_tracer_fentry-tcp_bpf_tracer_fentry.bpf.o/tcp_drop +# outdated (and abandoned ?) BPF programs, can't work with modern libbpf +!schedulers-tangram-agent-bpf-blacklist-bpf_device_cgroup-device_cgroup_filter.bpf.o +!schedulers-tangram-agent-bpf-netstat-bpf_cgroup_egress-bpf_cgroup_egress.bpf.o +!schedulers-tangram-agent-bpf-netstat-bpf_cgroup_ingress-bpf_cgroup_ingress.bpf.o + +# invalid usage of global functions, seems abandoned as well +!neteng-urgd-urgd_bpf_prog-urgd_bpf_prog.o + +# missing kernel function '__send_signal' +!cea-object-introspection-OIVT-signal_bpf-signal.bpf.o/__send_signal + +# Strobelight program not passing validation properly +!strobelight-server-bpf_program-hhvm_stacks-hhvm_stacks.o/hhvm_stack + +# RDMA functionality is expected which we don't have in default kernel flavor +!neteng-netedit-bpf-ftrace-be_audit-be_audit-be_audit.bpf.o + +# Strobelight programs with >1mln instructions +!strobelight-server-bpf_program-strobelight_process_monitor_libbpf-strobelight_process_monitor_libbpf.o + +# infiniband only, doesn't work on other hardware +!neteng-netnorad-common-cpp-bpf-qp_ah_list-qp_ah_list.bpf.o/ret_query_qp + +# Droplet with >1mln instructions +!ti-droplet-bpf-vip_filter_v2_xdp-vip_filter_v2_xdp.bpf.o/vip_filter + +# sched_ext bpf_lib objects don't need to be verified separately +!third-party-scx*bpf_lib.bpf.o + +# These cause segfault in veristat due to a bug in libbpf +# Link: https://lore.kernel.org/bpf/20250718001009.610955-1-andrii@kernel.org/ +# We can include them back after a veristat release with fixed libbpf +!third-party-scx-__scx_chaos_bpf_skel_genskel-bpf.bpf.o +!third-party-scx-__scx_p2dq_bpf_skel_genskel-bpf.bpf.o