aboutsummaryrefslogtreecommitdiffstats
path: root/lib/librte_eventdev
diff options
context:
space:
mode:
Diffstat (limited to 'lib/librte_eventdev')
-rw-r--r--lib/librte_eventdev/rte_event_eth_rx_adapter.c2
-rw-r--r--lib/librte_eventdev/rte_event_eth_tx_adapter.c54
-rw-r--r--lib/librte_eventdev/rte_event_timer_adapter.h57
-rw-r--r--lib/librte_eventdev/rte_eventdev.h4
4 files changed, 42 insertions, 75 deletions
diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
index 8831bc35..8d178be1 100644
--- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
+++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
@@ -912,7 +912,7 @@ rxa_intr_ring_enqueue(struct rte_event_eth_rx_adapter *rx_adapter,
*/
if (err)
RTE_EDEV_LOG_ERR("Failed to enqueue interrupt"
- " to ring: %s", strerror(err));
+ " to ring: %s", strerror(-err));
else
rte_eth_dev_rx_intr_disable(port_id, queue);
}
diff --git a/lib/librte_eventdev/rte_event_eth_tx_adapter.c b/lib/librte_eventdev/rte_event_eth_tx_adapter.c
index ccf8a755..67216a30 100644
--- a/lib/librte_eventdev/rte_event_eth_tx_adapter.c
+++ b/lib/librte_eventdev/rte_event_eth_tx_adapter.c
@@ -59,6 +59,20 @@ do {\
return -EINVAL; \
} while (0)
+#define TXA_CHECK_TXQ(dev, queue) \
+do {\
+ if ((dev)->data->nb_tx_queues == 0) { \
+ RTE_EDEV_LOG_ERR("No tx queues configured"); \
+ return -EINVAL; \
+ } \
+ if ((queue) != -1 && \
+ (uint16_t)(queue) >= (dev)->data->nb_tx_queues) { \
+ RTE_EDEV_LOG_ERR("Invalid tx queue_id %" PRIu16, \
+ (uint16_t)(queue)); \
+ return -EINVAL; \
+ } \
+} while (0)
+
/* Tx retry callback structure */
struct txa_retry {
/* Ethernet port id */
@@ -795,20 +809,35 @@ txa_service_queue_del(uint8_t id,
struct rte_eth_dev_tx_buffer *tb;
uint16_t port_id;
+ txa = txa_service_id_to_data(id);
+ port_id = dev->data->port_id;
+
if (tx_queue_id == -1) {
- uint16_t i;
- int ret = -1;
+ uint16_t i, q, nb_queues;
+ int ret = 0;
- for (i = 0; i < dev->data->nb_tx_queues; i++) {
- ret = txa_service_queue_del(id, dev, i);
- if (ret != 0)
- break;
+ nb_queues = txa->nb_queues;
+ if (nb_queues == 0)
+ return 0;
+
+ i = 0;
+ q = 0;
+ tqi = txa->txa_ethdev[port_id].queues;
+
+ while (i < nb_queues) {
+
+ if (tqi[q].added) {
+ ret = txa_service_queue_del(id, dev, q);
+ if (ret != 0)
+ break;
+ }
+ i++;
+ q++;
}
return ret;
}
txa = txa_service_id_to_data(id);
- port_id = dev->data->port_id;
tqi = txa_service_queue(txa, port_id, tx_queue_id);
if (tqi == NULL || !tqi->added)
@@ -999,11 +1028,7 @@ rte_event_eth_tx_adapter_queue_add(uint8_t id,
TXA_CHECK_OR_ERR_RET(id);
eth_dev = &rte_eth_devices[eth_dev_id];
- if (queue != -1 && (uint16_t)queue >= eth_dev->data->nb_tx_queues) {
- RTE_EDEV_LOG_ERR("Invalid tx queue_id %" PRIu16,
- (uint16_t)queue);
- return -EINVAL;
- }
+ TXA_CHECK_TXQ(eth_dev, queue);
caps = 0;
if (txa_dev_caps_get(id))
@@ -1034,11 +1059,6 @@ rte_event_eth_tx_adapter_queue_del(uint8_t id,
TXA_CHECK_OR_ERR_RET(id);
eth_dev = &rte_eth_devices[eth_dev_id];
- if (queue != -1 && (uint16_t)queue >= eth_dev->data->nb_tx_queues) {
- RTE_EDEV_LOG_ERR("Invalid tx queue_id %" PRIu16,
- (uint16_t)queue);
- return -EINVAL;
- }
caps = 0;
diff --git a/lib/librte_eventdev/rte_event_timer_adapter.h b/lib/librte_eventdev/rte_event_timer_adapter.h
index d4ea6f17..db98dec4 100644
--- a/lib/librte_eventdev/rte_event_timer_adapter.h
+++ b/lib/librte_eventdev/rte_event_timer_adapter.h
@@ -461,61 +461,8 @@ rte_event_timer_adapter_stats_get(struct rte_event_timer_adapter *adapter,
* - 0: Successfully reset;
* - <0: Failure; error code returned.
*/
-int __rte_experimental rte_event_timer_adapter_stats_reset(
- struct rte_event_timer_adapter *adapter);
-
-/**
- * Retrieve the service ID of the event timer adapter. If the adapter doesn't
- * use an rte_service function, this function returns -ESRCH.
- *
- * @param adapter
- * A pointer to an event timer adapter.
- *
- * @param [out] service_id
- * A pointer to a uint32_t, to be filled in with the service id.
- *
- * @return
- * - 0: Success
- * - <0: Error code on failure, if the event dev doesn't use a rte_service
- * function, this function returns -ESRCH.
- */
-int
-rte_event_timer_adapter_service_id_get(struct rte_event_timer_adapter *adapter,
- uint32_t *service_id);
-
-/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
- * Retrieve statistics for an event timer adapter instance.
- *
- * @param adapter
- * A pointer to an event timer adapter structure.
- * @param[out] stats
- * A pointer to a structure to fill with statistics.
- *
- * @return
- * - 0: Successfully retrieved.
- * - <0: Failure; error code returned.
- */
-int rte_event_timer_adapter_stats_get(struct rte_event_timer_adapter *adapter,
- struct rte_event_timer_adapter_stats *stats);
-
-/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
- * Reset statistics for an event timer adapter instance.
- *
- * @param adapter
- * A pointer to an event timer adapter structure.
- *
- * @return
- * - 0: Successfully reset;
- * - <0: Failure; error code returned.
- */
-int rte_event_timer_adapter_stats_reset(
- struct rte_event_timer_adapter *adapter);
+int __rte_experimental
+rte_event_timer_adapter_stats_reset(struct rte_event_timer_adapter *adapter);
/**
* @warning
diff --git a/lib/librte_eventdev/rte_eventdev.h b/lib/librte_eventdev/rte_eventdev.h
index d7eb69d1..ef10a855 100644
--- a/lib/librte_eventdev/rte_eventdev.h
+++ b/lib/librte_eventdev/rte_eventdev.h
@@ -1893,7 +1893,7 @@ rte_event_dev_xstats_names_get(uint8_t dev_id,
* @param ids
* The id numbers of the stats to get. The ids can be got from the stat
* position in the stat list from rte_event_dev_get_xstats_names(), or
- * by using rte_eventdev_get_xstats_by_name()
+ * by using rte_event_dev_xstats_by_name_get().
* @param[out] values
* The values for each stats request by ID.
* @param n
@@ -1921,7 +1921,7 @@ rte_event_dev_xstats_get(uint8_t dev_id,
* The stat name to retrieve
* @param[out] id
* If non-NULL, the numerical id of the stat will be returned, so that further
- * requests for the stat can be got using rte_eventdev_xstats_get, which will
+ * requests for the stat can be got using rte_event_dev_xstats_get, which will
* be faster as it doesn't need to scan a list of names for the stat.
* If the stat cannot be found, the id returned will be (unsigned)-1.
* @return