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());