xref: /linux/fs/nfs_common/localio_trace.h (revision 1260ed77798502de9c98020040d2995008de10cc)
1*0dc73141SMike Snitzer /* SPDX-License-Identifier: GPL-2.0 */
2*0dc73141SMike Snitzer /*
3*0dc73141SMike Snitzer  * Copyright (c) 2024 Trond Myklebust <trond.myklebust@hammerspace.com>
4*0dc73141SMike Snitzer  * Copyright (C) 2024 Mike Snitzer <snitzer@hammerspace.com>
5*0dc73141SMike Snitzer  */
6*0dc73141SMike Snitzer #undef TRACE_SYSTEM
7*0dc73141SMike Snitzer #define TRACE_SYSTEM nfs_localio
8*0dc73141SMike Snitzer 
9*0dc73141SMike Snitzer #if !defined(_TRACE_NFS_COMMON_LOCALIO_H) || defined(TRACE_HEADER_MULTI_READ)
10*0dc73141SMike Snitzer #define _TRACE_NFS_COMMON_LOCALIO_H
11*0dc73141SMike Snitzer 
12*0dc73141SMike Snitzer #include <linux/tracepoint.h>
13*0dc73141SMike Snitzer 
14*0dc73141SMike Snitzer #include <trace/misc/fs.h>
15*0dc73141SMike Snitzer #include <trace/misc/nfs.h>
16*0dc73141SMike Snitzer #include <trace/misc/sunrpc.h>
17*0dc73141SMike Snitzer 
18*0dc73141SMike Snitzer DECLARE_EVENT_CLASS(nfs_local_client_event,
19*0dc73141SMike Snitzer 		TP_PROTO(
20*0dc73141SMike Snitzer 			const struct nfs_client *clp
21*0dc73141SMike Snitzer 		),
22*0dc73141SMike Snitzer 
23*0dc73141SMike Snitzer 		TP_ARGS(clp),
24*0dc73141SMike Snitzer 
25*0dc73141SMike Snitzer 		TP_STRUCT__entry(
26*0dc73141SMike Snitzer 			__field(unsigned int, protocol)
27*0dc73141SMike Snitzer 			__string(server, clp->cl_hostname)
28*0dc73141SMike Snitzer 		),
29*0dc73141SMike Snitzer 
30*0dc73141SMike Snitzer 		TP_fast_assign(
31*0dc73141SMike Snitzer 			__entry->protocol = clp->rpc_ops->version;
32*0dc73141SMike Snitzer 			__assign_str(server);
33*0dc73141SMike Snitzer 		),
34*0dc73141SMike Snitzer 
35*0dc73141SMike Snitzer 		TP_printk(
36*0dc73141SMike Snitzer 			"server=%s NFSv%u", __get_str(server), __entry->protocol
37*0dc73141SMike Snitzer 		)
38*0dc73141SMike Snitzer );
39*0dc73141SMike Snitzer 
40*0dc73141SMike Snitzer #define DEFINE_NFS_LOCAL_CLIENT_EVENT(name) \
41*0dc73141SMike Snitzer 	DEFINE_EVENT(nfs_local_client_event, name, \
42*0dc73141SMike Snitzer 			TP_PROTO( \
43*0dc73141SMike Snitzer 				const struct nfs_client *clp \
44*0dc73141SMike Snitzer 			), \
45*0dc73141SMike Snitzer 			TP_ARGS(clp))
46*0dc73141SMike Snitzer 
47*0dc73141SMike Snitzer DEFINE_NFS_LOCAL_CLIENT_EVENT(nfs_localio_enable_client);
48*0dc73141SMike Snitzer DEFINE_NFS_LOCAL_CLIENT_EVENT(nfs_localio_disable_client);
49*0dc73141SMike Snitzer 
50*0dc73141SMike Snitzer #endif /* _TRACE_NFS_COMMON_LOCALIO_H */
51*0dc73141SMike Snitzer 
52*0dc73141SMike Snitzer #undef TRACE_INCLUDE_PATH
53*0dc73141SMike Snitzer #define TRACE_INCLUDE_PATH .
54*0dc73141SMike Snitzer #define TRACE_INCLUDE_FILE localio_trace
55*0dc73141SMike Snitzer /* This part must be outside protection */
56*0dc73141SMike Snitzer #include <trace/define_trace.h>
57