Message ID | 20200727184506.2279656-26-guro@fb.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | bpf: switch to memcg-based memory accounting | expand |
On Mon, Jul 27, 2020 at 12:26 PM Roman Gushchin <guro@fb.com> wrote: > > Do not use rlimit-based memory accounting for socket storage maps. > It has been replaced with the memcg-based memory accounting. > > Signed-off-by: Roman Gushchin <guro@fb.com> Acked-by: Song Liu <songliubraving@fb.com> > --- > net/core/bpf_sk_storage.c | 11 ----------- > 1 file changed, 11 deletions(-) > > diff --git a/net/core/bpf_sk_storage.c b/net/core/bpf_sk_storage.c > index fbcd03cd00d3..c0a35b6368af 100644 > --- a/net/core/bpf_sk_storage.c > +++ b/net/core/bpf_sk_storage.c > @@ -676,8 +676,6 @@ static struct bpf_map *bpf_sk_storage_map_alloc(union bpf_attr *attr) > struct bpf_sk_storage_map *smap; > unsigned int i; > u32 nbuckets; > - u64 cost; > - int ret; > > smap = kzalloc(sizeof(*smap), GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT); > if (!smap) > @@ -688,18 +686,9 @@ static struct bpf_map *bpf_sk_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); > } > -- > 2.26.2 >
diff --git a/net/core/bpf_sk_storage.c b/net/core/bpf_sk_storage.c index fbcd03cd00d3..c0a35b6368af 100644 --- a/net/core/bpf_sk_storage.c +++ b/net/core/bpf_sk_storage.c @@ -676,8 +676,6 @@ static struct bpf_map *bpf_sk_storage_map_alloc(union bpf_attr *attr) struct bpf_sk_storage_map *smap; unsigned int i; u32 nbuckets; - u64 cost; - int ret; smap = kzalloc(sizeof(*smap), GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT); if (!smap) @@ -688,18 +686,9 @@ static struct bpf_map *bpf_sk_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); }
Do not use rlimit-based memory accounting for socket storage maps. It has been replaced with the memcg-based memory accounting. Signed-off-by: Roman Gushchin <guro@fb.com> --- net/core/bpf_sk_storage.c | 11 ----------- 1 file changed, 11 deletions(-)