Message ID | 20211217141140.GA26351@Mem (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | BPF |
Headers | show |
Series | [bpf,v2] bpftool: Flush tracelog output | expand |
On Fri, Dec 17, 2021 at 6:11 AM Paul Chaignon <paul@isovalent.com> wrote: > > The output of bpftool prog tracelog is currently buffered, which is > inconvenient when piping the output into other commands. A simple > tracelog | grep will typically not display anything. This patch fixes it > by flushing the tracelog output after each line from the trace_pipe file. > > Fixes: 30da46b5dc3a ("tools: bpftool: add a command to dump the trace pipe") > Signed-off-by: Quentin Monnet <quentin@isovalent.com> > Signed-off-by: Paul Chaignon <paul@isovalent.com> > --- > Changes in v2: > - Resending to fix a format error. > > tools/bpf/bpftool/tracelog.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/bpf/bpftool/tracelog.c b/tools/bpf/bpftool/tracelog.c > index e80a5c79b38f..b310229abb07 100644 > --- a/tools/bpf/bpftool/tracelog.c > +++ b/tools/bpf/bpftool/tracelog.c > @@ -158,6 +158,7 @@ int do_tracelog(int argc, char **argv) > jsonw_string(json_wtr, buff); > else > printf("%s", buff); > + fflush(stdout); maybe it's better to setlinebuf(stdout); for the entire bpftool instead? > } > > fclose(trace_pipe_fd); > -- > 2.25.1 >
On Fri, Dec 17, 2021 at 08:51:01AM -0800, Andrii Nakryiko wrote: > On Fri, Dec 17, 2021 at 6:11 AM Paul Chaignon <paul@isovalent.com> wrote: > > > > The output of bpftool prog tracelog is currently buffered, which is > > inconvenient when piping the output into other commands. A simple > > tracelog | grep will typically not display anything. This patch fixes it > > by flushing the tracelog output after each line from the trace_pipe file. > > > > Fixes: 30da46b5dc3a ("tools: bpftool: add a command to dump the trace pipe") > > Signed-off-by: Quentin Monnet <quentin@isovalent.com> > > Signed-off-by: Paul Chaignon <paul@isovalent.com> > > --- > > Changes in v2: > > - Resending to fix a format error. > > > > tools/bpf/bpftool/tracelog.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/tools/bpf/bpftool/tracelog.c b/tools/bpf/bpftool/tracelog.c > > index e80a5c79b38f..b310229abb07 100644 > > --- a/tools/bpf/bpftool/tracelog.c > > +++ b/tools/bpf/bpftool/tracelog.c > > @@ -158,6 +158,7 @@ int do_tracelog(int argc, char **argv) > > jsonw_string(json_wtr, buff); > > else > > printf("%s", buff); > > + fflush(stdout); > > maybe it's better to > > setlinebuf(stdout); > > for the entire bpftool instead? Makes sense. I've sent a v3 at https://lore.kernel.org/bpf/20211220214528.GA11706@Mem/T/. > > > > } > > > > fclose(trace_pipe_fd); > > -- > > 2.25.1 > >
diff --git a/tools/bpf/bpftool/tracelog.c b/tools/bpf/bpftool/tracelog.c index e80a5c79b38f..b310229abb07 100644 --- a/tools/bpf/bpftool/tracelog.c +++ b/tools/bpf/bpftool/tracelog.c @@ -158,6 +158,7 @@ int do_tracelog(int argc, char **argv) jsonw_string(json_wtr, buff); else printf("%s", buff); + fflush(stdout); } fclose(trace_pipe_fd);