Skip to content

Commit

Permalink
eventdev: add tracepoints
Browse files Browse the repository at this point in the history
Add tracepoints at important and mandatory APIs for tracing support.

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
Acked-by: David Marchand <david.marchand@redhat.com>
  • Loading branch information
SunilKumarKori authored and david-marchand committed Apr 23, 2020
1 parent 78d4415 commit 32e3268
Show file tree
Hide file tree
Showing 14 changed files with 672 additions and 4 deletions.
3 changes: 3 additions & 0 deletions lib/librte_eventdev/Makefile
Expand Up @@ -21,6 +21,7 @@ LDLIBS += -lrte_mbuf -lrte_cryptodev -lpthread
# library source files
SRCS-y += rte_eventdev.c
SRCS-y += rte_event_ring.c
SRCS-y += eventdev_trace_points.c
SRCS-y += rte_event_eth_rx_adapter.c
SRCS-y += rte_event_timer_adapter.c
SRCS-y += rte_event_crypto_adapter.c
Expand All @@ -31,6 +32,8 @@ SYMLINK-y-include += rte_eventdev.h
SYMLINK-y-include += rte_eventdev_pmd.h
SYMLINK-y-include += rte_eventdev_pmd_pci.h
SYMLINK-y-include += rte_eventdev_pmd_vdev.h
SYMLINK-y-include += rte_eventdev_trace.h
SYMLINK-y-include += rte_eventdev_trace_fp.h
SYMLINK-y-include += rte_event_ring.h
SYMLINK-y-include += rte_event_eth_rx_adapter.h
SYMLINK-y-include += rte_event_timer_adapter.h
Expand Down
173 changes: 173 additions & 0 deletions lib/librte_eventdev/eventdev_trace_points.c
@@ -0,0 +1,173 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(C) 2020 Marvell International Ltd.
*/

#define RTE_TRACE_POINT_REGISTER_SELECT

#include "rte_eventdev_trace.h"

/* Eventdev trace points */
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_configure);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_queue_setup);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_port_setup);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_port_link);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_port_unlink);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_start);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_stop);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_close);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_enq_burst);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_deq_burst);

/* Eventdev Rx adapter trace points */
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_create);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_free);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_queue_add);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_queue_del);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_start);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_stop);

/* Eventdev Tx adapter trace points */
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_create);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_free);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_queue_add);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_queue_del);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_start);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_stop);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_enqueue);

/* Eventdev Timer adapter trace points */
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_create);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_start);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_stop);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_free);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_arm_burst);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_arm_tmo_tick_burst);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_cancel_burst);

/* Eventdev Crypto adapter trace points */
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_create);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_free);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_queue_pair_add);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_queue_pair_del);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_start);
RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_stop);

RTE_INIT(eventdev_trace_init)
{
/* Eventdev trace points */
RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_configure,
lib.eventdev.configure);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_queue_setup,
lib.eventdev.queue.setup);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_port_setup,
lib.eventdev.port.setup);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_port_link,
lib.eventdev.port.link);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_port_unlink,
lib.eventdev.port.unlink);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_start,
lib.eventdev.start);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_stop,
lib.eventdev.stop);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_close,
lib.eventdev.close);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_enq_burst,
lib.eventdev.enq.burst);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_deq_burst,
lib.eventdev.deq.burst);


/* Eventdev Rx adapter trace points */
RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_create,
lib.eventdev.rx.adapter.create);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_free,
lib.eventdev.rx.adapter.free);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_queue_add,
lib.eventdev.rx.adapter.queue.add);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_queue_del,
lib.eventdev.rx.adapter.queue.del);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_start,
lib.eventdev.rx.adapter.start);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_stop,
lib.eventdev.rx.adapter.stop);

/* Eventdev Tx adapter trace points */
RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_create,
lib.eventdev.tx.adapter.create);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_free,
lib.eventdev.tx.adapter.free);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_queue_add,
lib.eventdev.tx.adapter.queue.add);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_queue_del,
lib.eventdev.tx.adapter.queue.del);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_start,
lib.eventdev.tx.adapter.start);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_stop,
lib.eventdev.tx.adapter.stop);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_enqueue,
lib.eventdev.tx.adapter.enq);


/* Eventdev Timer adapter trace points */
RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_create,
lib.eventdev.timer.create);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_start,
lib.eventdev.timer.start);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_stop,
lib.eventdev.timer.stop);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_free,
lib.eventdev.timer.free);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_arm_burst,
lib.eventdev.timer.burst);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_arm_tmo_tick_burst,
lib.eventdev.timer.tick.burst);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_cancel_burst,
lib.eventdev.timer.cancel);

/* Eventdev Crypto adapter trace points */
RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_create,
lib.eventdev.crypto.create);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_free,
lib.eventdev.crypto.free);

RTE_TRACE_POINT_REGISTER(
rte_eventdev_trace_crypto_adapter_queue_pair_add,
lib.eventdev.crypto.queue.add);

RTE_TRACE_POINT_REGISTER(
rte_eventdev_trace_crypto_adapter_queue_pair_del,
lib.eventdev.crypto.queue.del);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_start,
lib.eventdev.crypto.start);

RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_stop,
lib.eventdev.crypto.stop);
}
3 changes: 3 additions & 0 deletions lib/librte_eventdev/meson.build
Expand Up @@ -9,6 +9,7 @@ endif

sources = files('rte_eventdev.c',
'rte_event_ring.c',
'eventdev_trace_points.c',
'rte_event_eth_rx_adapter.c',
'rte_event_timer_adapter.c',
'rte_event_crypto_adapter.c',
Expand All @@ -17,6 +18,8 @@ headers = files('rte_eventdev.h',
'rte_eventdev_pmd.h',
'rte_eventdev_pmd_pci.h',
'rte_eventdev_pmd_vdev.h',
'rte_eventdev_trace.h',
'rte_eventdev_trace_fp.h',
'rte_event_ring.h',
'rte_event_eth_rx_adapter.h',
'rte_event_timer_adapter.h',
Expand Down
10 changes: 10 additions & 0 deletions lib/librte_eventdev/rte_event_crypto_adapter.c
Expand Up @@ -16,6 +16,7 @@

#include "rte_eventdev.h"
#include "rte_eventdev_pmd.h"
#include "rte_eventdev_trace.h"
#include "rte_event_crypto_adapter.h"

#define BATCH_SIZE 32
Expand Down Expand Up @@ -267,6 +268,8 @@ rte_event_crypto_adapter_create_ext(uint8_t id, uint8_t dev_id,

event_crypto_adapter[id] = adapter;

rte_eventdev_trace_crypto_adapter_create(id, dev_id, adapter, conf_arg,
mode);
return 0;
}

Expand Down Expand Up @@ -314,6 +317,7 @@ rte_event_crypto_adapter_free(uint8_t id)
return -EBUSY;
}

rte_eventdev_trace_crypto_adapter_free(id, adapter);
if (adapter->default_cb_arg)
rte_free(adapter->conf_arg);
rte_free(adapter->cdevs);
Expand Down Expand Up @@ -874,6 +878,8 @@ rte_event_crypto_adapter_queue_pair_add(uint8_t id,
rte_service_component_runstate_set(adapter->service_id, 1);
}

rte_eventdev_trace_crypto_adapter_queue_pair_add(id, cdev_id, event,
queue_pair_id);
return 0;
}

Expand Down Expand Up @@ -959,6 +965,8 @@ rte_event_crypto_adapter_queue_pair_del(uint8_t id, uint8_t cdev_id,
adapter->nb_qps);
}

rte_eventdev_trace_crypto_adapter_queue_pair_del(id, cdev_id,
queue_pair_id, ret);
return ret;
}

Expand Down Expand Up @@ -1014,12 +1022,14 @@ rte_event_crypto_adapter_start(uint8_t id)
if (adapter == NULL)
return -EINVAL;

rte_eventdev_trace_crypto_adapter_start(id, adapter);
return eca_adapter_ctrl(id, 1);
}

int
rte_event_crypto_adapter_stop(uint8_t id)
{
rte_eventdev_trace_crypto_adapter_stop(id);
return eca_adapter_ctrl(id, 0);
}

Expand Down
10 changes: 10 additions & 0 deletions lib/librte_eventdev/rte_event_eth_rx_adapter.c
Expand Up @@ -20,6 +20,7 @@

#include "rte_eventdev.h"
#include "rte_eventdev_pmd.h"
#include "rte_eventdev_trace.h"
#include "rte_event_eth_rx_adapter.h"

#define BATCH_SIZE 32
Expand Down Expand Up @@ -1998,6 +1999,8 @@ rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
event_eth_rx_adapter[id] = rx_adapter;
if (conf_cb == rxa_default_conf_cb)
rx_adapter->default_cb_arg = 1;
rte_eventdev_trace_eth_rx_adapter_create(id, dev_id, conf_cb,
conf_arg);
return 0;
}

Expand Down Expand Up @@ -2047,6 +2050,7 @@ rte_event_eth_rx_adapter_free(uint8_t id)
rte_free(rx_adapter);
event_eth_rx_adapter[id] = NULL;

rte_eventdev_trace_eth_rx_adapter_free(id);
return 0;
}

Expand Down Expand Up @@ -2142,6 +2146,8 @@ rte_event_eth_rx_adapter_queue_add(uint8_t id,
rte_spinlock_unlock(&rx_adapter->rx_lock);
}

rte_eventdev_trace_eth_rx_adapter_queue_add(id, eth_dev_id,
rx_queue_id, queue_conf, ret);
if (ret)
return ret;

Expand Down Expand Up @@ -2263,18 +2269,22 @@ rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
rxa_sw_adapter_queue_count(rx_adapter));
}

rte_eventdev_trace_eth_rx_adapter_queue_del(id, eth_dev_id,
rx_queue_id, ret);
return ret;
}

int
rte_event_eth_rx_adapter_start(uint8_t id)
{
rte_eventdev_trace_eth_rx_adapter_start(id);
return rxa_ctrl(id, 1);
}

int
rte_event_eth_rx_adapter_stop(uint8_t id)
{
rte_eventdev_trace_eth_rx_adapter_stop(id);
return rxa_ctrl(id, 0);
}

Expand Down
13 changes: 12 additions & 1 deletion lib/librte_eventdev/rte_event_eth_tx_adapter.c
Expand Up @@ -6,6 +6,7 @@
#include <rte_ethdev.h>

#include "rte_eventdev_pmd.h"
#include "rte_eventdev_trace.h"
#include "rte_event_eth_tx_adapter.h"

#define TXA_BATCH_SIZE 32
Expand Down Expand Up @@ -942,7 +943,8 @@ rte_event_eth_tx_adapter_create(uint8_t id, uint8_t dev_id,
txa_dev_id_array[id] = TXA_INVALID_DEV_ID;
return ret;
}

rte_eventdev_trace_eth_tx_adapter_create(id, dev_id, NULL, port_conf,
ret);
txa_dev_id_array[id] = dev_id;
return 0;
}
Expand Down Expand Up @@ -984,6 +986,8 @@ rte_event_eth_tx_adapter_create_ext(uint8_t id, uint8_t dev_id,
return ret;
}

rte_eventdev_trace_eth_tx_adapter_create(id, dev_id, conf_cb, conf_arg,
ret);
txa_dev_id_array[id] = dev_id;
return 0;
}
Expand Down Expand Up @@ -1012,6 +1016,7 @@ rte_event_eth_tx_adapter_free(uint8_t id)
ret = txa_service_adapter_free(id);
txa_dev_id_array[id] = TXA_INVALID_DEV_ID;

rte_eventdev_trace_eth_tx_adapter_free(id, ret);
return ret;
}

Expand Down Expand Up @@ -1043,6 +1048,8 @@ rte_event_eth_tx_adapter_queue_add(uint8_t id,
else
ret = txa_service_queue_add(id, txa_evdev(id), eth_dev, queue);

rte_eventdev_trace_eth_tx_adapter_queue_add(id, eth_dev_id, queue,
ret);
return ret;
}

Expand Down Expand Up @@ -1073,6 +1080,8 @@ rte_event_eth_tx_adapter_queue_del(uint8_t id,
else
ret = txa_service_queue_del(id, eth_dev, queue);

rte_eventdev_trace_eth_tx_adapter_queue_del(id, eth_dev_id, queue,
ret);
return ret;
}

Expand All @@ -1094,6 +1103,7 @@ rte_event_eth_tx_adapter_start(uint8_t id)
ret = txa_dev_start(id) ? txa_dev_start(id)(id, txa_evdev(id)) : 0;
if (ret == 0)
ret = txa_service_start(id);
rte_eventdev_trace_eth_tx_adapter_start(id, ret);
return ret;
}

Expand Down Expand Up @@ -1154,5 +1164,6 @@ rte_event_eth_tx_adapter_stop(uint8_t id)
ret = txa_dev_stop(id) ? txa_dev_stop(id)(id, txa_evdev(id)) : 0;
if (ret == 0)
ret = txa_service_stop(id);
rte_eventdev_trace_eth_tx_adapter_stop(id, ret);
return ret;
}
2 changes: 2 additions & 0 deletions lib/librte_eventdev/rte_event_eth_tx_adapter.h
Expand Up @@ -369,6 +369,8 @@ rte_event_eth_tx_adapter_enqueue(uint8_t dev_id,
return 0;
}
#endif
rte_eventdev_trace_eth_tx_adapter_enqueue(dev_id, port_id, ev,
nb_events, flags);
if (flags)
return dev->txa_enqueue_same_dest(dev->data->ports[port_id],
ev, nb_events);
Expand Down

0 comments on commit 32e3268

Please sign in to comment.