mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-05 16:19:06 +08:00
bpf: Add bpf_copy_from_user_task() helper
This adds a helper for bpf programs to read the memory of other tasks. As an example use case at Meta, we are using a bpf task iterator program and this new helper to print C++ async stack traces for all threads of a given process. Signed-off-by: Kenny Yu <kennyyu@fb.com> Acked-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/r/20220124185403.468466-3-kennyyu@fb.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Andrii Nakryiko
parent
fb0b8a7cea
commit
a9491bb920
@@ -5076,6 +5076,16 @@ union bpf_attr {
|
|||||||
* associated to *xdp_md*, at *offset*.
|
* associated to *xdp_md*, at *offset*.
|
||||||
* Return
|
* Return
|
||||||
* 0 on success, or a negative error in case of failure.
|
* 0 on success, or a negative error in case of failure.
|
||||||
|
*
|
||||||
|
* long bpf_copy_from_user_task(void *dst, u32 size, const void *user_ptr, struct task_struct *tsk, u64 flags)
|
||||||
|
* Description
|
||||||
|
* Read *size* bytes from user space address *user_ptr* in *tsk*'s
|
||||||
|
* address space, and stores the data in *dst*. *flags* is not
|
||||||
|
* used yet and is provided for future extensibility. This helper
|
||||||
|
* can only be used by sleepable programs.
|
||||||
|
* Return
|
||||||
|
* 0 on success, or a negative error in case of failure. On error
|
||||||
|
* *dst* buffer is zeroed out.
|
||||||
*/
|
*/
|
||||||
#define __BPF_FUNC_MAPPER(FN) \
|
#define __BPF_FUNC_MAPPER(FN) \
|
||||||
FN(unspec), \
|
FN(unspec), \
|
||||||
@@ -5269,6 +5279,7 @@ union bpf_attr {
|
|||||||
FN(xdp_get_buff_len), \
|
FN(xdp_get_buff_len), \
|
||||||
FN(xdp_load_bytes), \
|
FN(xdp_load_bytes), \
|
||||||
FN(xdp_store_bytes), \
|
FN(xdp_store_bytes), \
|
||||||
|
FN(copy_from_user_task), \
|
||||||
/* */
|
/* */
|
||||||
|
|
||||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||||
|
|||||||
Reference in New Issue
Block a user