From: Yafang Shao <laoar.shao@gmail.com>
To: tj@kernel.org, ast@kernel.org, daniel@iogearbox.net,
andrii@kernel.org, kafai@fb.com, songliubraving@fb.com,
yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org,
sdf@google.com, haoluo@google.com, jolsa@kernel.org,
hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev,
shakeelb@google.com, muchun.song@linux.dev,
akpm@linux-foundation.org
Cc: bpf@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org,
Yafang Shao <laoar.shao@gmail.com>
Subject: [PATCH bpf-next v2 0/4] bpf, mm: introduce cgroup.memory=nobpf
Date: Fri, 10 Feb 2023 15:47:30 +0000 [thread overview]
Message-ID: <20230210154734.4416-1-laoar.shao@gmail.com> (raw)
The bpf memory accouting has some known problems in contianer
environment,
- The container memory usage is not consistent if there's pinned bpf
program
After the container restart, the leftover bpf programs won't account
to the new generation, so the memory usage of the container is not
consistent. This issue can be resolved by introducing selectable
memcg, but we don't have an agreement on the solution yet. See also
the discussions at https://lwn.net/Articles/905150/ .
- The leftover non-preallocated bpf map can't be limited
The leftover bpf map will be reparented, and thus it will be limited by
the parent, rather than the container itself. Furthermore, if the
parent is destroyed, it be will limited by its parent's parent, and so
on. It can also be resolved by introducing selectable memcg.
- The memory dynamically allocated in bpf prog is charged into root memcg
only
Nowdays the bpf prog can dynamically allocate memory, for example via
bpf_obj_new(), but it only allocate from the global bpf_mem_alloc
pool, so it will charge into root memcg only. That needs to be
addressed by a new proposal.
So let's give the container user an option to disable bpf memory accouting.
The idea of "cgroup.memory=nobpf" is originally by Tejun[1].
[1]. https://lwn.net/ml/linux-mm/YxjOawzlgE458ezL@slm.duckdns.org/
Changes,
v1->v2:
- squash patches (Roman)
- commit log improvement in patch #2. (Johannes)
Yafang Shao (4):
mm: memcontrol: add new kernel parameter cgroup.memory=nobpf
bpf: use bpf_map_kvcalloc in bpf_local_storage
bpf: allow to disable bpf map memory accounting
bpf: allow to disable bpf prog memory accounting
Documentation/admin-guide/kernel-parameters.txt | 1 +
include/linux/bpf.h | 16 ++++++++++++++++
include/linux/memcontrol.h | 11 +++++++++++
kernel/bpf/bpf_local_storage.c | 4 ++--
kernel/bpf/core.c | 13 +++++++------
kernel/bpf/memalloc.c | 3 ++-
kernel/bpf/syscall.c | 20 ++++++++++++++++++--
mm/memcontrol.c | 18 ++++++++++++++++++
8 files changed, 75 insertions(+), 11 deletions(-)
--
1.8.3.1
next reply other threads:[~2023-02-10 15:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-10 15:47 Yafang Shao [this message]
2023-02-10 15:47 ` [PATCH bpf-next v2 1/4] mm: memcontrol: add new kernel parameter cgroup.memory=nobpf Yafang Shao
2023-02-10 15:47 ` [PATCH bpf-next v2 2/4] bpf: use bpf_map_kvcalloc in bpf_local_storage Yafang Shao
2023-02-10 15:47 ` [PATCH bpf-next v2 3/4] bpf: allow to disable bpf map memory accounting Yafang Shao
2023-02-10 15:47 ` [PATCH bpf-next v2 4/4] bpf: allow to disable bpf prog " Yafang Shao
2023-02-11 7:10 ` [PATCH bpf-next v2 0/4] bpf, mm: introduce cgroup.memory=nobpf patchwork-bot+netdevbpf
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=20230210154734.4416-1-laoar.shao@gmail.com \
--to=laoar.shao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=cgroups@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=hannes@cmpxchg.org \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kafai@fb.com \
--cc=kpsingh@kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=muchun.song@linux.dev \
--cc=roman.gushchin@linux.dev \
--cc=sdf@google.com \
--cc=shakeelb@google.com \
--cc=songliubraving@fb.com \
--cc=tj@kernel.org \
--cc=yhs@fb.com \
/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).