cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

rlimit.c (730B)


      1/* SPDX-License-Identifier: LGPL-2.1 */
      2
      3#include "util/debug.h"
      4#include "util/rlimit.h"
      5#include <sys/time.h>
      6#include <sys/resource.h>
      7
      8/*
      9 * Bump the memlock so that we can get bpf maps of a reasonable size,
     10 * like the ones used with 'perf trace' and with 'perf test bpf',
     11 * improve this to some specific request if needed.
     12 */
     13void rlimit__bump_memlock(void)
     14{
     15	struct rlimit rlim;
     16
     17	if (getrlimit(RLIMIT_MEMLOCK, &rlim) == 0) {
     18		rlim.rlim_cur *= 4;
     19		rlim.rlim_max *= 4;
     20
     21		if (setrlimit(RLIMIT_MEMLOCK, &rlim) < 0) {
     22			rlim.rlim_cur /= 2;
     23			rlim.rlim_max /= 2;
     24
     25			if (setrlimit(RLIMIT_MEMLOCK, &rlim) < 0)
     26				pr_debug("Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc\n");
     27		}
     28	}
     29}