On Wed, 11 Dec 2019 at 14:26, Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote: > > [...] > > +/* The BPF dispatcher is a multiway branch code generator. The > > + * dispatcher is a mechanism to avoid the performance penalty of an > > + * indirect call, which is expensive when retpolines are enabled. A > > + * dispatch client registers a BPF program into the dispatcher, and if > > + * there is available room in the dispatcher a direct call to the BPF > > + * program will be generated. All calls to the BPF programs called via > > + * the dispatcher will then be a direct call, instead of an > > + * indirect. The dispatcher hijacks a trampoline function it via the > > + * __fentry__ of the trampoline. The trampoline function has the > > + * following signature: > > + * > > + * unsigned int trampoline(const void *xdp_ctx, > > + * const struct bpf_insn *insnsi, > > + * unsigned int (*bpf_func)(const void *, > > + * const struct bpf_insn *)); > > + */ > > Nit: s/xdp_ctx/ctx/ > Thanks! Same type-o in the DEFINE/DECLARE macros. Will fix in v5. Björn > -Toke >