BpfLoadTest: Set rlimit memlock for old kernels am: bc4ae410ff
Original change: https://android-review.googlesource.com/c/platform/system/bpf/+/3034061
Change-Id: Ia835831979e537d2cdda260d101958196b9e6db3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/loader/BpfLoadTest.cpp b/loader/BpfLoadTest.cpp
index 8a2d072..e14aa7b 100644
--- a/loader/BpfLoadTest.cpp
+++ b/loader/BpfLoadTest.cpp
@@ -36,9 +36,21 @@
int mProgFd;
std::string mTpProgPath;
std::string mTpNeverLoadProgPath;
- std::string mTpMapPath;;
+ std::string mTpMapPath;
void SetUp() {
+ /*
+ * b/326156952
+ *
+ * Kernels prior to 5.11 used rlimit memlock accounting for bpf memory
+ * allocations, and therefore require increasing the rlimit of this
+ * process for the maps to be created successfully.
+ *
+ * 5.11 introduces cgroup-based accounting as discussed here:
+ * https://lore.kernel.org/bpf/20201201215900.3569844-1-guro@fb.com/
+ */
+ if (!isAtLeastKernelVersion(5, 11, 0)) EXPECT_EQ(setrlimitForTest(), 0);
+
mTpProgPath = "/sys/fs/bpf/prog_" + GetParam() + "_tracepoint_sched_sched_switch";
unlink(mTpProgPath.c_str());