Revert "bpfloader: add option to clear maps on restart"

This reverts commit 93e809df417cbffad23693dd394ebdf991b635fd.

Reason for revert: belongs in aosp

Change-Id: I82c8db43bcda7de534689166d39f5ba5de191d72
diff --git a/libbpf_android/Android.bp b/libbpf_android/Android.bp
index 7e54478..c369c8c 100644
--- a/libbpf_android/Android.bp
+++ b/libbpf_android/Android.bp
@@ -108,7 +108,6 @@
     ],
 
     required: [
-        "bpf_autoclear_maps.o",
         "bpf_load_tp_prog.o",
     ],
 }
diff --git a/libbpf_android/BpfLoadTest.cpp b/libbpf_android/BpfLoadTest.cpp
index b219f84..7ea52a2 100644
--- a/libbpf_android/BpfLoadTest.cpp
+++ b/libbpf_android/BpfLoadTest.cpp
@@ -15,11 +15,8 @@
  */
 
 #include <android-base/macros.h>
-#include <android-base/stringprintf.h>
-#include <android-base/strings.h>
 #include <gtest/gtest.h>
 #include <stdlib.h>
-#include <sys/sysinfo.h>
 #include <unistd.h>
 #include <iostream>
 #include "include/bpf/BpfMap.h"
@@ -32,8 +29,6 @@
         "/sys/fs/bpf/prog_bpf_load_tp_prog_tracepoint_sched_sched_switch";
 constexpr const char tp_map_path[] = "/sys/fs/bpf/map_bpf_load_tp_prog_cpu_pid_map";
 
-constexpr const char tp_autoclear_map_path_prefix[] = "/sys/fs/bpf/map_bpf_autoclear_maps_autoclear_";
-
 namespace android {
 namespace bpf {
 
@@ -97,39 +92,5 @@
     checkMapNonZero();
 }
 
-TEST(BpfLoadAutoclearTest, bpfCheckMapClearing) {
-    SKIP_IF_BPF_NOT_SUPPORTED;
-
-    for (int i = 0; i < 2; i++) {
-        EXPECT_EQ(android::bpf::loadProg("/system/etc/bpf/bpf_autoclear_maps.o"), 0);
-        for (const auto &name : {"hash", "percpu_hash", "array", "percpu_array"}) {
-            auto path = android::base::StringPrintf("%s%s", tp_autoclear_map_path_prefix, name);
-            android::base::unique_fd mapFd(bpf_obj_get(path.c_str()));
-            ASSERT_GT(mapFd, 0);
-
-            size_t sz = android::base::StartsWith(name, "percpu") ? get_nprocs_conf() : 1;
-            std::vector<uint32_t> vals(sz);
-
-            uint32_t key;
-            auto ret = android::bpf::getFirstMapKey(mapFd, &key);
-            if (android::base::EndsWith(name, "hash")) {
-                EXPECT_NE(ret, 0);
-                EXPECT_EQ(errno, ENOENT);
-            } else {
-                uint32_t prevKey;
-                std::vector<uint32_t> zeroes(vals.size(),0);
-                do {
-                    ASSERT_EQ(findMapEntry(mapFd, &key, vals.data()),0);
-                    EXPECT_EQ(memcmp(vals.data(), zeroes.data(), vals.size()), 0);
-                } while (prevKey = key, !android::bpf::getNextMapKey(mapFd, &prevKey, &key));
-            }
-            key = 0;
-            std::fill(vals.begin(), vals.end(), 1);
-            ASSERT_EQ(writeToMapEntry(mapFd, &key, vals.data(), BPF_ANY), 0);
-            if (i == 1) unlink(path.c_str());
-        }
-    }
-}
-
 }  // namespace bpf
 }  // namespace android
diff --git a/libbpf_android/Loader.cpp b/libbpf_android/Loader.cpp
index 26d1200..3f23ae8 100644
--- a/libbpf_android/Loader.cpp
+++ b/libbpf_android/Loader.cpp
@@ -24,13 +24,11 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/sysinfo.h>
 #include <sys/utsname.h>
 #include <unistd.h>
 
 #include "LoaderUtils.h"
 #include "include/libbpf_android.h"
-#include <bpf/BpfUtils.h>
 
 #include <cstdlib>
 #include <fstream>
@@ -98,7 +96,6 @@
     unsigned int map_flags;
     unsigned int inner_map_idx;
     unsigned int numa_node;
-    bool clear_on_init;
 };
 
 static int readElfHeader(ifstream& elfFile, Elf64_Ehdr* eh) {
@@ -406,10 +403,6 @@
         bool reuse = false;
 
         mapPinLoc = string(BPF_FS_PATH) + "map_" + fname + "_" + string(mapNames[i]);
-        if (access(mapPinLoc.c_str(), F_OK) == 0 && md[i].clear_on_init) {
-            ret = unlink(mapPinLoc.c_str());
-            if (ret < 0) return ret;
-        }
         if (access(mapPinLoc.c_str(), F_OK) == 0) {
             fd.reset(bpf_obj_get(mapPinLoc.c_str()));
             ALOGD("bpf_create_map reusing map %s, ret: %d\n", mapNames[i].c_str(), fd.get());
diff --git a/progs/include/bpf_helpers.h b/progs/include/bpf_helpers.h
index 679f7dd..e933021 100644
--- a/progs/include/bpf_helpers.h
+++ b/progs/include/bpf_helpers.h
@@ -43,17 +43,16 @@
 static int (*bpf_map_delete_elem_unsafe)(void* map, void* key) = (void*)BPF_FUNC_map_delete_elem;
 
 /* type safe macro to declare a map and related accessor functions */
-#define DEFINE_BPF_MAP_NO_ACCESSORS_CLEAR(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries, clear) \
+#define DEFINE_BPF_MAP_NO_ACCESSORS(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries) \
     struct bpf_map_def SEC("maps") the_map = {                                          \
             .type = BPF_MAP_TYPE_##TYPE,                                                \
             .key_size = sizeof(TypeOfKey),                                              \
             .value_size = sizeof(TypeOfValue),                                          \
             .max_entries = (num_entries),                                               \
-            .clear_on_init = (clear),                                                    \
     };
 
-#define DEFINE_BPF_MAP_CLEAR(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries, clear) \
-    DEFINE_BPF_MAP_NO_ACCESSORS_CLEAR(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries, clear) \
+#define DEFINE_BPF_MAP(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries)                 \
+    DEFINE_BPF_MAP_NO_ACCESSORS(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries)        \
                                                                                            \
     static inline __always_inline __unused TypeOfValue* bpf_##the_map##_lookup_elem(       \
             TypeOfKey* k) {                                                                \
@@ -69,13 +68,6 @@
         return bpf_map_delete_elem_unsafe(&the_map, k);                                    \
     };
 
-/* type safe macro to declare a map and related accessor functions */
-#define DEFINE_BPF_MAP_NO_ACCESSORS(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries) \
-    DEFINE_BPF_MAP_NO_ACCESSORS_CLEAR(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries, false)
-
-#define DEFINE_BPF_MAP(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries)                 \
-    DEFINE_BPF_MAP_CLEAR(the_map, TYPE, TypeOfKey, TypeOfValue, num_entries, false)
-
 static int (*bpf_probe_read)(void* dst, int size, void* unsafe_ptr) = (void*) BPF_FUNC_probe_read;
 static int (*bpf_probe_read_str)(void* dst, int size, void* unsafe_ptr) = (void*) BPF_FUNC_probe_read_str;
 static unsigned long long (*bpf_ktime_get_ns)(void) = (void*) BPF_FUNC_ktime_get_ns;
@@ -102,5 +94,4 @@
     unsigned int map_flags;
     unsigned int pad1;
     unsigned int pad2;
-    bool clear_on_init;
 };