• Arnaldo Carvalho de Melo's avatar
    perf test: Auto bump rlimit(MEMLOCK) for BPF test sake · d3280ce0
    Arnaldo Carvalho de Melo authored
    I noticed that the 'perf test bpf' was failing:
    
      # perf test bpf
      41: BPF filter                                            :
      41.1: Basic BPF filtering                                 : Skip
      41.2: BPF pinning                                         : Skip
      41.3: BPF prologue generation                             : Skip
      41.4: BPF relocation checker                              : Skip
      # ulimit -l
      64
      #
    
    Using verbose mode we get just a line bout -EPERF being returned from
    libbpf's bpf_load_program_xattr(), that ends up being used in 'perf
    test bpf' initial program loading capability query:
    
      Missing basic BPF support, skip this test: Operation not permitted
    
    Not that informative, but on a separate problem when creating BPF maps
    bumping rlimit(MEMLOCK) helped, so I tried it here as well, works:
    
      # ulimit -l 128
      # perf test bpf
      41: BPF filter                                            :
      41.1: Basic BPF filtering                                 : Ok
      41.2: BPF pinning                                         : Ok
      41.3: BPF prologue generation                             : Ok
      41.4: BPF relocation checker                              : Ok
      #
    
    So use the recently added rlimit__bump_memlock() helper:
    
      # ulimit -l 64
      # perf test bpf
      41: BPF filter                                            :
      41.1: Basic BPF filtering                                 : Ok
      41.2: BPF pinning                                         : Ok
      41.3: BPF prologue generation                             : Ok
      41.4: BPF relocation checker                              : Ok
      # ulimit -l
      64
      #
    
    I.e. the bumping of memlock is restricted to the 'perf test' instance,
    not changing the global value.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lkml.kernel.org/n/tip-b9fubkhr4jm192lu7y8hgjvo@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d3280ce0
builtin-test.c 14.7 KB