On Thu, 8 Nov 2018 13:29:40 -0800, Stanislav Fomichev wrote: > On 11/08, Jakub Kicinski wrote: > > On Wed, 7 Nov 2018 21:39:57 -0800, Stanislav Fomichev wrote: > > > This commit adds support for loading/attaching/detaching flow > > > dissector program. The structure of the flow dissector program is > > > assumed to be the same as in the selftests: > > > > > > * flow_dissector section with the main entry point > > > * a bunch of tail call progs > > > * a jmp_table map that is populated with the tail call progs > > > > Could you split the loadall changes and the flow_dissector changes into > > two separate patches? > Sure, will do, but let's first agree on the semantical differences of > load vs loadall. > > So far *load* actually loads _all_ progs (via bpf_object__load), but pins > only the first program. Is that what we want? I wonder whether the > assumption there was that there is only single program in the object. > Should we load only the first program in *load*? > > If we add *loadall*, then the difference would be: > *load*: > * loads all maps and only the first program, pins only the first > program > *loadall*: > * loads all maps and all programs, pins everything (maps and programs) > > Is this the expected behavior? Loading all programs and maps for "load" is just a libbpf limitation we can remove at some point.