tools/bpf: adjust rlimit RLIMIT_MEMLOCK for test_verifier_log
Subsystems (5)
PATCH 1/1 tools/bpf: adjust rlimit RLIMIT_MEMLOCK for test_verifier_log
The default rlimit RLIMIT_MEMLOCK is 64KB. In certain cases, e.g. in a test machine mimicking our production system, this test may fail due to unable to charge the required memory for prog load:
# ./test_verifier_log Test log_level 0... ERROR: Program load returned: ret:-1/errno:1, expected ret:-1/errno:22
Changing the default rlimit RLIMIT_MEMLOCK to unlimited makes the test always pass.
Signed-off-by Yonghong Song <[email protected]>
--- tools/testing/selftests/bpf/test_verifier_log.c | 7 +++++++ 1 file changed, 7 insertions(+)
tools/testing/selftests/bpf/test_verifier_log.c +7 -0
@@ -3,6 +3,8 @@#include <stdio.h> #include <string.h> #include <unistd.h> +#include <sys/time.h> +#include <sys/resource.h> #include <linux/bpf.h> #include <linux/filter.h>
@@ -131,11 +133,16 @@ static void test_log_bad(char *log, size_t log_len, int log_level)int main (int argc,char **argv) { +struct rlimit limit = {RLIM_INFINITY ,RLIM_INFINITY };char full_log[LOG_SIZE ];char log[LOG_SIZE ];size_t want_len;int i; +/* allow unlimited locked memory to have more consistent error code */ +if (setrlimit (RLIMIT_MEMLOCK , &limit) <0 ) +perror ("Unable to lift memlock rlimit" ); +memset (log,1 ,LOG_SIZE );/* Test incorrect attr */
Signature · 1 line
2.9.5
Daniel Borkmann
maintainerQuoted 11 lines · Yonghong Song
The default rlimit
RLIMIT_MEMLOCKis 64KB. In certain cases, e.g. in a test machine mimicking our production system, this test may fail due to unable to charge the required memory for prog load:# ./test_verifier_log Test log_level 0... ERROR: Program load returned: ret:-1/errno:1, expected ret:-1/errno:22Changing the default rlimit
RLIMIT_MEMLOCKto unlimited makes the test always pass.Signed-off-by Yonghong Song <[email protected]>
Given this is a fix, I've applied this to bpf tree, thanks Yonghong!