Message ID | 20210107041801.2003241-3-songliubraving@fb.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | introduce bpf_iter for task_vma | expand |
On Thu, Jan 7, 2021 at 5:23 AM Song Liu <songliubraving@fb.com> wrote: > > task_file and task_vma iter programs have access to file->f_path. Enable > bpf_d_path to print paths of these file. > > bpf_iter programs are generally called in sleepable context. However, it > is still necessary to diffientiate sleepable and non-sleepable bpf_iter > programs: sleepable programs have access to bpf_d_path; non-sleepable > programs have access to bpf_spin_lock. > > Acked-by: Yonghong Song <yhs@fb.com> > Signed-off-by: Song Liu <songliubraving@fb.com> Acked-by: KP Singh <kpsingh@kernel.org>
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index ebadaa83502c1..fb60127b0806e 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -1191,6 +1191,11 @@ BTF_SET_END(btf_allowlist_d_path) static bool bpf_d_path_allowed(const struct bpf_prog *prog) { + if (prog->type == BPF_PROG_TYPE_TRACING && + prog->expected_attach_type == BPF_TRACE_ITER && + prog->aux->sleepable) + return true; + if (prog->type == BPF_PROG_TYPE_LSM) return bpf_lsm_is_sleepable_hook(prog->aux->attach_btf_id);