1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright(c) 2017 Cavium, Inc 3 4dpdk-test-eventdev Application 5============================== 6 7The ``dpdk-test-eventdev`` tool is a Data Plane Development Kit (DPDK) 8application that allows exercising various eventdev use cases. 9This application has a generic framework to add new eventdev based test cases to 10verify functionality and measure the performance parameters of DPDK eventdev 11devices. 12 13 14Running the Application 15----------------------- 16 17The application has a number of command line options: 18 19.. code-block:: console 20 21 dpdk-test-eventdev [EAL Options] -- [application options] 22 23EAL Options 24~~~~~~~~~~~ 25 26The following are the EAL command-line options that can be used in conjunction 27with the ``dpdk-test-eventdev`` application. 28See the DPDK Getting Started Guides for more information on these options. 29 30* ``-c <COREMASK>`` or ``-l <CORELIST>`` 31 32 Set the hexadecimal bitmask of the cores to run on. The corelist is a 33 list of cores to use. 34 35* ``--vdev <driver><id>`` 36 37 Add a virtual eventdev device. 38 39Application Options 40~~~~~~~~~~~~~~~~~~~ 41 42The following are the application command-line options: 43 44* ``--verbose`` 45 46 Set verbose level. Default is 1. Value > 1 displays more details. 47 48* ``--dev <n>`` 49 50 Set the device id of the event device. 51 52* ``--test <name>`` 53 54 Set test name, where ``name`` is one of the following:: 55 56 order_queue 57 order_atq 58 perf_queue 59 perf_atq 60 pipeline_atq 61 pipeline_queue 62 63* ``--socket_id <n>`` 64 65 Set the socket id of the application resources. 66 67* ``--pool-sz <n>`` 68 69 Set the number of mbufs to be allocated from the mempool. 70 71* ``--plcores <CORELIST>`` 72 73 Set the list of cores to be used as producers. 74 75* ``--wlcores <CORELIST>`` 76 77 Set the list of cores to be used as workers. 78 79* ``--stlist <type_list>`` 80 81 Set the scheduled type of each stage where ``type_list`` size 82 determines the number of stages used in the test application. 83 Each type_list member can be one of the following:: 84 85 P or p : Parallel schedule type 86 O or o : Ordered schedule type 87 A or a : Atomic schedule type 88 89 Application expects the ``type_list`` in comma separated form (i.e. ``--stlist o,a,a,a``) 90 91* ``--nb_flows <n>`` 92 93 Set the number of flows to produce. 94 95* ``--nb_pkts <n>`` 96 97 Set the number of packets to produce. 0 implies no limit. 98 99* ``--worker_deq_depth <n>`` 100 101 Set the dequeue depth of the worker. 102 103* ``--fwd_latency`` 104 105 Perform forward latency measurement. 106 107* ``--queue_priority`` 108 109 Enable queue priority. 110 111* ``--prod_type_ethdev`` 112 113 Use ethernet device as producer. 114 115* ``--prod_type_timerdev`` 116 117 Use event timer adapter as producer. 118 119* ``--prod_type_timerdev_burst`` 120 121 Use burst mode event timer adapter as producer. 122 123* ``--prod_type_cryptodev`` 124 125 Use crypto device as producer. 126 127* ``--timer_tick_nsec`` 128 129 Used to dictate number of nano seconds between bucket traversal of the 130 event timer adapter. Refer `rte_event_timer_adapter_conf`. 131 132* ``--max_tmo_nsec`` 133 134 Used to configure event timer adapter max arm timeout in nano seconds. 135 136* ``--expiry_nsec`` 137 138 Dictate the number of nano seconds after which the event timer expires. 139 140* ``--nb_timers`` 141 142 Number of event timers each producer core will generate. 143 144* ``--nb_timer_adptrs`` 145 146 Number of event timer adapters to be used. Each adapter is used in 147 round robin manner by the producer cores. 148 149* ``--deq_tmo_nsec`` 150 151 Global dequeue timeout for all the event ports if the provided dequeue 152 timeout is out of the supported range of event device it will be 153 adjusted to the highest/lowest supported dequeue timeout supported. 154 155* ``--crypto_adptr_mode`` 156 157 Set crypto adapter mode. Use 0 for OP_NEW (default) and 1 for 158 OP_FORWARD mode. 159 160* ``--crypto_op_type`` 161 162 Set crypto operation type. Use 0 for symmetric crypto ops (default) 163 and 1 for asymmetric crypto ops. 164 165* ``--mbuf_sz`` 166 167 Set packet mbuf size. Can be used to configure Jumbo Frames. Only 168 applicable for `pipeline_atq` and `pipeline_queue` tests. 169 170* ``--max_pkt_sz`` 171 172 Set max packet mbuf size. Can be used to configure Rx/Tx scatter gather. 173 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 174 175* ``--prod_enq_burst_sz`` 176 177 Set producer enqueue burst size. Can be used to configure the number of 178 events the producer(s) will enqueue as a burst to the event device. 179 Only applicable for `perf_queue` test. 180 181* ``--nb_eth_queues`` 182 183 Configure multiple Rx queues per each ethernet port. 184 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 185 186* ``--enable_vector`` 187 188 Enable event vector for Rx/Tx adapters. 189 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 190 191* ``--vector_size`` 192 193 Vector size to configure for the Rx adapter. 194 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 195 196* ``--vector_tmo_ns`` 197 198 Vector timeout nanoseconds to be configured for the Rx adapter. 199 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 200 201* ``--per_port_pool`` 202 203 Configure unique mempool per ethernet device, the size of each pool 204 is equal to `pool_sz`. 205 Only applicable for pipeline_atq` and `pipeline_queue` tests. 206 207 208Eventdev Tests 209-------------- 210 211ORDER_QUEUE Test 212~~~~~~~~~~~~~~~~ 213 214This is a functional test case that aims at testing the following: 215 216#. Verify the ingress order maintenance. 217#. Verify the exclusive(atomic) access to given atomic flow per eventdev port. 218 219.. _table_eventdev_order_queue_test: 220 221.. table:: Order queue test eventdev configuration. 222 223 +---+--------------+----------------+------------------------+ 224 | # | Items | Value | Comments | 225 | | | | | 226 +===+==============+================+========================+ 227 | 1 | nb_queues | 2 | q0(ordered), q1(atomic)| 228 | | | | | 229 +---+--------------+----------------+------------------------+ 230 | 2 | nb_producers | 1 | | 231 | | | | | 232 +---+--------------+----------------+------------------------+ 233 | 3 | nb_workers | >= 1 | | 234 | | | | | 235 +---+--------------+----------------+------------------------+ 236 | 4 | nb_ports | nb_workers + | Workers use port 0 to | 237 | | | 1 | port n-1. Producer uses| 238 | | | | port n | 239 +---+--------------+----------------+------------------------+ 240 241.. _figure_eventdev_order_queue_test: 242 243.. figure:: img/eventdev_order_queue_test.* 244 245 order queue test operation. 246 247The order queue test configures the eventdev with two queues and an event 248producer to inject the events to q0(ordered) queue. Both q0(ordered) and 249q1(atomic) are linked to all the workers. 250 251The event producer maintains a sequence number per flow and injects the events 252to the ordered queue. The worker receives the events from ordered queue and 253forwards to atomic queue. Since the events from an ordered queue can be 254processed in parallel on the different workers, the ingress order of events 255might have changed on the downstream atomic queue enqueue. On enqueue to the 256atomic queue, the eventdev PMD reorders the event to the original 257ingress order(i.e producer ingress order). 258 259When the event is dequeued from the atomic queue by the worker, this test 260verifies the expected sequence number of associated event per flow by comparing 261the free running expected sequence number per flow. 262 263Application options 264^^^^^^^^^^^^^^^^^^^ 265 266Supported application command line options are following:: 267 268 --verbose 269 --dev 270 --test 271 --socket_id 272 --pool_sz 273 --plcores 274 --wlcores 275 --nb_flows 276 --nb_pkts 277 --worker_deq_depth 278 --deq_tmo_nsec 279 280Example 281^^^^^^^ 282 283Example command to run order queue test: 284 285.. code-block:: console 286 287 sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_sw0 -- \ 288 --test=order_queue --plcores 1 --wlcores 2,3 289 290 291ORDER_ATQ Test 292~~~~~~~~~~~~~~ 293 294This test verifies the same aspects of ``order_queue`` test, the difference is 295the number of queues used, this test operates on a single ``all types queue(atq)`` 296instead of two different queues for ordered and atomic. 297 298.. _table_eventdev_order_atq_test: 299 300.. table:: Order all types queue test eventdev configuration. 301 302 +---+--------------+----------------+------------------------+ 303 | # | Items | Value | Comments | 304 | | | | | 305 +===+==============+================+========================+ 306 | 1 | nb_queues | 1 | q0(all types queue) | 307 | | | | | 308 +---+--------------+----------------+------------------------+ 309 | 2 | nb_producers | 1 | | 310 | | | | | 311 +---+--------------+----------------+------------------------+ 312 | 3 | nb_workers | >= 1 | | 313 | | | | | 314 +---+--------------+----------------+------------------------+ 315 | 4 | nb_ports | nb_workers + | Workers use port 0 to | 316 | | | 1 | port n-1.Producer uses | 317 | | | | port n. | 318 +---+--------------+----------------+------------------------+ 319 320.. _figure_eventdev_order_atq_test: 321 322.. figure:: img/eventdev_order_atq_test.* 323 324 order all types queue test operation. 325 326Application options 327^^^^^^^^^^^^^^^^^^^ 328 329Supported application command line options are following:: 330 331 --verbose 332 --dev 333 --test 334 --socket_id 335 --pool_sz 336 --plcores 337 --wlcores 338 --nb_flows 339 --nb_pkts 340 --worker_deq_depth 341 --deq_tmo_nsec 342 343Example 344^^^^^^^ 345 346Example command to run order ``all types queue`` test: 347 348.. code-block:: console 349 350 sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_octeontx -- \ 351 --test=order_atq --plcores 1 --wlcores 2,3 352 353 354PERF_QUEUE Test 355~~~~~~~~~~~~~~~ 356 357This is a performance test case that aims at testing the following: 358 359#. Measure the number of events can be processed in a second. 360#. Measure the latency to forward an event. 361 362.. _table_eventdev_perf_queue_test: 363 364.. table:: Perf queue test eventdev configuration. 365 366 +---+--------------+----------------+-----------------------------------------+ 367 | # | Items | Value | Comments | 368 | | | | | 369 +===+==============+================+=========================================+ 370 | 1 | nb_queues | nb_producers * | Queues will be configured based on the | 371 | | | nb_stages | user requested sched type list(--stlist)| 372 +---+--------------+----------------+-----------------------------------------+ 373 | 2 | nb_producers | >= 1 | Selected through --plcores command line | 374 | | | | argument. | 375 +---+--------------+----------------+-----------------------------------------+ 376 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 377 | | | | argument | 378 +---+--------------+----------------+-----------------------------------------+ 379 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n-1. | 380 | | | nb_producers | Producers use port n to port p | 381 +---+--------------+----------------+-----------------------------------------+ 382 383.. _figure_eventdev_perf_queue_test: 384 385.. figure:: img/eventdev_perf_queue_test.* 386 387 perf queue test operation. 388 389The perf queue test configures the eventdev with Q queues and P ports, where 390Q and P is a function of the number of workers, the number of producers and 391number of stages as mentioned in :numref:`table_eventdev_perf_queue_test`. 392 393The user can choose the number of workers, the number of producers and number of 394stages through the ``--wlcores``, ``--plcores`` and the ``--stlist`` application 395command line arguments respectively. 396 397The producer(s) injects the events to eventdev based on the first stage sched type 398list requested by the user through ``--stlist`` command line argument. It can 399inject a burst of events using ``--prod_enq_burst_sz`` command line argument. 400 401Based on the number of stages to process(selected through ``--stlist``), 402The application forwards the event to next upstream queue and terminates when it 403reaches the last stage in the pipeline. On event termination, application 404increments the number events processed and print periodically in one second 405to get the number of events processed in one second. 406 407When ``--fwd_latency`` command line option selected, the application inserts 408the timestamp in the event on the first stage and then on termination, it 409updates the number of cycles to forward a packet. The application uses this 410value to compute the average latency to a forward packet. 411 412When ``--prod_type_ethdev`` command line option is selected, the application 413uses the probed ethernet devices as producers by configuring them as Rx 414adapters instead of using synthetic producers. 415 416Application options 417^^^^^^^^^^^^^^^^^^^ 418 419Supported application command line options are following:: 420 421 --verbose 422 --dev 423 --test 424 --socket_id 425 --pool_sz 426 --plcores 427 --wlcores 428 --stlist 429 --nb_flows 430 --nb_pkts 431 --worker_deq_depth 432 --fwd_latency 433 --queue_priority 434 --prod_type_ethdev 435 --prod_type_timerdev_burst 436 --prod_type_timerdev 437 --prod_type_cryptodev 438 --prod_enq_burst_sz 439 --timer_tick_nsec 440 --max_tmo_nsec 441 --expiry_nsec 442 --nb_timers 443 --nb_timer_adptrs 444 --deq_tmo_nsec 445 --crypto_adptr_mode 446 447Example 448^^^^^^^ 449 450Example command to run perf queue test: 451 452.. code-block:: console 453 454 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x1 --vdev=event_sw0 -- \ 455 --test=perf_queue --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0 456 457Example command to run perf queue test with producer enqueuing a burst of events: 458 459.. code-block:: console 460 461 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x1 --vdev=event_sw0 -- \ 462 --test=perf_queue --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0 \ 463 --prod_enq_burst_sz=32 464 465Example command to run perf queue test with ethernet ports: 466 467.. code-block:: console 468 469 sudo build/app/dpdk-test-eventdev --vdev=event_sw0 -- \ 470 --test=perf_queue --plcores=2 --wlcore=3 --stlist=p --prod_type_ethdev 471 472Example command to run perf queue test with event timer adapter: 473 474.. code-block:: console 475 476 sudo <build_dir>/app/dpdk-test-eventdev --vdev="event_octeontx" -- \ 477 --wlcores 4 --plcores 12 --test perf_queue --stlist=a \ 478 --prod_type_timerdev --fwd_latency 479 480PERF_ATQ Test 481~~~~~~~~~~~~~~~ 482 483This is a performance test case that aims at testing the following with 484``all types queue`` eventdev scheme. 485 486#. Measure the number of events can be processed in a second. 487#. Measure the latency to forward an event. 488 489.. _table_eventdev_perf_atq_test: 490 491.. table:: Perf all types queue test eventdev configuration. 492 493 +---+--------------+----------------+-----------------------------------------+ 494 | # | Items | Value | Comments | 495 | | | | | 496 +===+==============+================+=========================================+ 497 | 1 | nb_queues | nb_producers | Queues will be configured based on the | 498 | | | | user requested sched type list(--stlist)| 499 +---+--------------+----------------+-----------------------------------------+ 500 | 2 | nb_producers | >= 1 | Selected through --plcores command line | 501 | | | | argument. | 502 +---+--------------+----------------+-----------------------------------------+ 503 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 504 | | | | argument | 505 +---+--------------+----------------+-----------------------------------------+ 506 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n-1. | 507 | | | nb_producers | Producers use port n to port p | 508 +---+--------------+----------------+-----------------------------------------+ 509 510.. _figure_eventdev_perf_atq_test: 511 512.. figure:: img/eventdev_perf_atq_test.* 513 514 perf all types queue test operation. 515 516 517The ``all types queues(atq)`` perf test configures the eventdev with Q queues 518and P ports, where Q and P is a function of the number of workers and number of 519producers as mentioned in :numref:`table_eventdev_perf_atq_test`. 520 521 522The atq queue test functions as same as ``perf_queue`` test. The difference 523is, It uses, ``all type queue scheme`` instead of separate queues for each 524stage and thus reduces the number of queues required to realize the use case 525and enables flow pinning as the event does not move to the next queue. 526 527 528Application options 529^^^^^^^^^^^^^^^^^^^ 530 531Supported application command line options are following:: 532 533 --verbose 534 --dev 535 --test 536 --socket_id 537 --pool_sz 538 --plcores 539 --wlcores 540 --stlist 541 --nb_flows 542 --nb_pkts 543 --worker_deq_depth 544 --fwd_latency 545 --prod_type_ethdev 546 --prod_type_timerdev_burst 547 --prod_type_timerdev 548 --prod_type_cryptodev 549 --timer_tick_nsec 550 --max_tmo_nsec 551 --expiry_nsec 552 --nb_timers 553 --nb_timer_adptrs 554 --deq_tmo_nsec 555 --crypto_adptr_mode 556 557Example 558^^^^^^^ 559 560Example command to run perf ``all types queue`` test: 561 562.. code-block:: console 563 564 sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_octeontx -- \ 565 --test=perf_atq --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0 566 567Example command to run perf ``all types queue`` test with event timer adapter: 568 569.. code-block:: console 570 571 sudo <build_dir>/app/dpdk-test-eventdev --vdev="event_octeontx" -- \ 572 --wlcores 4 --plcores 12 --test perf_atq --verbose 20 \ 573 --stlist=a --prod_type_timerdev --fwd_latency 574 575 576PIPELINE_QUEUE Test 577~~~~~~~~~~~~~~~~~~~ 578 579This is a pipeline test case that aims at testing the following: 580 581#. Measure the end-to-end performance of an event dev with a ethernet dev. 582#. Maintain packet ordering from Rx to Tx. 583 584.. _table_eventdev_pipeline_queue_test: 585 586.. table:: Pipeline queue test eventdev configuration. 587 588 +---+--------------+----------------+-----------------------------------------+ 589 | # | Items | Value | Comments | 590 | | | | | 591 +===+==============+================+=========================================+ 592 | 1 | nb_queues | (nb_producers | Queues will be configured based on the | 593 | | | * nb_stages) + | user requested sched type list(--stlist)| 594 | | | nb_producers | At the last stage of the schedule list | 595 | | | | the event is enqueued onto per port | 596 | | | | unique queue which is then Transmitted. | 597 +---+--------------+----------------+-----------------------------------------+ 598 | 2 | nb_producers | >= 1 | Producers will be configured based on | 599 | | | | the number of detected ethernet devices.| 600 | | | | Each ethdev will be configured as an Rx | 601 | | | | adapter. | 602 +---+--------------+----------------+-----------------------------------------+ 603 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 604 | | | | argument | 605 +---+--------------+----------------+-----------------------------------------+ 606 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n. | 607 | | | (nb_produces * | Producers use port n+1 to port n+m, | 608 | | | 2) | depending on the Rx adapter capability. | 609 | | | | Consumers use port n+m+1 to port n+o | 610 | | | | depending on the Tx adapter capability. | 611 +---+--------------+----------------+-----------------------------------------+ 612 613.. _figure_eventdev_pipeline_queue_test_generic: 614 615.. figure:: img/eventdev_pipeline_queue_test_generic.* 616 617.. _figure_eventdev_pipeline_queue_test_internal_port: 618 619.. figure:: img/eventdev_pipeline_queue_test_internal_port.* 620 621 pipeline queue test operation. 622 623The pipeline queue test configures the eventdev with Q queues and P ports, 624where Q and P is a function of the number of workers, the number of producers 625and number of stages as mentioned in :numref:`table_eventdev_pipeline_queue_test`. 626 627The user can choose the number of workers and number of stages through the 628``--wlcores`` and the ``--stlist`` application command line arguments 629respectively. 630 631The number of producers depends on the number of ethernet devices detected and 632each ethernet device is configured as a event_eth_rx_adapter that acts as a 633producer. 634 635The producer(s) injects the events to eventdev based the first stage sched type 636list requested by the user through ``--stlist`` the command line argument. 637 638Based on the number of stages to process(selected through ``--stlist``), 639The application forwards the event to next upstream queue and when it reaches 640the last stage in the pipeline if the event type is ``atomic`` it is enqueued 641onto ethdev Tx queue else to maintain ordering the event type is set to 642``atomic`` and enqueued onto the last stage queue. 643 644If the ethdev and eventdev pair have ``RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT`` 645capability then the worker cores enqueue the packets to the eventdev directly 646using ``rte_event_eth_tx_adapter_enqueue`` else the worker cores enqueue the 647packet onto the ``SINGLE_LINK_QUEUE`` that is managed by the Tx adapter. 648The Tx adapter dequeues the packet and transmits it. 649 650On packet Tx, application increments the number events processed and print 651periodically in one second to get the number of events processed in one 652second. 653 654 655Application options 656^^^^^^^^^^^^^^^^^^^ 657 658Supported application command line options are following:: 659 660 --verbose 661 --dev 662 --test 663 --socket_id 664 --pool_sz 665 --wlcores 666 --stlist 667 --worker_deq_depth 668 --prod_type_ethdev 669 --deq_tmo_nsec 670 --nb_eth_queues 671 --enable_vector 672 --vector_size 673 --vector_tmo_ns 674 --per_port_pool 675 676 677.. Note:: 678 679 * The ``--prod_type_ethdev`` is mandatory for running this test. 680 681Example 682^^^^^^^ 683 684Example command to run pipeline queue test: 685 686.. code-block:: console 687 688 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 689 --test=pipeline_queue --wlcore=1 --prod_type_ethdev --stlist=a 690 691Example command to run pipeline atq test with vector events: 692 693.. code-block:: console 694 695 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 696 --test=pipeline_queue --wlcore=1 --prod_type_ethdev --stlist=a \ 697 --enable_vector --vector_size 512 698 699PIPELINE_ATQ Test 700~~~~~~~~~~~~~~~~~~~ 701 702This is a pipeline test case that aims at testing the following with 703``all types queue`` eventdev scheme. 704 705#. Measure the end-to-end performance of an event dev with a ethernet dev. 706#. Maintain packet ordering from Rx to Tx. 707 708.. _table_eventdev_pipeline_atq_test: 709 710.. table:: Pipeline atq test eventdev configuration. 711 712 +---+--------------+----------------+-----------------------------------------+ 713 | # | Items | Value | Comments | 714 | | | | | 715 +===+==============+================+=========================================+ 716 | 1 | nb_queues | nb_producers + | Queues will be configured based on the | 717 | | | x | user requested sched type list(--stlist)| 718 | | | | where x = nb_producers in generic | 719 | | | | pipeline and 0 if all the ethdev | 720 | | | | being used have Internal port capability| 721 +---+--------------+----------------+-----------------------------------------+ 722 | 2 | nb_producers | >= 1 | Producers will be configured based on | 723 | | | | the number of detected ethernet devices.| 724 | | | | Each ethdev will be configured as an Rx | 725 | | | | adapter. | 726 +---+--------------+----------------+-----------------------------------------+ 727 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 728 | | | | argument | 729 +---+--------------+----------------+-----------------------------------------+ 730 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n. | 731 | | | nb_producers + | Producers use port n+1 to port n+m, | 732 | | | x | depending on the Rx adapter capability. | 733 | | | | x = nb_producers in generic pipeline and| 734 | | | | 0 if all the ethdev being used have | 735 | | | | Internal port capability. | 736 | | | | Consumers may use port n+m+1 to port n+o| 737 | | | | depending on the Tx adapter capability. | 738 +---+--------------+----------------+-----------------------------------------+ 739 740.. _figure_eventdev_pipeline_atq_test_generic: 741 742.. figure:: img/eventdev_pipeline_atq_test_generic.* 743 744.. _figure_eventdev_pipeline_atq_test_internal_port: 745 746.. figure:: img/eventdev_pipeline_atq_test_internal_port.* 747 748 pipeline atq test operation. 749 750The pipeline atq test configures the eventdev with Q queues and P ports, 751where Q and P is a function of the number of workers, the number of producers 752and number of stages as mentioned in :numref:`table_eventdev_pipeline_atq_test`. 753 754The atq queue test functions as same as ``pipeline_queue`` test. The difference 755is, It uses, ``all type queue scheme`` instead of separate queues for each 756stage and thus reduces the number of queues required to realize the use case. 757 758 759Application options 760^^^^^^^^^^^^^^^^^^^ 761 762Supported application command line options are following:: 763 764 --verbose 765 --dev 766 --test 767 --socket_id 768 --pool_sz 769 --wlcores 770 --stlist 771 --worker_deq_depth 772 --prod_type_ethdev 773 --deq_tmo_nsec 774 --nb_eth_queues 775 --enable_vector 776 --vector_size 777 --vector_tmo_ns 778 --per_port_pool 779 780 781.. Note:: 782 783 * The ``--prod_type_ethdev`` is mandatory for running this test. 784 785Example 786^^^^^^^ 787 788Example command to run pipeline atq test: 789 790.. code-block:: console 791 792 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 793 --test=pipeline_atq --wlcore=1 --prod_type_ethdev --stlist=a 794 795Example command to run pipeline atq test with vector events: 796 797.. code-block:: console 798 799 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 800 --test=pipeline_atq --wlcore=1 --prod_type_ethdev --stlist=a \ 801 --enable_vector --vector_size 512 802