mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-06 00:29:07 +08:00
bpf: Added new helper bpf_get_ns_current_pid_tgid
New bpf helper bpf_get_ns_current_pid_tgid, This helper will return pid and tgid from current task which namespace matches dev_t and inode number provided, this will allows us to instrument a process inside a container. Signed-off-by: Carlos Neira <cneirabustos@gmail.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Yonghong Song <yhs@fb.com> Link: https://lore.kernel.org/bpf/20200304204157.58695-3-cneirabustos@gmail.com
This commit is contained in:
committed by
Andrii Nakryiko
parent
2ef4fdac6c
commit
84cf76de9c
@@ -2914,6 +2914,19 @@ union bpf_attr {
|
|||||||
* of sizeof(struct perf_branch_entry).
|
* of sizeof(struct perf_branch_entry).
|
||||||
*
|
*
|
||||||
* **-ENOENT** if architecture does not support branch records.
|
* **-ENOENT** if architecture does not support branch records.
|
||||||
|
*
|
||||||
|
* int bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size)
|
||||||
|
* Description
|
||||||
|
* Returns 0 on success, values for *pid* and *tgid* as seen from the current
|
||||||
|
* *namespace* will be returned in *nsdata*.
|
||||||
|
*
|
||||||
|
* On failure, the returned value is one of the following:
|
||||||
|
*
|
||||||
|
* **-EINVAL** if dev and inum supplied don't match dev_t and inode number
|
||||||
|
* with nsfs of current task, or if dev conversion to dev_t lost high bits.
|
||||||
|
*
|
||||||
|
* **-ENOENT** if pidns does not exists for the current task.
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
#define __BPF_FUNC_MAPPER(FN) \
|
#define __BPF_FUNC_MAPPER(FN) \
|
||||||
FN(unspec), \
|
FN(unspec), \
|
||||||
@@ -3035,7 +3048,8 @@ union bpf_attr {
|
|||||||
FN(tcp_send_ack), \
|
FN(tcp_send_ack), \
|
||||||
FN(send_signal_thread), \
|
FN(send_signal_thread), \
|
||||||
FN(jiffies64), \
|
FN(jiffies64), \
|
||||||
FN(read_branch_records),
|
FN(read_branch_records), \
|
||||||
|
FN(get_ns_current_pid_tgid),
|
||||||
|
|
||||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||||
* function eBPF program intends to call
|
* function eBPF program intends to call
|
||||||
@@ -3829,4 +3843,8 @@ struct bpf_sockopt {
|
|||||||
__s32 retval;
|
__s32 retval;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct bpf_pidns_info {
|
||||||
|
__u32 pid;
|
||||||
|
__u32 tgid;
|
||||||
|
};
|
||||||
#endif /* _UAPI__LINUX_BPF_H__ */
|
#endif /* _UAPI__LINUX_BPF_H__ */
|
||||||
|
|||||||
Reference in New Issue
Block a user