Thread (28 messages) 28 messages, 4 authors, 2020-06-02

Re: [PATCH 7/9] bpf: Compile the BTF id whitelist data in vmlinux

From: Jiri Olsa <hidden>
Date: 2020-05-28 17:24:05
Also in: bpf

On Thu, May 14, 2020 at 03:46:26PM -0700, Andrii Nakryiko wrote:

SNIP
quoted
I was thinking of putting the names in __init section and generate the BTF
ids on kernel start, but the build time generation seemed more convenient..
let's see the linking times with 'real size' whitelist and we can reconsider
Being able to record such places where to put BTF ID in code would be
really nice, as Alexei mentioned. There are many potential use cases
where it would be good to have BTF IDs just put into arbitrary
variables/arrays. This would trigger compilation error, if someone
screws up the name, or function is renamed, or if function can be
compiled out under some configuration. E.g., assuming some reasonable
implementation of the macro
hi,
I'm struggling with this part.. to get some reasonable reference
to function/name into 32 bits? any idea? ;-)

jirka
static const u32 d_path_whitelist[] = {
    BTF_ID_FUNC(vfs_fallocate),
#ifdef CONFIG_WHATEVER
    BTF_ID_FUNC(do_truncate),
#endif
};

Would be nice and very explicit. Given this is not going to be sorted,
you won't be able to use binary search, but if whitelists are
generally small, it should be fine as is. If not, hashmap could be
built in runtime and would be, probably, faster than binary search for
longer sets of BTF IDs.

I wonder if we can do some assembly magic with generating extra
symbols and/or relocations to achieve this? What do you think? Is it
doable/desirable/better?

quoted
thanks,
jirka
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help