2018-12-05 19:18 UTC-0800 ~ Alexei Starovoitov
<alexei.starovoi...@gmail.com>
> On Wed, Dec 05, 2018 at 06:15:23PM +0000, Quentin Monnet wrote:
>>>> +
>>>> +  /* Allow room for NULL terminating byte and pipe file name */
>>>> +  snprintf(format, sizeof(format), "%%*s %%%zds %%99s %%*s %%*d %%*d\\n",
>>>> +           PATH_MAX - strlen(pipe_name) - 1);
>>>
>>> before scanning trace_pipe could you add a check that trace_options are 
>>> compatible?
>>> Otherwise there will be a lot of garbage printed.
>>> afaik default is rarely changed, so the patch is ok as-is.
>>> The followup some time in the future would be perfect.
>>
>> Sure. What do you mean exactly by compatible options? I can check that
>> "trace_printk" is set, is there any other option that would be relevant?
> 
> See Documentation/trace/ftrace.rst
> a lot of the flags will change the format significantly.
> Like 'bin' will make it binary.
> I'm not suggesting to support all possible output formats.
> Only to check that trace flags match scanf.

fscanf() is only used to retrieve the name of the sysfs directory where
the pipe is located, when listing all the mount points on the system. It
is not used to dump the content from the pipe (which is done with
getline(), so formatting does not matter much).

If the "bin" option is set, "bpftool prog tracelog" will dump the same
binary content as "cat /sys/kernel/debug/tracing/trace_pipe", which is
the expected behaviour (at least with the current patch). Let me know if
you would like me to change this somehow.

Thanks,
Quentin

Reply via email to