[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180820.192446.1163576988616844281.davem@davemloft.net>
Date: Mon, 20 Aug 2018 19:24:46 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: alexei.starovoitov@...il.com
Cc: peterpenkov96@...il.com, netdev@...r.kernel.org, ast@...nel.org,
daniel@...earbox.net, simon.horman@...ronome.com,
ppenkov@...gle.com, willemb@...gle.com
Subject: Re: [bpf-next RFC 0/3] Introduce eBPF flow dissector
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
Date: Mon, 20 Aug 2018 13:52:07 -0700
> I don't think copy-paste avoids the issue of uapi.
> Anything used by BPF program is uapi.
> The only exception is offsets of kernel internal structures
> passed into bpf_probe_read().
> So we have several options:
> 1. be honest and say 'struct flow_dissect_key*' is now uapi
> 2. wrap all of them into 'struct bpf_flow_dissect_key*' and do rewrites
> when/if 'struct flow_dissect_key*' changes
> 3. wait for BTF to solve it for tracing use case and for this one two.
...
> The idea is that kernel internal structs can be defined in bpf prog
> and since they will be described precisely in BTF that comes with the prog
> the kernel can validate that prog's BTF matches what kernel thinks it has.
> imo that's the most flexible, but BTF for all of vmlinux won't be ready
> tomorrow and looks like this patch set is ready to go, so I would go with 1 or 2.
I would definitely prefer #2 or #3.
I personally would like to see us avoid preventing interesting
optimizations of the flow key layout and/or accesses in the future.
Powered by blists - more mailing lists