On Wed, Jul 7, 2021 at 3:45 PM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > On Wed, 7 Jul 2021 15:12:28 -0700 > Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > > There doesn't seem to be anything conceptually wrong with attaching > > the same BPF program twice to the same tracepoint. Is it a hard > > requirement to have a unique tp+callback combination, or was it done > > mostly to detect an API misuse? How hard is it to support such use > > cases? > > > > I was surprised to discover this is not supported (though I never had > > a use for this, had to construct a test to see the warning). > > The callback is identified by the function and its data combination. If > there's two callbacks calling the same function with the same data on > the same tracepoint, one question is, why? And the second is how do you > differentiate the two? For places where multiple BPF programs can be attached (kprobes, cgroup programs, etc), we don't put a restriction that all programs have to be unique. It's totally legal to have the same program attached multiple times. So having this for tracepoints will be a one-off behavior. As for why the user might need that, it's up to the user and I don't want to speculate because it will always sound contrived without a specific production use case. But people are very creative and we try not to dictate how and what can be done if it doesn't break any fundamental assumption and safety. > > -- Steve