* |WARNING| pw116098-116100 [PATCH] [3/3] doc: added eth Tx adapter queue start stop APIs
@ 2022-09-08 17:31 dpdklab
0 siblings, 0 replies; only message in thread
From: dpdklab @ 2022-09-08 17:31 UTC (permalink / raw)
To: test-report; +Cc: dpdk-test-reports
[-- Attachment #1: Type: text/plain, Size: 12006 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/116098
_apply patch failure_
Submitter: Naga Harish K S V <s.v.naga.harish.k@intel.com>
Date: Thursday, September 08 2022 17:12:42
Applied on: CommitID:4aee6110bb10b0225fa9562f2e48af233a9058a1
Apply patch set 116098-116100 failed:
Checking patch lib/eventdev/eventdev_pmd.h...
error: while searching for:
typedef int (*eventdev_eth_tx_adapter_instance_get_t)
(uint16_t eth_dev_id, uint16_t tx_queue_id, uint8_t *txa_inst_id);
/** Event device operations function pointer table */
struct eventdev_ops {
error: patch failed: lib/eventdev/eventdev_pmd.h:1294
error: while searching for:
/**< Reset eth Tx adapter statistics */
eventdev_eth_tx_adapter_instance_get_t eth_tx_adapter_instance_get;
/**< Get Tx adapter instance id for Tx queue */
eventdev_selftest dev_selftest;
/**< Start eventdev Selftest */
error: patch failed: lib/eventdev/eventdev_pmd.h:1409
Checking patch lib/eventdev/rte_event_eth_tx_adapter.c...
error: while searching for:
#define txa_dev_instance_get(id) \
txa_evdev(id)->dev_ops->eth_tx_adapter_instance_get
#define RTE_EVENT_ETH_TX_ADAPTER_ID_VALID_OR_ERR_RET(id, retval) \
do { \
if (!txa_valid_id(id)) { \
error: patch failed: lib/eventdev/rte_event_eth_tx_adapter.c:47
Hunk #2 succeeded at 88 (offset -12 lines).
Hunk #3 succeeded at 525 (offset -40 lines).
Hunk #4 succeeded at 539 (offset -40 lines).
Hunk #5 succeeded at 577 (offset -40 lines).
Hunk #6 succeeded at 642 (offset -40 lines).
Hunk #7 succeeded at 838 (offset -40 lines).
Hunk #8 succeeded at 857 (offset -40 lines).
Hunk #9 succeeded at 916 (offset -40 lines).
error: while searching for:
return -EINVAL;
}
error: patch failed: lib/eventdev/rte_event_eth_tx_adapter.c:1320
Checking patch lib/eventdev/rte_event_eth_tx_adapter.h...
error: while searching for:
* - rte_event_eth_tx_adapter_event_port_get()
* - rte_event_eth_tx_adapter_service_id_get()
* - rte_event_eth_tx_adapter_instance_get()
*
* The application creates the adapter using
* rte_event_eth_tx_adapter_create() or rte_event_eth_tx_adapter_create_ext().
error: patch failed: lib/eventdev/rte_event_eth_tx_adapter.h:35
error: while searching for:
rte_event_eth_tx_adapter_instance_get(uint16_t eth_dev_id,
uint16_t tx_queue_id,
uint8_t *txa_inst_id);
#ifdef __cplusplus
}
error: patch failed: lib/eventdev/rte_event_eth_tx_adapter.h:446
Checking patch lib/eventdev/version.map...
error: while searching for:
# added in 22.11
rte_event_eth_rx_adapter_instance_get;
rte_event_eth_tx_adapter_instance_get;
};
INTERNAL {
error: patch failed: lib/eventdev/version.map:116
Applying patch lib/eventdev/eventdev_pmd.h with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applying patch lib/eventdev/rte_event_eth_tx_adapter.c with 2 rejects...
Rejected hunk #1.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Hunk #8 applied cleanly.
Hunk #9 applied cleanly.
Rejected hunk #10.
Applying patch lib/eventdev/rte_event_eth_tx_adapter.h with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applying patch lib/eventdev/version.map with 1 reject...
Rejected hunk #1.
diff a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h (rejected hunks)
@@ -1294,6 +1294,43 @@ typedef int (*eventdev_eth_tx_adapter_stats_reset_t)(uint8_t id,
typedef int (*eventdev_eth_tx_adapter_instance_get_t)
(uint16_t eth_dev_id, uint16_t tx_queue_id, uint8_t *txa_inst_id);
+/**
+ * Start a Tx queue that is assigned to TX adapter instance
+ *
+ * @param id
+ * Adapter identifier
+ *
+ * @param eth_dev_id
+ * Port identifier of Ethernet device
+ *
+ * @param tx_queue_id
+ * Ethernet device TX queue index
+ *
+ * @return
+ * - 0: Success
+ * - <0: Error code on failure
+ */
+typedef int (*eventdev_eth_tx_adapter_queue_start)
+ (uint8_t id, uint16_t eth_dev_id, uint16_t tx_queue_id);
+
+/**
+ * Stop a Tx queue that is assigned to TX adapter instance
+ *
+ * @param id
+ * Adapter identifier
+ *
+ * @param eth_dev_id
+ * Port identifier of Ethernet device
+ *
+ * @param tx_queue_id
+ * Ethernet device TX queue index
+ *
+ * @return
+ * - 0: Success
+ * - <0: Error code on failure
+ */
+typedef int (*eventdev_eth_tx_adapter_queue_stop)
+ (uint8_t id, uint16_t eth_dev_id, uint16_t tx_queue_id);
/** Event device operations function pointer table */
struct eventdev_ops {
@@ -1409,6 +1446,10 @@ struct eventdev_ops {
/**< Reset eth Tx adapter statistics */
eventdev_eth_tx_adapter_instance_get_t eth_tx_adapter_instance_get;
/**< Get Tx adapter instance id for Tx queue */
+ eventdev_eth_tx_adapter_queue_start eth_tx_adapter_queue_start;
+ /**< Start Tx queue assigned to Tx adapter instance */
+ eventdev_eth_tx_adapter_queue_stop eth_tx_adapter_queue_stop;
+ /**< Stop Tx queue assigned to Tx adapter instance */
eventdev_selftest dev_selftest;
/**< Start eventdev Selftest */
diff a/lib/eventdev/rte_event_eth_tx_adapter.c b/lib/eventdev/rte_event_eth_tx_adapter.c (rejected hunks)
@@ -47,6 +47,12 @@
#define txa_dev_instance_get(id) \
txa_evdev(id)->dev_ops->eth_tx_adapter_instance_get
+#define txa_dev_queue_start(id) \
+ txa_evdev(id)->dev_ops->eth_tx_adapter_queue_start
+
+#define txa_dev_queue_stop(id) \
+ txa_evdev(id)->dev_ops->eth_tx_adapter_queue_stop
+
#define RTE_EVENT_ETH_TX_ADAPTER_ID_VALID_OR_ERR_RET(id, retval) \
do { \
if (!txa_valid_id(id)) { \
@@ -1320,3 +1348,80 @@ rte_event_eth_tx_adapter_instance_get(uint16_t eth_dev_id,
return -EINVAL;
}
+
+static int
+txa_queue_state_set(uint16_t eth_dev_id, uint16_t tx_queue_id, bool state)
+{
+ struct txa_service_data *txa;
+ struct txa_service_queue_info *tqi;
+ uint8_t txa_inst_id;
+ int ret;
+ uint32_t caps = 0;
+
+ /* Below API already does validation of input parameters.
+ * Hence skipping the validation here.
+ */
+ ret = rte_event_eth_tx_adapter_instance_get(eth_dev_id,
+ tx_queue_id,
+ &txa_inst_id);
+ if (ret < 0)
+ return -EINVAL;
+
+ TXA_CHECK_OR_ERR_RET(txa_inst_id);
+
+ txa = txa_service_id_to_data(txa_inst_id);
+ ret = rte_event_eth_tx_adapter_caps_get(txa->eventdev_id,
+ eth_dev_id,
+ &caps);
+ if (state == true) {
+ if (caps & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT) {
+ ret = txa_dev_queue_start(txa_inst_id) ?
+ txa_dev_queue_start(txa_inst_id)(txa_inst_id,
+ eth_dev_id,
+ tx_queue_id)
+ : -EINVAL;
+ if (ret == 0)
+ return ret;
+ }
+ rte_spinlock_lock(&txa->tx_lock);
+ tqi = txa_service_queue(txa, eth_dev_id, tx_queue_id);
+ if (unlikely(tqi == NULL || !tqi->added)) {
+ rte_spinlock_unlock(&txa->tx_lock);
+ return -EINVAL;
+ }
+ tqi->stopped = false;
+ rte_spinlock_unlock(&txa->tx_lock);
+ } else {
+ if (caps & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT) {
+ ret = txa_dev_queue_stop(txa_inst_id) ?
+ txa_dev_queue_stop(txa_inst_id)(txa_inst_id,
+ eth_dev_id,
+ tx_queue_id)
+ : -EINVAL;
+ if (ret == 0)
+ return ret;
+ }
+ rte_spinlock_lock(&txa->tx_lock);
+ tqi = txa_service_queue(txa, eth_dev_id, tx_queue_id);
+ if (unlikely(tqi == NULL || !tqi->added)) {
+ rte_spinlock_unlock(&txa->tx_lock);
+ return -EINVAL;
+ }
+ txa_txq_buffer_drain(tqi);
+ tqi->stopped = true;
+ rte_spinlock_unlock(&txa->tx_lock);
+ }
+ return 0;
+}
+
+int
+rte_event_eth_tx_adapter_queue_start(uint16_t eth_dev_id, uint16_t tx_queue_id)
+{
+ return txa_queue_state_set(eth_dev_id, tx_queue_id, true);
+}
+
+int
+rte_event_eth_tx_adapter_queue_stop(uint16_t eth_dev_id, uint16_t tx_queue_id)
+{
+ return txa_queue_state_set(eth_dev_id, tx_queue_id, false);
+}
diff a/lib/eventdev/rte_event_eth_tx_adapter.h b/lib/eventdev/rte_event_eth_tx_adapter.h (rejected hunks)
@@ -35,6 +35,8 @@
* - rte_event_eth_tx_adapter_event_port_get()
* - rte_event_eth_tx_adapter_service_id_get()
* - rte_event_eth_tx_adapter_instance_get()
+ * - rte_event_eth_tx_adapter_queue_start()
+ * - rte_event_eth_tx_adapter_queue_stop()
*
* The application creates the adapter using
* rte_event_eth_tx_adapter_create() or rte_event_eth_tx_adapter_create_ext().
@@ -446,6 +448,43 @@ int
rte_event_eth_tx_adapter_instance_get(uint16_t eth_dev_id,
uint16_t tx_queue_id,
uint8_t *txa_inst_id);
+/**
+ * Enables the Tx Adapter to start enqueueing packets to the
+ * Tx queue.
+ *
+ * This function is provided so that the application can
+ * resuming enqueueing events that reference packets for
+ * <eth_dev_id, tx_queue_id> after calling
+ * rte_event_eth_tx_adapter_queue_stop()
+ *
+ * @param eth_dev_id
+ * Port identifier of Ethernet device.
+ * @param tx_queue_id
+ * Ethernet device transmit queue index.
+ * @return
+ * - 0: Success
+ * - <0: Error code on failure
+ */
+__rte_experimental
+int
+rte_event_eth_tx_adapter_queue_start(uint16_t eth_dev_id, uint16_t tx_queue_id);
+
+/**
+ * Stops the Tx Adapter from transmitting any mbufs to the
+ * <eth_dev_id, tx_queue_id>. The Tx Adapter also frees any mbufs
+ * that it may have buffered for this queue.
+ *
+ * @param eth_dev_id
+ * Port identifier of Ethernet device.
+ * @param tx_queue_id
+ * Ethernet device transmit queue index.
+ * @return
+ * - 0: Success
+ * - <0: Error code on failure
+ */
+__rte_experimental
+int
+rte_event_eth_tx_adapter_queue_stop(uint16_t eth_dev_id, uint16_t tx_queue_id);
#ifdef __cplusplus
}
diff a/lib/eventdev/version.map b/lib/eventdev/version.map (rejected hunks)
@@ -116,6 +116,8 @@ EXPERIMENTAL {
# added in 22.11
rte_event_eth_rx_adapter_instance_get;
rte_event_eth_tx_adapter_instance_get;
+ rte_event_eth_tx_adapter_queue_start;
+ rte_event_eth_tx_adapter_queue_stop;
};
INTERNAL {
Checking patch app/test/test_event_eth_tx_adapter.c...
Hunk #1 succeeded at 638 (offset -73 lines).
error: while searching for:
tx_adapter_service),
TEST_CASE_ST(tx_adapter_create, tx_adapter_free,
tx_adapter_instance_get),
TEST_CASE_ST(NULL, NULL, tx_adapter_dynamic_device),
TEST_CASES_END() /**< NULL terminate unit test array */
}
error: patch failed: app/test/test_event_eth_tx_adapter.c:770
Applying patch app/test/test_event_eth_tx_adapter.c with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
diff a/app/test/test_event_eth_tx_adapter.c b/app/test/test_event_eth_tx_adapter.c (rejected hunks)
@@ -770,6 +854,8 @@ static struct unit_test_suite event_eth_tx_tests = {
tx_adapter_service),
TEST_CASE_ST(tx_adapter_create, tx_adapter_free,
tx_adapter_instance_get),
+ TEST_CASE_ST(tx_adapter_create, tx_adapter_free,
+ tx_adapter_queue_start_stop),
TEST_CASE_ST(NULL, NULL, tx_adapter_dynamic_device),
TEST_CASES_END() /**< NULL terminate unit test array */
}
Checking patch doc/guides/rel_notes/release_22_11.rst...
error: while searching for:
ethernet device id and Rx queue index.
Added ``rte_event_eth_tx_adapter_instance_get`` to get the Tx adapter instance id for specified
ethernet device id and Tx queue index.
.. This section should contain new features added in this release.
Sample format:
error: patch failed: doc/guides/rel_notes/release_22_11.rst:29
Applying patch doc/guides/rel_notes/release_22_11.rst with 1 reject...
Rejected hunk #1.
diff a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst (rejected hunks)
@@ -29,6 +29,10 @@ New Features
ethernet device id and Rx queue index.
Added ``rte_event_eth_tx_adapter_instance_get`` to get the Tx adapter instance id for specified
ethernet device id and Tx queue index.
+ Added ``rte_event_eth_tx_adapter_queue_start`` to start enqueueing packets to the Tx queue by
+ Tx adapter.
+ Added ``rte_event_eth_tx_adapter_queue_start`` to stop the Tx Adapter from transmitting any
+ mbufs to the Tx_queue.
.. This section should contain new features added in this release.
Sample format:
https://lab.dpdk.org/results/dashboard/patchsets/23455/
UNH-IOL DPDK Community Lab
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-09-08 17:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-08 17:31 |WARNING| pw116098-116100 [PATCH] [3/3] doc: added eth Tx adapter queue start stop APIs dpdklab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).