diff options
author | Jakub Kicinski <[email protected]> | 2024-11-03 09:02:34 -0800 |
---|---|---|
committer | Jakub Kicinski <[email protected]> | 2024-11-03 09:02:35 -0800 |
commit | 574583c30cc32bb4934a7dfaa9341fe1f8068758 (patch) | |
tree | b3979986a79b2255d2c40949a035792ba087d576 | |
parent | f07a6e6ceb054001888e101d74036633e2aa1020 (diff) | |
parent | dbd5e2e79ed8653ac2ae255e42d1189283343a0c (diff) |
Merge branch 'add-noinline_for_tracing-and-apply-it-to-tcp_drop_reason'
Yafang Shao says:
====================
Add noinline_for_tracing and apply it to tcp_drop_reason
This patchset introduces a new compiler annotation, noinline_for_tracing,
designed to prevent specific functions from being inlined to facilitate
tracing. In Patch #2, this annotation is applied to the tcp_drop_reason().
====================
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
-rw-r--r-- | include/linux/compiler_types.h | 6 | ||||
-rw-r--r-- | net/ipv4/tcp_input.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index 1a957ea2f4fe..0c8b9601e603 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -266,6 +266,12 @@ struct ftrace_likely_data { #define noinline_for_stack noinline /* + * Use noinline_for_tracing for functions that should not be inlined. + * For tracing reasons. + */ +#define noinline_for_tracing noinline + +/* * Sanitizer helper attributes: Because using __always_inline and * __no_sanitize_* conflict, provide helper attributes that will either expand * to __no_sanitize_* in compilation units where instrumentation is enabled diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 2d844e1f867f..5bdf13ac26ef 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -4921,8 +4921,8 @@ static bool tcp_ooo_try_coalesce(struct sock *sk, return res; } -static void tcp_drop_reason(struct sock *sk, struct sk_buff *skb, - enum skb_drop_reason reason) +noinline_for_tracing static void +tcp_drop_reason(struct sock *sk, struct sk_buff *skb, enum skb_drop_reason reason) { sk_drops_add(sk, skb); sk_skb_reason_drop(sk, skb, reason); |