Skip to content

Commit

Permalink
bpf/tests: Reduce memory footprint of test suite
Browse files Browse the repository at this point in the history
The test suite used to call any fill_helper callbacks to generate eBPF
program data for all test cases at once. This caused ballooning memory
requirements as more extensive test cases were added. Now the each
fill_helper is called before the test is run and the allocated memory
released afterwards, before the next test case is processed.

Signed-off-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20210914091842.4186267-3-johan.almbladh@anyfinetworks.com
  • Loading branch information
Johan Almbladh authored and Daniel Borkmann committed Sep 28, 2021
1 parent c2a228d commit 4bc3541
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions lib/test_bpf.c
Original file line number Diff line number Diff line change
Expand Up @@ -8694,8 +8694,6 @@ static __init int find_test_index(const char *test_name)

static __init int prepare_bpf_tests(void)
{
int i;

if (test_id >= 0) {
/*
* if a test_id was specified, use test_range to
Expand Down Expand Up @@ -8739,23 +8737,11 @@ static __init int prepare_bpf_tests(void)
}
}

for (i = 0; i < ARRAY_SIZE(tests); i++) {
if (tests[i].fill_helper &&
tests[i].fill_helper(&tests[i]) < 0)
return -ENOMEM;
}

return 0;
}

static __init void destroy_bpf_tests(void)
{
int i;

for (i = 0; i < ARRAY_SIZE(tests); i++) {
if (tests[i].fill_helper)
kfree(tests[i].u.ptr.insns);
}
}

static bool exclude_test(int test_id)
Expand Down Expand Up @@ -8960,7 +8946,19 @@ static __init int test_bpf(void)

pr_info("#%d %s ", i, tests[i].descr);

if (tests[i].fill_helper &&
tests[i].fill_helper(&tests[i]) < 0) {
pr_cont("FAIL to prog_fill\n");
continue;
}

fp = generate_filter(i, &err);

if (tests[i].fill_helper) {
kfree(tests[i].u.ptr.insns);
tests[i].u.ptr.insns = NULL;
}

if (fp == NULL) {
if (err == 0) {
pass_cnt++;
Expand Down

0 comments on commit 4bc3541

Please sign in to comment.