File Index
Files and directories
Sign in
FILE

qos_tracepoint.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/mellanox/mlx5/core/esw/diag/qos_tracepoint.h C
  1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
  2/* Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */
  3
  4#undef TRACE_SYSTEM
  5#define TRACE_SYSTEM mlx5
  6
  7#if !defined(_MLX5_ESW_TP_) || defined(TRACE_HEADER_MULTI_READ)
  8#define _MLX5_ESW_TP_
  9
 10#include <linux/tracepoint.h>
 11#include "eswitch.h"
 12#include "qos.h"
 13
 14TRACE_EVENT(mlx5_esw_vport_qos_destroy,
 15	    TP_PROTO(const struct mlx5_core_dev *dev, const struct mlx5_vport *vport),
 16	    TP_ARGS(dev, vport),
 17	    TP_STRUCT__entry(__string(devname, dev_name(dev->device))
 18			     __field(unsigned short, vport_id)
 19			     __field(unsigned int,   sched_elem_ix)
 20			     ),
 21	    TP_fast_assign(__assign_str(devname);
 22		    __entry->vport_id = vport->vport;
 23		    __entry->sched_elem_ix = mlx5_esw_qos_vport_get_sched_elem_ix(vport);
 24	    ),
 25	    TP_printk("(%s) vport=%hu sched_elem_ix=%u\n",
 26		      __get_str(devname), __entry->vport_id, __entry->sched_elem_ix
 27		      )
 28);
 29
 30DECLARE_EVENT_CLASS(mlx5_esw_vport_qos_template,
 31		    TP_PROTO(const struct mlx5_core_dev *dev, const struct mlx5_vport *vport,
 32			     u32 bw_share, u32 max_rate),
 33		    TP_ARGS(dev, vport, bw_share, max_rate),
 34		    TP_STRUCT__entry(__string(devname, dev_name(dev->device))
 35				     __field(unsigned short, vport_id)
 36				     __field(unsigned int, sched_elem_ix)
 37				     __field(unsigned int, bw_share)
 38				     __field(unsigned int, max_rate)
 39				     __field(void *, parent)
 40				     ),
 41		    TP_fast_assign(__assign_str(devname);
 42			    __entry->vport_id = vport->vport;
 43			    __entry->sched_elem_ix = mlx5_esw_qos_vport_get_sched_elem_ix(vport);
 44			    __entry->bw_share = bw_share;
 45			    __entry->max_rate = max_rate;
 46			    __entry->parent = mlx5_esw_qos_vport_get_parent(vport);
 47		    ),
 48		    TP_printk("(%s) vport=%hu sched_elem_ix=%u bw_share=%u, max_rate=%u parent=%p\n",
 49			      __get_str(devname), __entry->vport_id, __entry->sched_elem_ix,
 50			      __entry->bw_share, __entry->max_rate, __entry->parent
 51			      )
 52);
 53
 54DEFINE_EVENT(mlx5_esw_vport_qos_template, mlx5_esw_vport_qos_create,
 55	     TP_PROTO(const struct mlx5_core_dev *dev, const struct mlx5_vport *vport,
 56		      u32 bw_share, u32 max_rate),
 57	     TP_ARGS(dev, vport, bw_share, max_rate)
 58	     );
 59
 60DEFINE_EVENT(mlx5_esw_vport_qos_template, mlx5_esw_vport_qos_config,
 61	     TP_PROTO(const struct mlx5_core_dev *dev, const struct mlx5_vport *vport,
 62		      u32 bw_share, u32 max_rate),
 63	     TP_ARGS(dev, vport, bw_share, max_rate)
 64	     );
 65
 66DECLARE_EVENT_CLASS(mlx5_esw_node_qos_template,
 67		    TP_PROTO(const struct mlx5_core_dev *dev,
 68			     const struct mlx5_esw_sched_node *node,
 69			     unsigned int tsar_ix),
 70		    TP_ARGS(dev, node, tsar_ix),
 71		    TP_STRUCT__entry(__string(devname, dev_name(dev->device))
 72				     __field(const void *, node)
 73				     __field(unsigned int, tsar_ix)
 74				     ),
 75		    TP_fast_assign(__assign_str(devname);
 76			    __entry->node = node;
 77			    __entry->tsar_ix = tsar_ix;
 78		    ),
 79		    TP_printk("(%s) node=%p tsar_ix=%u\n",
 80			      __get_str(devname), __entry->node, __entry->tsar_ix
 81			      )
 82);
 83
 84DEFINE_EVENT(mlx5_esw_node_qos_template, mlx5_esw_node_qos_create,
 85	     TP_PROTO(const struct mlx5_core_dev *dev,
 86		      const struct mlx5_esw_sched_node *node,
 87		      unsigned int tsar_ix),
 88	     TP_ARGS(dev, node, tsar_ix)
 89	     );
 90
 91DEFINE_EVENT(mlx5_esw_node_qos_template, mlx5_esw_node_qos_destroy,
 92	     TP_PROTO(const struct mlx5_core_dev *dev,
 93		      const struct mlx5_esw_sched_node *node,
 94		      unsigned int tsar_ix),
 95	     TP_ARGS(dev, node, tsar_ix)
 96	     );
 97
 98TRACE_EVENT(mlx5_esw_node_qos_config,
 99	    TP_PROTO(const struct mlx5_core_dev *dev,
100		     const struct mlx5_esw_sched_node *node,
101		     unsigned int tsar_ix, u32 bw_share, u32 max_rate),
102	    TP_ARGS(dev, node, tsar_ix, bw_share, max_rate),
103	    TP_STRUCT__entry(__string(devname, dev_name(dev->device))
104			     __field(const void *, node)
105			     __field(unsigned int, tsar_ix)
106			     __field(unsigned int, bw_share)
107			     __field(unsigned int, max_rate)
108			     ),
109	    TP_fast_assign(__assign_str(devname);
110		    __entry->node = node;
111		    __entry->tsar_ix = tsar_ix;
112		    __entry->bw_share = bw_share;
113		    __entry->max_rate = max_rate;
114	    ),
115	    TP_printk("(%s) node=%p tsar_ix=%u bw_share=%u max_rate=%u\n",
116		      __get_str(devname), __entry->node, __entry->tsar_ix,
117		      __entry->bw_share, __entry->max_rate
118		      )
119);
120#endif /* _MLX5_ESW_TP_ */
121
122/* This part must be outside protection */
123#undef TRACE_INCLUDE_PATH
124#define TRACE_INCLUDE_PATH esw/diag
125#undef TRACE_INCLUDE_FILE
126#define TRACE_INCLUDE_FILE qos_tracepoint
127#include <trace/define_trace.h>
~/ Read-only file preview.