-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net/smc: Introduce tracepoint for fallback
This introduces tracepoint for smc fallback to TCP, so that we can track which connection and why it fallbacks, and map the clcsocks' pointer with /proc/net/tcp to find more details about TCP connections. Compared with kprobe or other dynamic tracing, tracepoints are stable and easy to use. Signed-off-by: Tony Lu <tonylu@linux.alibaba.com> Reviewed-by: Wen Gu <guwen@linux.alibaba.com> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Tony Lu
authored and
David S. Miller
committed
Nov 1, 2021
1 parent
6008889
commit 4826260
Showing
4 changed files
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only | ||
ccflags-y += -I$(src) | ||
obj-$(CONFIG_SMC) += smc.o | ||
obj-$(CONFIG_SMC_DIAG) += smc_diag.o | ||
smc-y := af_smc.o smc_pnet.o smc_ib.o smc_clc.o smc_core.o smc_wr.o smc_llc.o | ||
smc-y += smc_cdc.o smc_tx.o smc_rx.o smc_close.o smc_ism.o smc_netlink.o smc_stats.o | ||
smc-y += smc_tracepoint.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
// SPDX-License-Identifier: GPL-2.0-only | ||
|
||
#define CREATE_TRACE_POINTS | ||
#include "smc_tracepoint.h" | ||
|
||
EXPORT_TRACEPOINT_SYMBOL(smc_switch_to_fallback); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 */ | ||
|
||
#undef TRACE_SYSTEM | ||
#define TRACE_SYSTEM smc | ||
|
||
#if !defined(_TRACE_SMC_H) || defined(TRACE_HEADER_MULTI_READ) | ||
#define _TRACE_SMC_H | ||
|
||
#include <linux/ipv6.h> | ||
#include <linux/tcp.h> | ||
#include <linux/tracepoint.h> | ||
#include <net/ipv6.h> | ||
#include "smc.h" | ||
#include "smc_core.h" | ||
|
||
TRACE_EVENT(smc_switch_to_fallback, | ||
|
||
TP_PROTO(const struct smc_sock *smc, int fallback_rsn), | ||
|
||
TP_ARGS(smc, fallback_rsn), | ||
|
||
TP_STRUCT__entry( | ||
__field(const void *, sk) | ||
__field(const void *, clcsk) | ||
__field(int, fallback_rsn) | ||
), | ||
|
||
TP_fast_assign( | ||
const struct sock *sk = &smc->sk; | ||
const struct sock *clcsk = smc->clcsock->sk; | ||
|
||
__entry->sk = sk; | ||
__entry->clcsk = clcsk; | ||
__entry->fallback_rsn = fallback_rsn; | ||
), | ||
|
||
TP_printk("sk=%p clcsk=%p fallback_rsn=%d", | ||
__entry->sk, __entry->clcsk, __entry->fallback_rsn) | ||
); | ||
|
||
#endif /* _TRACE_SMC_H */ | ||
|
||
#undef TRACE_INCLUDE_PATH | ||
#define TRACE_INCLUDE_PATH . | ||
|
||
#undef TRACE_INCLUDE_FILE | ||
#define TRACE_INCLUDE_FILE smc_tracepoint | ||
|
||
#include <trace/define_trace.h> |