[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210208225255.3089073-1-songliubraving@fb.com>
Date: Mon, 8 Feb 2021 14:52:51 -0800
From: Song Liu <songliubraving@...com>
To: <bpf@...r.kernel.org>, <netdev@...r.kernel.org>,
<linux-mm@...ck.org>
CC: <ast@...nel.org>, <daniel@...earbox.net>, <kernel-team@...com>,
<akpm@...ux-foundation.org>, Song Liu <songliubraving@...com>
Subject: [PATCH v5 bpf-next 0/4] introduce bpf_iter for task_vma
This set introduces bpf_iter for task_vma, which can be used to generate
information similar to /proc/pid/maps. Patch 4/4 adds an example that
mimics /proc/pid/maps.
Current /proc/<pid>/maps and /proc/<pid>/smaps provide information of
vma's of a process. However, these information are not flexible enough to
cover all use cases. For example, if a vma cover mixed 2MB pages and 4kB
pages (x86_64), there is no easy way to tell which address ranges are
backed by 2MB pages. task_vma solves the problem by enabling the user to
generate customize information based on the vma (and vma->vm_mm,
vma->vm_file, etc.).
Changes v4 => v5:
1. Fix a refcount leak on task_struct. (Yonghong)
2. Fix the selftest. (Yonghong)
Changes v3 => v4:
1. Avoid skipping vma by assigning invalid prev_vm_start in
task_vma_seq_stop(). (Yonghong)
2. Move "again" label in task_vma_seq_get_next() save a check. (Yonghong)
Changes v2 => v3:
1. Rewrite 1/4 so that we hold mmap_lock while calling BPF program. This
enables the BPF program to access the real vma with BTF. (Alexei)
2. Fix the logic when the control is returned to user space. (Yonghong)
3. Revise commit log and cover letter. (Yonghong)
Changes v1 => v2:
1. Small fixes in task_iter.c and the selftests. (Yonghong)
Song Liu (4):
bpf: introduce task_vma bpf_iter
bpf: allow bpf_d_path in sleepable bpf_iter program
libbpf: introduce section "iter.s/" for sleepable bpf_iter program
selftests/bpf: add test for bpf_iter_task_vma
kernel/bpf/task_iter.c | 217 +++++++++++++++++-
kernel/trace/bpf_trace.c | 5 +
tools/lib/bpf/libbpf.c | 5 +
.../selftests/bpf/prog_tests/bpf_iter.c | 118 +++++++++-
tools/testing/selftests/bpf/progs/bpf_iter.h | 8 +
.../selftests/bpf/progs/bpf_iter_task_vma.c | 58 +++++
6 files changed, 400 insertions(+), 11 deletions(-)
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_task_vma.c
--
2.24.1
Powered by blists - more mailing lists