On 2/26/25 11:27 AM, Eric Dumazet wrote: > On Wed, Feb 26, 2025 at 7:18 PM Breno Leitao <[email protected]> wrote: >> >> Hello David, >> >> On Wed, Feb 26, 2025 at 10:12:08AM -0700, David Ahern wrote: >>> On 2/26/25 9:10 AM, Breno Leitao wrote: >>>>> Also, if a tracepoint is added, inside of tcp_sendmsg_locked would cover >>>>> more use cases (see kernel references to it). >>>> >>>> Agree, this seems to provide more useful information >>>> >>>>> We have a patch for a couple years now with a tracepoint inside the >>>> >>>> Sorry, where do you have this patch? is it downstream? >>> >>> company tree. Attached. Where to put tracepoints and what arguments to >>> supply so that it is beneficial to multiple users is always a touchy >>> subject :-) >> >> Thanks. I would like to state that this would be useful for Meta as >> well. >> >> Right now, we (Meta) are using nasty `noinline` attribute in >> tcp_sendmsg() in order to make the API stable, and this tracepoint would >> solve this problem avoiding the `noinline` hack. So, at least two type >> of users would benefit from it. >> >>> so I have not tried to push the patch out. sock arg should >>> be added to it for example. >> >> True, if it becomes a tracepoint instead of a rawtracepoint, the sock >> arg might be useful. >> >> How would you recommend me proceeding in this case? > > In 2022, Menglong Dong added __fix_address > > Then later , Yafang Shao added noinline_for_tracing . > > Would one of them be sufficient ?
tcp_sendmsg_locked should not be getting inlined; it is the sendmsg_locked handler and directly called by several subsystems. ie., moving the tracepoint to tcp_sendmsg_locked should solve the inline problem. From there, the question is inside the loop or at entry to the function. Inside the loop has been very helpful for me.
