bpf: Eliminate rlimit-based memory accounting for bpf local storage maps
authorRoman Gushchin <guro@fb.com>
Tue, 1 Dec 2020 21:58:57 +0000 (13:58 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 3 Dec 2020 02:32:47 +0000 (18:32 -0800)
Do not use rlimit-based memory accounting for bpf local storage maps.
It has been replaced with the memcg-based memory accounting.

Signed-off-by: Roman Gushchin <guro@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20201201215900.3569844-32-guro@fb.com
kernel/bpf/bpf_local_storage.c

index 023a3ea..dd5aede 100644 (file)
@@ -545,8 +545,6 @@ struct bpf_local_storage_map *bpf_local_storage_map_alloc(union bpf_attr *attr)
        struct bpf_local_storage_map *smap;
        unsigned int i;
        u32 nbuckets;
-       u64 cost;
-       int ret;
 
        smap = kzalloc(sizeof(*smap), GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT);
        if (!smap)
@@ -557,18 +555,10 @@ struct bpf_local_storage_map *bpf_local_storage_map_alloc(union bpf_attr *attr)
        /* Use at least 2 buckets, select_bucket() is undefined behavior with 1 bucket */
        nbuckets = max_t(u32, 2, nbuckets);
        smap->bucket_log = ilog2(nbuckets);
-       cost = sizeof(*smap->buckets) * nbuckets + sizeof(*smap);
-
-       ret = bpf_map_charge_init(&smap->map.memory, cost);
-       if (ret < 0) {
-               kfree(smap);
-               return ERR_PTR(ret);
-       }
 
        smap->buckets = kvcalloc(sizeof(*smap->buckets), nbuckets,
                                 GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT);
        if (!smap->buckets) {
-               bpf_map_charge_finish(&smap->map.memory);
                kfree(smap);
                return ERR_PTR(-ENOMEM);
        }