bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: JP Kobryn <inwardvessel@gmail.com>
To: bpf@vger.kernel.org, andrii@kernel.org
Cc: kernel-team@meta.com, inwardvessel@gmail.com
Subject: [PATCH v3 bpf-next 0/2] libbpf: capability for resizing datasec maps
Date: Tue, 23 May 2023 17:45:35 -0700	[thread overview]
Message-ID: <20230524004537.18614-1-inwardvessel@gmail.com> (raw)

Due to the way the datasec maps like bss, data, rodata are memory
mapped, they cannot be resized with bpf_map__set_value_size() like
non-datasec maps can. This series offers a way to allow the resizing of
datasec maps, by having the mapped regions resized as needed and also
adjusting associated BTF info if possible.

The thought behind this is to allow for use cases where a given datasec
needs to scale to for example the number of CPU's present. A bpf program
can have a global array in a data section with an initial length and
before loading the bpf program, the array length could be extended to
match the CPU count. The selftests included in this series perform this
scaling to an arbitrary value to demonstrate how it can work.

JP Kobryn (2):
  add capability for resizing datasec maps
  selftests for resizing datasec maps

 tools/lib/bpf/libbpf.c                        | 130 ++++++++++
 tools/lib/bpf/libbpf.h                        |  17 +-
 .../bpf/prog_tests/global_map_resize.c        | 236 ++++++++++++++++++
 .../bpf/progs/test_global_map_resize.c        |  58 +++++
 4 files changed, 440 insertions(+), 1 deletion(-)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/global_map_resize.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_global_map_resize.c

-- 
2.40.0


             reply	other threads:[~2023-05-24  0:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-24  0:45 JP Kobryn [this message]
2023-05-24  0:45 ` [PATCH v3 bpf-next 1/2] libbpf: add capability for resizing datasec maps JP Kobryn
2023-05-24  0:45 ` [PATCH v3 bpf-next 2/2] libbpf: selftests " JP Kobryn
2023-05-24 18:48 ` [PATCH v3 bpf-next 0/2] libbpf: capability " Andrii Nakryiko
2023-05-24 18:50 ` 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=20230524004537.18614-1-inwardvessel@gmail.com \
    --to=inwardvessel@gmail.com \
    --cc=andrii@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=kernel-team@meta.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).