Messages in this thread | | | From | Hengqi Chen <> | Subject | [PATCH 0/4] seccomp: Make seccomp filter reusable | Date | Mon, 9 Oct 2023 12:40:42 +0000 |
| |
This patchset introduces two new operations which essentially splits the SECCOMP_SET_MODE_FILTER process into two steps: SECCOMP_LOAD_FILTER and SECCOMP_ATTACH_FILTER.
The SECCOMP_LOAD_FILTER loads the filter and returns a fd which can be pinned to bpffs. This extends the lifetime of the filter and thus can be reused by different processes. With this new operation, we can eliminate a hot path of JITing BPF program (the filter) where we apply the same seccomp filter to thousands of micro VMs on a bare metal instance.
The SECCOMP_ATTACH_FILTER is used to attach a loaded filter. The filter is represented by a fd which is either returned from SECCOMP_LOAD_FILTER or obtained from bpffs using bpf syscall.
Changes from RFC ([0]): - Addressed comments from Kees - Reuse filter copy/create code (patch 1) - Add a selftest (patch 4)
[0]: https://lore.kernel.org/all/20231003083836.100706-1-hengqi.chen@gmail.com/
Hengqi Chen (4): seccomp: Refactor filter copy/create for reuse seccomp, bpf: Introduce SECCOMP_LOAD_FILTER operation seccomp: Introduce SECCOMP_ATTACH_FILTER operation selftests/seccomp: Test SECCOMP_LOAD_FILTER and SECCOMP_ATTACH_FILTER
include/uapi/linux/bpf.h | 1 + include/uapi/linux/seccomp.h | 2 + kernel/seccomp.c | 184 +++++++++++++++--- tools/testing/selftests/seccomp/seccomp_bpf.c | 20 ++ 4 files changed, 180 insertions(+), 27 deletions(-)
-- 2.34.1
| |