bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Song Liu <song@kernel.org>
To: Roman Gushchin <guro@fb.com>
Cc: bpf <bpf@vger.kernel.org>, Networking <netdev@vger.kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Kernel Team <kernel-team@fb.com>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH bpf-next v2 13/35] bpf: eliminate rlimit-based memory accounting for arraymap maps
Date: Mon, 27 Jul 2020 17:04:30 -0700	[thread overview]
Message-ID: <CAPhsuW7xabhuHeGOv81WNsWmiFC_pDVj1qwyxe-DE-Q7_hzHHA@mail.gmail.com> (raw)
In-Reply-To: <20200727184506.2279656-14-guro@fb.com>

On Mon, Jul 27, 2020 at 12:26 PM Roman Gushchin <guro@fb.com> wrote:
>
> Do not use rlimit-based memory accounting for arraymap 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>

> ---
>  kernel/bpf/arraymap.c | 24 ++++--------------------
>  1 file changed, 4 insertions(+), 20 deletions(-)
>
> diff --git a/kernel/bpf/arraymap.c b/kernel/bpf/arraymap.c
> index 9597fecff8da..41581c38b31d 100644
> --- a/kernel/bpf/arraymap.c
> +++ b/kernel/bpf/arraymap.c
> @@ -75,11 +75,10 @@ int array_map_alloc_check(union bpf_attr *attr)
>  static struct bpf_map *array_map_alloc(union bpf_attr *attr)
>  {
>         bool percpu = attr->map_type == BPF_MAP_TYPE_PERCPU_ARRAY;
> -       int ret, numa_node = bpf_map_attr_numa_node(attr);
> +       int numa_node = bpf_map_attr_numa_node(attr);
>         u32 elem_size, index_mask, max_entries;
>         bool bypass_spec_v1 = bpf_bypass_spec_v1();
> -       u64 cost, array_size, mask64;
> -       struct bpf_map_memory mem;
> +       u64 array_size, mask64;
>         struct bpf_array *array;
>
>         elem_size = round_up(attr->value_size, 8);
> @@ -120,44 +119,29 @@ static struct bpf_map *array_map_alloc(union bpf_attr *attr)
>                 }
>         }
>
> -       /* make sure there is no u32 overflow later in round_up() */
> -       cost = array_size;
> -       if (percpu)
> -               cost += (u64)attr->max_entries * elem_size * num_possible_cpus();
> -
> -       ret = bpf_map_charge_init(&mem, cost);
> -       if (ret < 0)
> -               return ERR_PTR(ret);
> -
>         /* allocate all map elements and zero-initialize them */
>         if (attr->map_flags & BPF_F_MMAPABLE) {
>                 void *data;
>
>                 /* kmalloc'ed memory can't be mmap'ed, use explicit vmalloc */
>                 data = bpf_map_area_mmapable_alloc(array_size, numa_node);
> -               if (!data) {
> -                       bpf_map_charge_finish(&mem);
> +               if (!data)
>                         return ERR_PTR(-ENOMEM);
> -               }
>                 array = data + PAGE_ALIGN(sizeof(struct bpf_array))
>                         - offsetof(struct bpf_array, value);
>         } else {
>                 array = bpf_map_area_alloc(array_size, numa_node);
>         }
> -       if (!array) {
> -               bpf_map_charge_finish(&mem);
> +       if (!array)
>                 return ERR_PTR(-ENOMEM);
> -       }
>         array->index_mask = index_mask;
>         array->map.bypass_spec_v1 = bypass_spec_v1;
>
>         /* copy mandatory map attributes */
>         bpf_map_init_from_attr(&array->map, attr);
> -       bpf_map_charge_move(&array->map.memory, &mem);
>         array->elem_size = elem_size;
>
>         if (percpu && bpf_array_alloc_percpu(array)) {
> -               bpf_map_charge_finish(&array->map.memory);
>                 bpf_map_area_free(array);
>                 return ERR_PTR(-ENOMEM);
>         }
> --
> 2.26.2
>

  reply	other threads:[~2020-07-28  0:04 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-27 18:44 [PATCH bpf-next v2 00/35] bpf: switch to memcg-based memory accounting Roman Gushchin
2020-07-27 18:44 ` [PATCH bpf-next v2 01/35] bpf: memcg-based memory accounting for bpf progs Roman Gushchin
2020-07-27 22:11   ` Song Liu
2020-07-28  0:08     ` Roman Gushchin
2020-07-28  4:42       ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 02/35] bpf: memcg-based memory accounting for bpf maps Roman Gushchin
2020-07-27 22:12   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 03/35] bpf: refine memcg-based memory accounting for arraymap maps Roman Gushchin
2020-07-27 22:30   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 04/35] bpf: refine memcg-based memory accounting for cpumap maps Roman Gushchin
2020-07-27 22:48   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 05/35] bpf: memcg-based memory accounting for cgroup storage maps Roman Gushchin
2020-07-27 23:05   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 06/35] bpf: refine memcg-based memory accounting for devmap maps Roman Gushchin
2020-07-27 23:35   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 07/35] bpf: refine memcg-based memory accounting for hashtab maps Roman Gushchin
2020-07-27 23:36   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 08/35] bpf: memcg-based memory accounting for lpm_trie maps Roman Gushchin
2020-07-27 23:55   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 09/35] bpf: memcg-based memory accounting for bpf ringbuffer Roman Gushchin
2020-07-27 23:56   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 10/35] bpf: memcg-based memory accounting for socket storage maps Roman Gushchin
2020-07-27 23:57   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 11/35] bpf: refine memcg-based memory accounting for sockmap and sockhash maps Roman Gushchin
2020-07-27 23:58   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 12/35] bpf: refine memcg-based memory accounting for xskmap maps Roman Gushchin
2020-07-28  0:01   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 13/35] bpf: eliminate rlimit-based memory accounting for arraymap maps Roman Gushchin
2020-07-28  0:04   ` Song Liu [this message]
2020-07-27 18:44 ` [PATCH bpf-next v2 14/35] bpf: eliminate rlimit-based memory accounting for bpf_struct_ops maps Roman Gushchin
2020-07-28  5:29   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 15/35] bpf: eliminate rlimit-based memory accounting for cpumap maps Roman Gushchin
2020-07-28  5:30   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 16/35] bpf: eliminate rlimit-based memory accounting for cgroup storage maps Roman Gushchin
2020-07-28  5:31   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 17/35] bpf: eliminate rlimit-based memory accounting for devmap maps Roman Gushchin
2020-07-28  5:31   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 18/35] bpf: eliminate rlimit-based memory accounting for hashtab maps Roman Gushchin
2020-07-28  5:32   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 19/35] bpf: eliminate rlimit-based memory accounting for lpm_trie maps Roman Gushchin
2020-07-28  5:32   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 20/35] bpf: eliminate rlimit-based memory accounting for queue_stack_maps maps Roman Gushchin
2020-07-28  5:35   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 21/35] bpf: eliminate rlimit-based memory accounting for reuseport_array maps Roman Gushchin
2020-07-28  5:36   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 22/35] bpf: eliminate rlimit-based memory accounting for bpf ringbuffer Roman Gushchin
2020-07-28  5:37   ` Song Liu
2020-07-28  5:56   ` Andrii Nakryiko
2020-07-27 18:44 ` [PATCH bpf-next v2 23/35] bpf: eliminate rlimit-based memory accounting for sockmap and sockhash maps Roman Gushchin
2020-07-28  5:37   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 24/35] bpf: eliminate rlimit-based memory accounting for stackmap maps Roman Gushchin
2020-07-28  5:38   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 25/35] bpf: eliminate rlimit-based memory accounting for socket storage maps Roman Gushchin
2020-07-28  5:41   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 26/35] bpf: eliminate rlimit-based memory accounting for xskmap maps Roman Gushchin
2020-07-28  5:42   ` Song Liu
2020-07-27 18:44 ` [PATCH bpf-next v2 27/35] bpf: eliminate rlimit-based memory accounting infra for bpf maps Roman Gushchin
2020-07-28  5:47   ` Song Liu
2020-07-28  5:58     ` Andrii Nakryiko
2020-07-28  6:06       ` Song Liu
2020-07-28 19:08         ` Roman Gushchin
2020-07-28 19:16           ` Andrii Nakryiko
2020-07-27 18:44 ` [PATCH bpf-next v2 28/35] bpf: eliminate rlimit-based memory accounting for bpf progs Roman Gushchin
2020-07-28  5:55   ` Song Liu
2020-07-27 18:45 ` [PATCH bpf-next v2 29/35] bpf: libbpf: cleanup RLIMIT_MEMLOCK usage Roman Gushchin
2020-07-27 22:05   ` Andrii Nakryiko
2020-07-27 22:44     ` Song Liu
2020-07-27 23:15     ` Roman Gushchin
2020-07-28  5:59       ` Andrii Nakryiko
2020-07-30  1:38         ` Roman Gushchin
2020-07-30 19:39           ` Andrii Nakryiko
2020-07-30 20:46             ` Roman Gushchin
2020-07-27 18:45 ` [PATCH bpf-next v2 30/35] bpf: bpftool: do not touch RLIMIT_MEMLOCK Roman Gushchin
2020-07-28  6:00   ` Song Liu
2020-07-28  6:00   ` Andrii Nakryiko
2020-07-27 18:45 ` [PATCH bpf-next v2 31/35] bpf: runqslower: don't " Roman Gushchin
2020-07-28  6:03   ` Andrii Nakryiko
2020-07-27 18:45 ` [PATCH bpf-next v2 32/35] bpf: selftests: delete bpf_rlimit.h Roman Gushchin
2020-07-28  6:06   ` Andrii Nakryiko
2020-07-28  6:11     ` Song Liu
2020-07-28 18:30       ` Andrii Nakryiko
2020-07-27 18:45 ` [PATCH bpf-next v2 33/35] bpf: selftests: don't touch RLIMIT_MEMLOCK Roman Gushchin
2020-07-28  6:08   ` Andrii Nakryiko
2020-07-27 18:45 ` [PATCH bpf-next v2 34/35] bpf: samples: do not " Roman Gushchin
2020-07-28  6:14   ` Song Liu
2020-07-27 18:45 ` [PATCH bpf-next v2 35/35] perf: don't " Roman Gushchin
2020-07-28  6:09   ` Andrii Nakryiko
2020-07-28 12:13     ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPhsuW7xabhuHeGOv81WNsWmiFC_pDVj1qwyxe-DE-Q7_hzHHA@mail.gmail.com \
    --to=song@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=guro@fb.com \
    --cc=kernel-team@fb.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).