[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LRH.2.21.2005181000520.893@localhost>
Date: Mon, 18 May 2020 10:10:44 +0100 (BST)
From: Alan Maguire <alan.maguire@...cle.com>
To: Yonghong Song <yhs@...com>
cc: Alan Maguire <alan.maguire@...cle.com>, ast@...nel.org,
daniel@...earbox.net, bpf@...r.kernel.org, joe@...ches.com,
linux@...musvillemoes.dk, arnaldo.melo@...il.com, kafai@...com,
songliubraving@...com, andriin@...com, john.fastabend@...il.com,
kpsingh@...omium.org, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: [PATCH v2 bpf-next 6/7] bpf: add support for %pT format specifier
for bpf_trace_printk() helper
On Wed, 13 May 2020, Yonghong Song wrote:
>
> > + while (isbtffmt(fmt[i]))
> > + i++;
>
> The pointer passed to the helper may not be valid pointer. I think you
> need to do a probe_read_kernel() here. Do an atomic memory allocation
> here should be okay as this is mostly for debugging only.
>
Are there other examples of doing allocations in program execution
context? I'd hate to be the first to introduce one if not. I was hoping
I could get away with some per-CPU scratch space. Most data structures
will fit within a small per-CPU buffer, but if multiple copies
are required, performance isn't the key concern. It will make traversing
the buffer during display a bit more complex but I think avoiding
allocation might make that complexity worth it. The other thought I had
was we could carry out an allocation associated with the attach,
but that's messy as it's possible run-time might determine the type for
display (and thus the amount of the buffer we need to copy safely).
Great news about LLVM support for __builtin_btf_type_id()!
Thanks!
Alan
Powered by blists - more mailing lists