diff options
Diffstat (limited to 'lib/librte_eventdev')
-rw-r--r-- | lib/librte_eventdev/rte_event_eth_rx_adapter.c | 2 | ||||
-rw-r--r-- | lib/librte_eventdev/rte_event_eth_tx_adapter.c | 54 | ||||
-rw-r--r-- | lib/librte_eventdev/rte_event_timer_adapter.h | 57 | ||||
-rw-r--r-- | lib/librte_eventdev/rte_eventdev.h | 4 |
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 |