All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrii Nakryiko <andrii.nakryiko@gmail.com>
To: "Toke Høiland-Jørgensen" <toke@redhat.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>,
	Alexei Starovoitov <ast@kernel.org>,
	Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
	Yonghong Song <yhs@fb.com>,
	Jesper Dangaard Brouer <brouer@redhat.com>,
	David Miller <davem@davemloft.net>,
	Networking <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>
Subject: Re: [PATCH bpf-next v6 0/5] libbpf: Support automatic pinning of maps using 'pinning' BTF attribute
Date: Sat, 2 Nov 2019 12:09:09 -0700	[thread overview]
Message-ID: <CAEf4BzYXhoaiH5x9YZ99ABUMngsjBVRAYJBm+oMbnAHnpn-18g@mail.gmail.com> (raw)
In-Reply-To: <157269297658.394725.10672376245672095901.stgit@toke.dk>

On Sat, Nov 2, 2019 at 4:09 AM Toke Høiland-Jørgensen <toke@redhat.com> wrote:
>
> This series adds support to libbpf for reading 'pinning' settings from BTF-based
> map definitions. It introduces a new open option which can set the pinning path;
> if no path is set, /sys/fs/bpf is used as the default. Callers can customise the
> pinning between open and load by setting the pin path per map, and still get the
> automatic reuse feature.
>
> The semantics of the pinning is similar to the iproute2 "PIN_GLOBAL" setting,
> and the eventual goal is to move the iproute2 implementation to be based on
> libbpf and the functions introduced in this series.
>
> Changelog:
>
> v6:
>   - Fix leak of struct bpf_object in selftest
>   - Make struct bpf_map arg const in bpf_map__is_pinned() and bpf_map__get_pin_path()
>
> v5:
>   - Don't pin maps with pinning set, but with a value of LIBBPF_PIN_NONE
>   - Add a few more selftests:
>     - Should not pin map with pinning set, but value LIBBPF_PIN_NONE
>     - Should fail to load a map with an invalid pinning value
>     - Should fail to re-use maps with parameter mismatch
>   - Alphabetise libbpf.map
>   - Whitespace and typo fixes
>
> v4:
>   - Don't check key_type_id and value_type_id when checking for map reuse
>     compatibility.
>   - Move building of map->pin_path into init_user_btf_map()
>   - Get rid of 'pinning' attribute in struct bpf_map
>   - Make sure we also create parent directory on auto-pin (new patch 3).
>   - Abort the selftest on error instead of attempting to continue.
>   - Support unpinning all pinned maps with bpf_object__unpin_maps(obj, NULL)
>   - Support pinning at map->pin_path with bpf_object__pin_maps(obj, NULL)
>   - Make re-pinning a map at the same path a noop
>   - Rename the open option to pin_root_path
>   - Add a bunch more self-tests for pin_maps(NULL) and unpin_maps(NULL)
>   - Fix a couple of smaller nits
>
> v3:
>   - Drop bpf_object__pin_maps_opts() and just use an open option to customise
>     the pin path; also don't touch bpf_object__{un,}pin_maps()
>   - Integrate pinning and reuse into bpf_object__create_maps() instead of having
>     multiple loops though the map structure
>   - Make errors in map reuse and pinning fatal to the load procedure
>   - Add selftest to exercise pinning feature
>   - Rebase series to latest bpf-next
>
> v2:
>   - Drop patch that adds mounting of bpffs
>   - Only support a single value of the pinning attribute
>   - Add patch to fixup error handling in reuse_fd()
>   - Implement the full automatic pinning and map reuse logic on load
>
> ---
>
> Toke Høiland-Jørgensen (5):
>       libbpf: Fix error handling in bpf_map__reuse_fd()
>       libbpf: Store map pin path and status in struct bpf_map
>       libbpf: Move directory creation into _pin() functions
>       libbpf: Add auto-pinning of maps when loading BPF objects
>       selftests: Add tests for automatic map pinning
>
>

For the series:

Acked-by: Andrii Nakryiko <andriin@fb.com>

>  tools/lib/bpf/bpf_helpers.h                        |    6
>  tools/lib/bpf/libbpf.c                             |  385 ++++++++++++++++----
>  tools/lib/bpf/libbpf.h                             |   21 +
>  tools/lib/bpf/libbpf.map                           |    3
>  tools/testing/selftests/bpf/prog_tests/pinning.c   |  210 +++++++++++
>  tools/testing/selftests/bpf/progs/test_pinning.c   |   31 ++
>  .../selftests/bpf/progs/test_pinning_invalid.c     |   16 +
>  7 files changed, 591 insertions(+), 81 deletions(-)
>  create mode 100644 tools/testing/selftests/bpf/prog_tests/pinning.c
>  create mode 100644 tools/testing/selftests/bpf/progs/test_pinning.c
>  create mode 100644 tools/testing/selftests/bpf/progs/test_pinning_invalid.c
>

  parent reply	other threads:[~2019-11-02 19:09 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-02 11:09 [PATCH bpf-next v6 0/5] libbpf: Support automatic pinning of maps using 'pinning' BTF attribute Toke Høiland-Jørgensen
2019-11-02 11:09 ` [PATCH bpf-next v6 1/5] libbpf: Fix error handling in bpf_map__reuse_fd() Toke Høiland-Jørgensen
2019-11-02 11:09 ` [PATCH bpf-next v6 2/5] libbpf: Store map pin path and status in struct bpf_map Toke Høiland-Jørgensen
2019-11-02 11:09 ` [PATCH bpf-next v6 3/5] libbpf: Move directory creation into _pin() functions Toke Høiland-Jørgensen
2019-11-02 11:09 ` [PATCH bpf-next v6 4/5] libbpf: Add auto-pinning of maps when loading BPF objects Toke Høiland-Jørgensen
2019-11-02 11:09 ` [PATCH bpf-next v6 5/5] selftests: Add tests for automatic map pinning Toke Høiland-Jørgensen
2019-11-02 19:09 ` Andrii Nakryiko [this message]
2019-11-02 19:37   ` [PATCH bpf-next v6 0/5] libbpf: Support automatic pinning of maps using 'pinning' BTF attribute Alexei Starovoitov
2019-11-04 10:18   ` Toke Høiland-Jørgensen

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=CAEf4BzYXhoaiH5x9YZ99ABUMngsjBVRAYJBm+oMbnAHnpn-18g@mail.gmail.com \
    --to=andrii.nakryiko@gmail.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=brouer@redhat.com \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=kafai@fb.com \
    --cc=netdev@vger.kernel.org \
    --cc=songliubraving@fb.com \
    --cc=toke@redhat.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.