[PATCH v5 12/12] app/test: add event DMA adapter auto-test
Jerin Jacob
jerinjacobk at gmail.com
Fri Sep 29 09:20:35 CEST 2023
On Fri, Sep 29, 2023 at 9:46 AM Amit Prakash Shukla
<amitprakashs at marvell.com> wrote:
>
> Added testsuite to test the dma adapter functionality.
> The testsuite detects event and DMA device capability
> and accordingly dma adapter is configured and modes are
> tested. Test command:
>
> <build dir>/app/test/dpdk-test event_dma_adapter_autotest
Use the below command with SW driver so that anyone can run it.
>
> Signed-off-by: Amit Prakash Shukla <amitprakashs at marvell.com>
sudo ./build/app/test/dpdk-test --vdev=dma_skeleton event_dma_adapter_autotest
There are failures with above as skelton dmadev does not support SG
and most of remaining drivers. So please change to following.
[for-main]dell[dpdk-next-eventdev] $ git diff
diff --git a/lib/eventdev/rte_event_dma_adapter.c
b/lib/eventdev/rte_event_dma_adapter.c
index 4899bc5d0f..bbdfd3daa6 100644
--- a/lib/eventdev/rte_event_dma_adapter.c
+++ b/lib/eventdev/rte_event_dma_adapter.c
@@ -256,8 +256,13 @@ edma_circular_buffer_flush_to_dma_dev(struct
event_dma_adapter *adapter,
for (i = 0; i < n; i++) {
op = bufp->op_buffer[*head];
- ret = rte_dma_copy_sg(dma_dev_id, vchan, op->src_seg,
op->dst_seg,
- op->nb_src, op->nb_dst, op->flags);
+ if (op->nb_src == 1 && op->nb_dst == 1)
+ ret = rte_dma_copy(dma_dev_id, vchan,
op->src_seg->addr, op->dst_seg->addr,
+ op->src_seg->length, op->flags);
+ else
+ ret = rte_dma_copy_sg(dma_dev_id, vchan,
op->src_seg, op->dst_seg,
+ op->nb_src, op->nb_dst, op->flags);
+
With above change all test cases are pasiing on skelton device.
[for-main]dell[dpdk-next-eventdev] $ sudo ./build/app/test/dpdk-test
--vdev=dma_skeleton event_dma_adapter_autotest
EAL: Detected CPU lcores: 56
EAL: Detected NUMA nodes: 2
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
skeldma_probe(): Create dma_skeleton dmadev with lcore-id -1
APP: HPET is not enabled, using TSC as default timer
RTE>>event_dma_adapter_autotest
+ ------------------------------------------------------- +
+ Test Suite : Event dma adapter test suite
+ ------------------------------------------------------- +
+ TestCase [ 0] : test_dma_adapter_create succeeded
+ TestCase [ 1] : test_dma_adapter_vchan_add_del succeeded
+------------------------------------------------------+
+ DMA adapter stats for instance 0:
+ Event port poll count 0x0
+ Event dequeue count 0x0
+ DMA dev enqueue count 0x0
+ DMA dev enqueue failed count 0x0
+ DMA dev dequeue count 0x0
+ Event enqueue count 0x0
+ Event enqueue retry count 0x0
+ Event enqueue fail count 0x0
+------------------------------------------------------+
+ TestCase [ 2] : test_dma_adapter_stats succeeded
+ TestCase [ 3] : test_dma_adapter_params succeeded
+------------------------------------------------------+
+ DMA adapter stats for instance 0:
+ Event port poll count 0xc5df
+ Event dequeue count 0x20
+ DMA dev enqueue count 0x20
+ DMA dev enqueue failed count 0x0
+ DMA dev dequeue count 0x20
+ Event enqueue count 0x20
+ Event enqueue retry count 0x0
+ Event enqueue fail count 0x0
+------------------------------------------------------+
+ TestCase [ 4] : test_with_op_forward_mode succeeded
EVENTDEV: rte_event_dev_stop() line 1427: Device with dev_id=0already stopped
+ ------------------------------------------------------- +
+ Test Suite Summary : Event dma adapter test suite
+ ------------------------------------------------------- +
+ Tests Total : 5
+ Tests Skipped : 0
+ Tests Executed : 5
+ Tests Unsupported: 0
+ Tests Passed : 5
+ Tests Failed : 0
+ ------------------------------------------------------- +
Test OK
RTE>>skeldma_remove(): Remove dma_skeleton dmadev
# Please fix the second warning by using rte_strscpy
[for-main]dell[dpdk-next-eventdev] $ ./devtools/checkpatches.sh -n 12
&& ./devtools/check-git-log.sh -n 12
### [PATCH] eventdev/dma: support adapter create and free
WARNING:MACRO_WITH_FLOW_CONTROL: Macros with flow control statements
should be avoided
#60: FILE: lib/eventdev/rte_event_dma_adapter.c:19:
+#define EVENT_DMA_ADAPTER_ID_VALID_OR_ERR_RET(id, retval) \
+ do { \
+ if (!edma_adapter_valid_id(id)) { \
+ RTE_EDEV_LOG_ERR("Invalid DMA adapter id = %d\n", id); \
+ return retval; \
+ } \
+ } while (0)
WARNING:STRCPY: Prefer strscpy over strcpy - see:
https://github.com/KSPP/linux/issues/88
#302: FILE: lib/eventdev/rte_event_dma_adapter.c:261:
+ strcpy(adapter->mem_name, name);
total: 0 errors, 2 warnings, 349 lines checked
Rest of the chages looks good to me. Good to merge next version.
More information about the dev
mailing list