Currently bpf_get_current_pid_tgid() is allowed in tracing, cgroup and sk_msg progs while bpf_get_ns_current_pid_tgid() is only allowed in tracing progs. We have an internal use case where for an application running in a container (with pid namespace), user wants to get the pid associated with the pid namespace in a cgroup bpf program. Besides cgroup, the only prog type, supporting bpf_get_current_pid_tgid() but not bpf_get_ns_current_pid_tgid(), is sk_msg. But actually both bpf_get_current_pid_tgid() and bpf_get_ns_current_pid_tgid() helpers do not reveal kernel internal data and there is no reason that they cannot be used in other program types. This patch just did this and enabled these two helpers for all program types. Patch 1 added the kernel support and patches 2-5 added the test for cgroup and sk_msg. Change logs: v1 -> v2: - allow bpf_get_[ns_]current_pid_tgid() for all prog types. - for network related selftests, using netns. Yonghong Song (5): bpf: Allow helper bpf_get_[ns_]current_pid_tgid() for all prog types selftests/bpf: Replace CHECK with ASSERT_* in ns_current_pid_tgid test selftests/bpf: Refactor out some functions in ns_current_pid_tgid test selftests/bpf: Add a cgroup prog bpf_get_ns_current_pid_tgid() test selftests/bpf: Add a sk_msg prog bpf_get_ns_current_pid_tgid() test kernel/bpf/cgroup.c | 2 - kernel/bpf/helpers.c | 4 + kernel/trace/bpf_trace.c | 4 - net/core/filter.c | 2 - .../bpf/prog_tests/ns_current_pid_tgid.c | 214 +++++++++++++++--- .../bpf/progs/test_ns_current_pid_tgid.c | 31 ++- 6 files changed, 215 insertions(+), 42 deletions(-) -- 2.43.0