+/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM napi
#if !defined(LTTNG_TRACE_NAPI_H) || defined(TRACE_HEADER_MULTI_READ)
#define LTTNG_TRACE_NAPI_H
-#include "../../../probes/lttng-tracepoint-event.h"
+#include <probes/lttng-tracepoint-event.h>
#include <linux/netdevice.h>
#include <linux/ftrace.h>
#define NO_DEV "(no_device)"
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
+
LTTNG_TRACEPOINT_EVENT(napi_poll,
- TP_PROTO(struct napi_struct *napi),
+ TP_PROTO(struct napi_struct *napi, int work, int budget),
- TP_ARGS(napi),
+ TP_ARGS(napi, work, budget),
- TP_STRUCT__entry(
- __field( struct napi_struct *, napi)
- __string( dev_name, napi->dev ? napi->dev->name : NO_DEV)
- ),
+ TP_FIELDS(
+ ctf_integer_hex(struct napi_struct *, napi, napi)
+ ctf_string(dev_name, napi->dev ? napi->dev->name : NO_DEV)
+ ctf_integer(int, work, work)
+ ctf_integer(int, budget, budget)
+ )
+)
+
+#else
- TP_fast_assign(
- tp_assign(napi, napi)
- tp_strcpy(dev_name, napi->dev ? napi->dev->name : NO_DEV)
- ),
+LTTNG_TRACEPOINT_EVENT(napi_poll,
- TP_printk("napi poll on napi struct %p for device %s",
- __entry->napi, __get_str(dev_name))
+ TP_PROTO(struct napi_struct *napi),
+
+ TP_ARGS(napi),
+
+ TP_FIELDS(
+ ctf_integer_hex(struct napi_struct *, napi, napi)
+ ctf_string(dev_name, napi->dev ? napi->dev->name : NO_DEV)
+ )
)
+#endif
+
#undef NO_DEV
#endif /* LTTNG_TRACE_NAPI_H */
/* This part must be outside protection */
-#include "../../../probes/define_trace.h"
+#include <probes/define_trace.h>