Message ID | 20200623070802.2310018-3-songliubraving@fb.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | bpf: introduce bpf_get_task_stack_trace() | expand |
On 6/23/20 9:08 AM, Song Liu wrote: > This makes it easy to dump stack trace with bpf_seq_printf(). > > Signed-off-by: Song Liu <songliubraving@fb.com> > --- > kernel/trace/bpf_trace.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c > index 2c13bcb5c2bce..ced3176801ae8 100644 > --- a/kernel/trace/bpf_trace.c > +++ b/kernel/trace/bpf_trace.c > @@ -636,7 +636,8 @@ BPF_CALL_5(bpf_seq_printf, struct seq_file *, m, char *, fmt, u32, fmt_size, > if (fmt[i] == 'p') { > if (fmt[i + 1] == 0 || > fmt[i + 1] == 'K' || > - fmt[i + 1] == 'x') { > + fmt[i + 1] == 'x' || > + fmt[i + 1] == 'B') { > /* just kernel pointers */ > params[fmt_cnt] = args[fmt_cnt]; > fmt_cnt++; > Why only bpf_seq_printf(), what about bpf_trace_printk()?
> On Jun 23, 2020, at 8:29 AM, Daniel Borkmann <daniel@iogearbox.net> wrote: > > On 6/23/20 9:08 AM, Song Liu wrote: >> This makes it easy to dump stack trace with bpf_seq_printf(). >> Signed-off-by: Song Liu <songliubraving@fb.com> >> --- >> kernel/trace/bpf_trace.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c >> index 2c13bcb5c2bce..ced3176801ae8 100644 >> --- a/kernel/trace/bpf_trace.c >> +++ b/kernel/trace/bpf_trace.c >> @@ -636,7 +636,8 @@ BPF_CALL_5(bpf_seq_printf, struct seq_file *, m, char *, fmt, u32, fmt_size, >> if (fmt[i] == 'p') { >> if (fmt[i + 1] == 0 || >> fmt[i + 1] == 'K' || >> - fmt[i + 1] == 'x') { >> + fmt[i + 1] == 'x' || >> + fmt[i + 1] == 'B') { >> /* just kernel pointers */ >> params[fmt_cnt] = args[fmt_cnt]; >> fmt_cnt++; > > Why only bpf_seq_printf(), what about bpf_trace_printk()? The use case we are looking at needs bpf_seq_printf(). Let me also add it to bpf_trace_printk(). Thanks, Song
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index 2c13bcb5c2bce..ced3176801ae8 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -636,7 +636,8 @@ BPF_CALL_5(bpf_seq_printf, struct seq_file *, m, char *, fmt, u32, fmt_size, if (fmt[i] == 'p') { if (fmt[i + 1] == 0 || fmt[i + 1] == 'K' || - fmt[i + 1] == 'x') { + fmt[i + 1] == 'x' || + fmt[i + 1] == 'B') { /* just kernel pointers */ params[fmt_cnt] = args[fmt_cnt]; fmt_cnt++;
This makes it easy to dump stack trace with bpf_seq_printf(). Signed-off-by: Song Liu <songliubraving@fb.com> --- kernel/trace/bpf_trace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)