On Wed, Apr 14, 2021 at 11:54 AM Florent Revest <revest@xxxxxxxxxxxx> wrote: > > The implementation takes inspiration from the existing bpf_trace_printk > helper but there are a few differences: > > To allow for a large number of format-specifiers, parameters are > provided in an array, like in bpf_seq_printf. > > Because the output string takes two arguments and the array of > parameters also takes two arguments, the format string needs to fit in > one argument. Thankfully, ARG_PTR_TO_CONST_STR is guaranteed to point to > a zero-terminated read-only map so we don't need a format string length > arg. > > Because the format-string is known at verification time, we also do > a first pass of format string validation in the verifier logic. This > makes debugging easier. > > Signed-off-by: Florent Revest <revest@xxxxxxxxxxxx> > --- LGTM. Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > include/linux/bpf.h | 1 + > include/uapi/linux/bpf.h | 28 +++++++++++++++++++ > kernel/bpf/helpers.c | 50 ++++++++++++++++++++++++++++++++++ > kernel/bpf/verifier.c | 41 ++++++++++++++++++++++++++++ > kernel/trace/bpf_trace.c | 2 ++ > tools/include/uapi/linux/bpf.h | 28 +++++++++++++++++++ > 6 files changed, 150 insertions(+) > [...]