13089cf6dSJesse Brandeburg /* SPDX-License-Identifier: GPL-2.0 */ 23089cf6dSJesse Brandeburg /* Copyright (C) 2021 Intel Corporation. */ 33089cf6dSJesse Brandeburg 43089cf6dSJesse Brandeburg /* Modeled on trace-events-sample.h */ 53089cf6dSJesse Brandeburg 63089cf6dSJesse Brandeburg /* The trace subsystem name for ice will be "ice". 73089cf6dSJesse Brandeburg * 83089cf6dSJesse Brandeburg * This file is named ice_trace.h. 93089cf6dSJesse Brandeburg * 103089cf6dSJesse Brandeburg * Since this include file's name is different from the trace 113089cf6dSJesse Brandeburg * subsystem name, we'll have to define TRACE_INCLUDE_FILE at the end 123089cf6dSJesse Brandeburg * of this file. 133089cf6dSJesse Brandeburg */ 143089cf6dSJesse Brandeburg #undef TRACE_SYSTEM 153089cf6dSJesse Brandeburg #define TRACE_SYSTEM ice 163089cf6dSJesse Brandeburg 173089cf6dSJesse Brandeburg /* See trace-events-sample.h for a detailed description of why this 183089cf6dSJesse Brandeburg * guard clause is different from most normal include files. 193089cf6dSJesse Brandeburg */ 203089cf6dSJesse Brandeburg #if !defined(_ICE_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 213089cf6dSJesse Brandeburg #define _ICE_TRACE_H_ 223089cf6dSJesse Brandeburg 233089cf6dSJesse Brandeburg #include <linux/tracepoint.h> 24*d129c2a2SPawel Chmielewski #include "ice_eswitch_br.h" 253089cf6dSJesse Brandeburg 263089cf6dSJesse Brandeburg /* ice_trace() macro enables shared code to refer to trace points 273089cf6dSJesse Brandeburg * like: 283089cf6dSJesse Brandeburg * 293089cf6dSJesse Brandeburg * trace_ice_example(args...) 303089cf6dSJesse Brandeburg * 313089cf6dSJesse Brandeburg * ... as: 323089cf6dSJesse Brandeburg * 333089cf6dSJesse Brandeburg * ice_trace(example, args...) 343089cf6dSJesse Brandeburg * 353089cf6dSJesse Brandeburg * ... to resolve to the PF version of the tracepoint without 363089cf6dSJesse Brandeburg * ifdefs, and to allow tracepoints to be disabled entirely at build 373089cf6dSJesse Brandeburg * time. 383089cf6dSJesse Brandeburg * 393089cf6dSJesse Brandeburg * Trace point should always be referred to in the driver via this 403089cf6dSJesse Brandeburg * macro. 413089cf6dSJesse Brandeburg * 423089cf6dSJesse Brandeburg * Similarly, ice_trace_enabled(trace_name) wraps references to 433089cf6dSJesse Brandeburg * trace_ice_<trace_name>_enabled() functions. 443089cf6dSJesse Brandeburg * @trace_name: name of tracepoint 453089cf6dSJesse Brandeburg */ 463089cf6dSJesse Brandeburg #define _ICE_TRACE_NAME(trace_name) (trace_##ice##_##trace_name) 473089cf6dSJesse Brandeburg #define ICE_TRACE_NAME(trace_name) _ICE_TRACE_NAME(trace_name) 483089cf6dSJesse Brandeburg 493089cf6dSJesse Brandeburg #define ice_trace(trace_name, args...) ICE_TRACE_NAME(trace_name)(args) 503089cf6dSJesse Brandeburg 513089cf6dSJesse Brandeburg #define ice_trace_enabled(trace_name) ICE_TRACE_NAME(trace_name##_enabled)() 523089cf6dSJesse Brandeburg 533089cf6dSJesse Brandeburg /* This is for events common to PF. Corresponding versions will be named 543089cf6dSJesse Brandeburg * trace_ice_*. The ice_trace() macro above will select the right trace point 553089cf6dSJesse Brandeburg * name for the driver. 563089cf6dSJesse Brandeburg */ 573089cf6dSJesse Brandeburg 583089cf6dSJesse Brandeburg /* Begin tracepoints */ 593089cf6dSJesse Brandeburg 603089cf6dSJesse Brandeburg /* Global tracepoints */ 613089cf6dSJesse Brandeburg 623089cf6dSJesse Brandeburg /* Events related to DIM, q_vectors and ring containers */ 633089cf6dSJesse Brandeburg DECLARE_EVENT_CLASS(ice_rx_dim_template, 643089cf6dSJesse Brandeburg TP_PROTO(struct ice_q_vector *q_vector, struct dim *dim), 653089cf6dSJesse Brandeburg TP_ARGS(q_vector, dim), 663089cf6dSJesse Brandeburg TP_STRUCT__entry(__field(struct ice_q_vector *, q_vector) 673089cf6dSJesse Brandeburg __field(struct dim *, dim) 68e72bba21SMaciej Fijalkowski __string(devname, q_vector->rx.rx_ring->netdev->name)), 693089cf6dSJesse Brandeburg 703089cf6dSJesse Brandeburg TP_fast_assign(__entry->q_vector = q_vector; 713089cf6dSJesse Brandeburg __entry->dim = dim; 72e72bba21SMaciej Fijalkowski __assign_str(devname, q_vector->rx.rx_ring->netdev->name);), 733089cf6dSJesse Brandeburg 743089cf6dSJesse Brandeburg TP_printk("netdev: %s Rx-Q: %d dim-state: %d dim-profile: %d dim-tune: %d dim-st-right: %d dim-st-left: %d dim-tired: %d", 753089cf6dSJesse Brandeburg __get_str(devname), 76e72bba21SMaciej Fijalkowski __entry->q_vector->rx.rx_ring->q_index, 773089cf6dSJesse Brandeburg __entry->dim->state, 783089cf6dSJesse Brandeburg __entry->dim->profile_ix, 793089cf6dSJesse Brandeburg __entry->dim->tune_state, 803089cf6dSJesse Brandeburg __entry->dim->steps_right, 813089cf6dSJesse Brandeburg __entry->dim->steps_left, 823089cf6dSJesse Brandeburg __entry->dim->tired) 833089cf6dSJesse Brandeburg ); 843089cf6dSJesse Brandeburg 853089cf6dSJesse Brandeburg DEFINE_EVENT(ice_rx_dim_template, ice_rx_dim_work, 863089cf6dSJesse Brandeburg TP_PROTO(struct ice_q_vector *q_vector, struct dim *dim), 873089cf6dSJesse Brandeburg TP_ARGS(q_vector, dim) 883089cf6dSJesse Brandeburg ); 893089cf6dSJesse Brandeburg 903089cf6dSJesse Brandeburg DECLARE_EVENT_CLASS(ice_tx_dim_template, 913089cf6dSJesse Brandeburg TP_PROTO(struct ice_q_vector *q_vector, struct dim *dim), 923089cf6dSJesse Brandeburg TP_ARGS(q_vector, dim), 933089cf6dSJesse Brandeburg TP_STRUCT__entry(__field(struct ice_q_vector *, q_vector) 943089cf6dSJesse Brandeburg __field(struct dim *, dim) 95e72bba21SMaciej Fijalkowski __string(devname, q_vector->tx.tx_ring->netdev->name)), 963089cf6dSJesse Brandeburg 973089cf6dSJesse Brandeburg TP_fast_assign(__entry->q_vector = q_vector; 983089cf6dSJesse Brandeburg __entry->dim = dim; 99e72bba21SMaciej Fijalkowski __assign_str(devname, q_vector->tx.tx_ring->netdev->name);), 1003089cf6dSJesse Brandeburg 1013089cf6dSJesse Brandeburg TP_printk("netdev: %s Tx-Q: %d dim-state: %d dim-profile: %d dim-tune: %d dim-st-right: %d dim-st-left: %d dim-tired: %d", 1023089cf6dSJesse Brandeburg __get_str(devname), 103e72bba21SMaciej Fijalkowski __entry->q_vector->tx.tx_ring->q_index, 1043089cf6dSJesse Brandeburg __entry->dim->state, 1053089cf6dSJesse Brandeburg __entry->dim->profile_ix, 1063089cf6dSJesse Brandeburg __entry->dim->tune_state, 1073089cf6dSJesse Brandeburg __entry->dim->steps_right, 1083089cf6dSJesse Brandeburg __entry->dim->steps_left, 1093089cf6dSJesse Brandeburg __entry->dim->tired) 1103089cf6dSJesse Brandeburg ); 1113089cf6dSJesse Brandeburg 1123089cf6dSJesse Brandeburg DEFINE_EVENT(ice_tx_dim_template, ice_tx_dim_work, 1133089cf6dSJesse Brandeburg TP_PROTO(struct ice_q_vector *q_vector, struct dim *dim), 1143089cf6dSJesse Brandeburg TP_ARGS(q_vector, dim) 1153089cf6dSJesse Brandeburg ); 1163089cf6dSJesse Brandeburg 1173089cf6dSJesse Brandeburg /* Events related to a vsi & ring */ 1183089cf6dSJesse Brandeburg DECLARE_EVENT_CLASS(ice_tx_template, 119e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_tx_ring *ring, struct ice_tx_desc *desc, 1203089cf6dSJesse Brandeburg struct ice_tx_buf *buf), 1213089cf6dSJesse Brandeburg 1223089cf6dSJesse Brandeburg TP_ARGS(ring, desc, buf), 1233089cf6dSJesse Brandeburg TP_STRUCT__entry(__field(void *, ring) 1243089cf6dSJesse Brandeburg __field(void *, desc) 1253089cf6dSJesse Brandeburg __field(void *, buf) 1263089cf6dSJesse Brandeburg __string(devname, ring->netdev->name)), 1273089cf6dSJesse Brandeburg 1283089cf6dSJesse Brandeburg TP_fast_assign(__entry->ring = ring; 1293089cf6dSJesse Brandeburg __entry->desc = desc; 1303089cf6dSJesse Brandeburg __entry->buf = buf; 1313089cf6dSJesse Brandeburg __assign_str(devname, ring->netdev->name);), 1323089cf6dSJesse Brandeburg 1333089cf6dSJesse Brandeburg TP_printk("netdev: %s ring: %pK desc: %pK buf %pK", __get_str(devname), 1343089cf6dSJesse Brandeburg __entry->ring, __entry->desc, __entry->buf) 1353089cf6dSJesse Brandeburg ); 1363089cf6dSJesse Brandeburg 1373089cf6dSJesse Brandeburg #define DEFINE_TX_TEMPLATE_OP_EVENT(name) \ 1383089cf6dSJesse Brandeburg DEFINE_EVENT(ice_tx_template, name, \ 139e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_tx_ring *ring, \ 1403089cf6dSJesse Brandeburg struct ice_tx_desc *desc, \ 1413089cf6dSJesse Brandeburg struct ice_tx_buf *buf), \ 1423089cf6dSJesse Brandeburg TP_ARGS(ring, desc, buf)) 1433089cf6dSJesse Brandeburg 1443089cf6dSJesse Brandeburg DEFINE_TX_TEMPLATE_OP_EVENT(ice_clean_tx_irq); 1453089cf6dSJesse Brandeburg DEFINE_TX_TEMPLATE_OP_EVENT(ice_clean_tx_irq_unmap); 1463089cf6dSJesse Brandeburg DEFINE_TX_TEMPLATE_OP_EVENT(ice_clean_tx_irq_unmap_eop); 1473089cf6dSJesse Brandeburg 1483089cf6dSJesse Brandeburg DECLARE_EVENT_CLASS(ice_rx_template, 149e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_rx_ring *ring, union ice_32b_rx_flex_desc *desc), 1503089cf6dSJesse Brandeburg 1513089cf6dSJesse Brandeburg TP_ARGS(ring, desc), 1523089cf6dSJesse Brandeburg 1533089cf6dSJesse Brandeburg TP_STRUCT__entry(__field(void *, ring) 1543089cf6dSJesse Brandeburg __field(void *, desc) 1553089cf6dSJesse Brandeburg __string(devname, ring->netdev->name)), 1563089cf6dSJesse Brandeburg 1573089cf6dSJesse Brandeburg TP_fast_assign(__entry->ring = ring; 1583089cf6dSJesse Brandeburg __entry->desc = desc; 1593089cf6dSJesse Brandeburg __assign_str(devname, ring->netdev->name);), 1603089cf6dSJesse Brandeburg 1613089cf6dSJesse Brandeburg TP_printk("netdev: %s ring: %pK desc: %pK", __get_str(devname), 1623089cf6dSJesse Brandeburg __entry->ring, __entry->desc) 1633089cf6dSJesse Brandeburg ); 1643089cf6dSJesse Brandeburg DEFINE_EVENT(ice_rx_template, ice_clean_rx_irq, 165e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_rx_ring *ring, union ice_32b_rx_flex_desc *desc), 1663089cf6dSJesse Brandeburg TP_ARGS(ring, desc) 1673089cf6dSJesse Brandeburg ); 1683089cf6dSJesse Brandeburg 1693089cf6dSJesse Brandeburg DECLARE_EVENT_CLASS(ice_rx_indicate_template, 170e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_rx_ring *ring, union ice_32b_rx_flex_desc *desc, 1713089cf6dSJesse Brandeburg struct sk_buff *skb), 1723089cf6dSJesse Brandeburg 1733089cf6dSJesse Brandeburg TP_ARGS(ring, desc, skb), 1743089cf6dSJesse Brandeburg 1753089cf6dSJesse Brandeburg TP_STRUCT__entry(__field(void *, ring) 1763089cf6dSJesse Brandeburg __field(void *, desc) 1773089cf6dSJesse Brandeburg __field(void *, skb) 1783089cf6dSJesse Brandeburg __string(devname, ring->netdev->name)), 1793089cf6dSJesse Brandeburg 1803089cf6dSJesse Brandeburg TP_fast_assign(__entry->ring = ring; 1813089cf6dSJesse Brandeburg __entry->desc = desc; 1823089cf6dSJesse Brandeburg __entry->skb = skb; 1833089cf6dSJesse Brandeburg __assign_str(devname, ring->netdev->name);), 1843089cf6dSJesse Brandeburg 1853089cf6dSJesse Brandeburg TP_printk("netdev: %s ring: %pK desc: %pK skb %pK", __get_str(devname), 1863089cf6dSJesse Brandeburg __entry->ring, __entry->desc, __entry->skb) 1873089cf6dSJesse Brandeburg ); 1883089cf6dSJesse Brandeburg 1893089cf6dSJesse Brandeburg DEFINE_EVENT(ice_rx_indicate_template, ice_clean_rx_irq_indicate, 190e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_rx_ring *ring, union ice_32b_rx_flex_desc *desc, 1913089cf6dSJesse Brandeburg struct sk_buff *skb), 1923089cf6dSJesse Brandeburg TP_ARGS(ring, desc, skb) 1933089cf6dSJesse Brandeburg ); 1943089cf6dSJesse Brandeburg 1953089cf6dSJesse Brandeburg DECLARE_EVENT_CLASS(ice_xmit_template, 196e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_tx_ring *ring, struct sk_buff *skb), 1973089cf6dSJesse Brandeburg 1983089cf6dSJesse Brandeburg TP_ARGS(ring, skb), 1993089cf6dSJesse Brandeburg 2003089cf6dSJesse Brandeburg TP_STRUCT__entry(__field(void *, ring) 2013089cf6dSJesse Brandeburg __field(void *, skb) 2023089cf6dSJesse Brandeburg __string(devname, ring->netdev->name)), 2033089cf6dSJesse Brandeburg 2043089cf6dSJesse Brandeburg TP_fast_assign(__entry->ring = ring; 2053089cf6dSJesse Brandeburg __entry->skb = skb; 2063089cf6dSJesse Brandeburg __assign_str(devname, ring->netdev->name);), 2073089cf6dSJesse Brandeburg 2083089cf6dSJesse Brandeburg TP_printk("netdev: %s skb: %pK ring: %pK", __get_str(devname), 2093089cf6dSJesse Brandeburg __entry->skb, __entry->ring) 2103089cf6dSJesse Brandeburg ); 2113089cf6dSJesse Brandeburg 2123089cf6dSJesse Brandeburg #define DEFINE_XMIT_TEMPLATE_OP_EVENT(name) \ 2133089cf6dSJesse Brandeburg DEFINE_EVENT(ice_xmit_template, name, \ 214e72bba21SMaciej Fijalkowski TP_PROTO(struct ice_tx_ring *ring, struct sk_buff *skb), \ 2153089cf6dSJesse Brandeburg TP_ARGS(ring, skb)) 2163089cf6dSJesse Brandeburg 2173089cf6dSJesse Brandeburg DEFINE_XMIT_TEMPLATE_OP_EVENT(ice_xmit_frame_ring); 2183089cf6dSJesse Brandeburg DEFINE_XMIT_TEMPLATE_OP_EVENT(ice_xmit_frame_ring_drop); 2193089cf6dSJesse Brandeburg 2204c120218SJacob Keller DECLARE_EVENT_CLASS(ice_tx_tstamp_template, 2214c120218SJacob Keller TP_PROTO(struct sk_buff *skb, int idx), 2224c120218SJacob Keller 2234c120218SJacob Keller TP_ARGS(skb, idx), 2244c120218SJacob Keller 2254c120218SJacob Keller TP_STRUCT__entry(__field(void *, skb) 2264c120218SJacob Keller __field(int, idx)), 2274c120218SJacob Keller 2284c120218SJacob Keller TP_fast_assign(__entry->skb = skb; 2294c120218SJacob Keller __entry->idx = idx;), 2304c120218SJacob Keller 2314c120218SJacob Keller TP_printk("skb %pK idx %d", 2324c120218SJacob Keller __entry->skb, __entry->idx) 2334c120218SJacob Keller ); 2344c120218SJacob Keller #define DEFINE_TX_TSTAMP_OP_EVENT(name) \ 2354c120218SJacob Keller DEFINE_EVENT(ice_tx_tstamp_template, name, \ 2364c120218SJacob Keller TP_PROTO(struct sk_buff *skb, int idx), \ 2374c120218SJacob Keller TP_ARGS(skb, idx)) 2384c120218SJacob Keller 2394c120218SJacob Keller DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_request); 2404c120218SJacob Keller DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_fw_req); 2414c120218SJacob Keller DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_fw_done); 2424c120218SJacob Keller DEFINE_TX_TSTAMP_OP_EVENT(ice_tx_tstamp_complete); 2434c120218SJacob Keller 244*d129c2a2SPawel Chmielewski DECLARE_EVENT_CLASS(ice_esw_br_fdb_template, 245*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_fdb_entry *fdb), 246*d129c2a2SPawel Chmielewski TP_ARGS(fdb), 247*d129c2a2SPawel Chmielewski TP_STRUCT__entry(__array(char, dev_name, IFNAMSIZ) 248*d129c2a2SPawel Chmielewski __array(unsigned char, addr, ETH_ALEN) 249*d129c2a2SPawel Chmielewski __field(u16, vid) 250*d129c2a2SPawel Chmielewski __field(int, flags)), 251*d129c2a2SPawel Chmielewski TP_fast_assign(strscpy(__entry->dev_name, 252*d129c2a2SPawel Chmielewski netdev_name(fdb->dev), 253*d129c2a2SPawel Chmielewski IFNAMSIZ); 254*d129c2a2SPawel Chmielewski memcpy(__entry->addr, fdb->data.addr, ETH_ALEN); 255*d129c2a2SPawel Chmielewski __entry->vid = fdb->data.vid; 256*d129c2a2SPawel Chmielewski __entry->flags = fdb->flags;), 257*d129c2a2SPawel Chmielewski TP_printk("net_device=%s addr=%pM vid=%u flags=%x", 258*d129c2a2SPawel Chmielewski __entry->dev_name, 259*d129c2a2SPawel Chmielewski __entry->addr, 260*d129c2a2SPawel Chmielewski __entry->vid, 261*d129c2a2SPawel Chmielewski __entry->flags) 262*d129c2a2SPawel Chmielewski ); 263*d129c2a2SPawel Chmielewski 264*d129c2a2SPawel Chmielewski DEFINE_EVENT(ice_esw_br_fdb_template, 265*d129c2a2SPawel Chmielewski ice_eswitch_br_fdb_entry_create, 266*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_fdb_entry *fdb), 267*d129c2a2SPawel Chmielewski TP_ARGS(fdb) 268*d129c2a2SPawel Chmielewski ); 269*d129c2a2SPawel Chmielewski 270*d129c2a2SPawel Chmielewski DEFINE_EVENT(ice_esw_br_fdb_template, 271*d129c2a2SPawel Chmielewski ice_eswitch_br_fdb_entry_find_and_delete, 272*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_fdb_entry *fdb), 273*d129c2a2SPawel Chmielewski TP_ARGS(fdb) 274*d129c2a2SPawel Chmielewski ); 275*d129c2a2SPawel Chmielewski 276*d129c2a2SPawel Chmielewski DECLARE_EVENT_CLASS(ice_esw_br_vlan_template, 277*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_vlan *vlan), 278*d129c2a2SPawel Chmielewski TP_ARGS(vlan), 279*d129c2a2SPawel Chmielewski TP_STRUCT__entry(__field(u16, vid) 280*d129c2a2SPawel Chmielewski __field(u16, flags)), 281*d129c2a2SPawel Chmielewski TP_fast_assign(__entry->vid = vlan->vid; 282*d129c2a2SPawel Chmielewski __entry->flags = vlan->flags;), 283*d129c2a2SPawel Chmielewski TP_printk("vid=%u flags=%x", 284*d129c2a2SPawel Chmielewski __entry->vid, 285*d129c2a2SPawel Chmielewski __entry->flags) 286*d129c2a2SPawel Chmielewski ); 287*d129c2a2SPawel Chmielewski 288*d129c2a2SPawel Chmielewski DEFINE_EVENT(ice_esw_br_vlan_template, 289*d129c2a2SPawel Chmielewski ice_eswitch_br_vlan_create, 290*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_vlan *vlan), 291*d129c2a2SPawel Chmielewski TP_ARGS(vlan) 292*d129c2a2SPawel Chmielewski ); 293*d129c2a2SPawel Chmielewski 294*d129c2a2SPawel Chmielewski DEFINE_EVENT(ice_esw_br_vlan_template, 295*d129c2a2SPawel Chmielewski ice_eswitch_br_vlan_cleanup, 296*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_vlan *vlan), 297*d129c2a2SPawel Chmielewski TP_ARGS(vlan) 298*d129c2a2SPawel Chmielewski ); 299*d129c2a2SPawel Chmielewski 300*d129c2a2SPawel Chmielewski #define ICE_ESW_BR_PORT_NAME_L 16 301*d129c2a2SPawel Chmielewski 302*d129c2a2SPawel Chmielewski DECLARE_EVENT_CLASS(ice_esw_br_port_template, 303*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_port *port), 304*d129c2a2SPawel Chmielewski TP_ARGS(port), 305*d129c2a2SPawel Chmielewski TP_STRUCT__entry(__field(u16, vport_num) 306*d129c2a2SPawel Chmielewski __array(char, port_type, ICE_ESW_BR_PORT_NAME_L)), 307*d129c2a2SPawel Chmielewski TP_fast_assign(__entry->vport_num = port->vsi_idx; 308*d129c2a2SPawel Chmielewski if (port->type == ICE_ESWITCH_BR_UPLINK_PORT) 309*d129c2a2SPawel Chmielewski strscpy(__entry->port_type, 310*d129c2a2SPawel Chmielewski "Uplink", 311*d129c2a2SPawel Chmielewski ICE_ESW_BR_PORT_NAME_L); 312*d129c2a2SPawel Chmielewski else 313*d129c2a2SPawel Chmielewski strscpy(__entry->port_type, 314*d129c2a2SPawel Chmielewski "VF Representor", 315*d129c2a2SPawel Chmielewski ICE_ESW_BR_PORT_NAME_L);), 316*d129c2a2SPawel Chmielewski TP_printk("vport_num=%u port type=%s", 317*d129c2a2SPawel Chmielewski __entry->vport_num, 318*d129c2a2SPawel Chmielewski __entry->port_type) 319*d129c2a2SPawel Chmielewski ); 320*d129c2a2SPawel Chmielewski 321*d129c2a2SPawel Chmielewski DEFINE_EVENT(ice_esw_br_port_template, 322*d129c2a2SPawel Chmielewski ice_eswitch_br_port_link, 323*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_port *port), 324*d129c2a2SPawel Chmielewski TP_ARGS(port) 325*d129c2a2SPawel Chmielewski ); 326*d129c2a2SPawel Chmielewski 327*d129c2a2SPawel Chmielewski DEFINE_EVENT(ice_esw_br_port_template, 328*d129c2a2SPawel Chmielewski ice_eswitch_br_port_unlink, 329*d129c2a2SPawel Chmielewski TP_PROTO(struct ice_esw_br_port *port), 330*d129c2a2SPawel Chmielewski TP_ARGS(port) 331*d129c2a2SPawel Chmielewski ); 332*d129c2a2SPawel Chmielewski 3333089cf6dSJesse Brandeburg /* End tracepoints */ 3343089cf6dSJesse Brandeburg 3353089cf6dSJesse Brandeburg #endif /* _ICE_TRACE_H_ */ 3363089cf6dSJesse Brandeburg /* This must be outside ifdef _ICE_TRACE_H */ 3373089cf6dSJesse Brandeburg 3383089cf6dSJesse Brandeburg /* This trace include file is not located in the .../include/trace 3393089cf6dSJesse Brandeburg * with the kernel tracepoint definitions, because we're a loadable 3403089cf6dSJesse Brandeburg * module. 3413089cf6dSJesse Brandeburg */ 3423089cf6dSJesse Brandeburg #undef TRACE_INCLUDE_PATH 3433089cf6dSJesse Brandeburg #define TRACE_INCLUDE_PATH . 3443089cf6dSJesse Brandeburg #undef TRACE_INCLUDE_FILE 3453089cf6dSJesse Brandeburg #define TRACE_INCLUDE_FILE ../../drivers/net/ethernet/intel/ice/ice_trace 3463089cf6dSJesse Brandeburg #include <trace/define_trace.h> 347