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* ``--mbuf_sz`` 161 162 Set packet mbuf size. Can be used to configure Jumbo Frames. Only 163 applicable for `pipeline_atq` and `pipeline_queue` tests. 164 165* ``--max_pkt_sz`` 166 167 Set max packet mbuf size. Can be used to configure Rx/Tx scatter gather. 168 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 169 170* ``--prod_enq_burst_sz`` 171 172 Set producer enqueue burst size. Can be used to configure the number of 173 events the producer(s) will enqueue as a burst to the event device. 174 Only applicable for `perf_queue` test. 175 176* ``--nb_eth_queues`` 177 178 Configure multiple Rx queues per each ethernet port. 179 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 180 181* ``--enable_vector`` 182 183 Enable event vector for Rx/Tx adapters. 184 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 185 186* ``--vector_size`` 187 188 Vector size to configure for the Rx adapter. 189 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 190 191* ``--vector_tmo_ns`` 192 193 Vector timeout nanoseconds to be configured for the Rx adapter. 194 Only applicable for `pipeline_atq` and `pipeline_queue` tests. 195 196* ``--per_port_pool`` 197 198 Configure unique mempool per ethernet device, the size of each pool 199 is equal to `pool_sz`. 200 Only applicable for pipeline_atq` and `pipeline_queue` tests. 201 202 203Eventdev Tests 204-------------- 205 206ORDER_QUEUE Test 207~~~~~~~~~~~~~~~~ 208 209This is a functional test case that aims at testing the following: 210 211#. Verify the ingress order maintenance. 212#. Verify the exclusive(atomic) access to given atomic flow per eventdev port. 213 214.. _table_eventdev_order_queue_test: 215 216.. table:: Order queue test eventdev configuration. 217 218 +---+--------------+----------------+------------------------+ 219 | # | Items | Value | Comments | 220 | | | | | 221 +===+==============+================+========================+ 222 | 1 | nb_queues | 2 | q0(ordered), q1(atomic)| 223 | | | | | 224 +---+--------------+----------------+------------------------+ 225 | 2 | nb_producers | 1 | | 226 | | | | | 227 +---+--------------+----------------+------------------------+ 228 | 3 | nb_workers | >= 1 | | 229 | | | | | 230 +---+--------------+----------------+------------------------+ 231 | 4 | nb_ports | nb_workers + | Workers use port 0 to | 232 | | | 1 | port n-1. Producer uses| 233 | | | | port n | 234 +---+--------------+----------------+------------------------+ 235 236.. _figure_eventdev_order_queue_test: 237 238.. figure:: img/eventdev_order_queue_test.* 239 240 order queue test operation. 241 242The order queue test configures the eventdev with two queues and an event 243producer to inject the events to q0(ordered) queue. Both q0(ordered) and 244q1(atomic) are linked to all the workers. 245 246The event producer maintains a sequence number per flow and injects the events 247to the ordered queue. The worker receives the events from ordered queue and 248forwards to atomic queue. Since the events from an ordered queue can be 249processed in parallel on the different workers, the ingress order of events 250might have changed on the downstream atomic queue enqueue. On enqueue to the 251atomic queue, the eventdev PMD reorders the event to the original 252ingress order(i.e producer ingress order). 253 254When the event is dequeued from the atomic queue by the worker, this test 255verifies the expected sequence number of associated event per flow by comparing 256the free running expected sequence number per flow. 257 258Application options 259^^^^^^^^^^^^^^^^^^^ 260 261Supported application command line options are following:: 262 263 --verbose 264 --dev 265 --test 266 --socket_id 267 --pool_sz 268 --plcores 269 --wlcores 270 --nb_flows 271 --nb_pkts 272 --worker_deq_depth 273 --deq_tmo_nsec 274 275Example 276^^^^^^^ 277 278Example command to run order queue test: 279 280.. code-block:: console 281 282 sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_sw0 -- \ 283 --test=order_queue --plcores 1 --wlcores 2,3 284 285 286ORDER_ATQ Test 287~~~~~~~~~~~~~~ 288 289This test verifies the same aspects of ``order_queue`` test, the difference is 290the number of queues used, this test operates on a single ``all types queue(atq)`` 291instead of two different queues for ordered and atomic. 292 293.. _table_eventdev_order_atq_test: 294 295.. table:: Order all types queue test eventdev configuration. 296 297 +---+--------------+----------------+------------------------+ 298 | # | Items | Value | Comments | 299 | | | | | 300 +===+==============+================+========================+ 301 | 1 | nb_queues | 1 | q0(all types queue) | 302 | | | | | 303 +---+--------------+----------------+------------------------+ 304 | 2 | nb_producers | 1 | | 305 | | | | | 306 +---+--------------+----------------+------------------------+ 307 | 3 | nb_workers | >= 1 | | 308 | | | | | 309 +---+--------------+----------------+------------------------+ 310 | 4 | nb_ports | nb_workers + | Workers use port 0 to | 311 | | | 1 | port n-1.Producer uses | 312 | | | | port n. | 313 +---+--------------+----------------+------------------------+ 314 315.. _figure_eventdev_order_atq_test: 316 317.. figure:: img/eventdev_order_atq_test.* 318 319 order all types queue test operation. 320 321Application options 322^^^^^^^^^^^^^^^^^^^ 323 324Supported application command line options are following:: 325 326 --verbose 327 --dev 328 --test 329 --socket_id 330 --pool_sz 331 --plcores 332 --wlcores 333 --nb_flows 334 --nb_pkts 335 --worker_deq_depth 336 --deq_tmo_nsec 337 338Example 339^^^^^^^ 340 341Example command to run order ``all types queue`` test: 342 343.. code-block:: console 344 345 sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_octeontx -- \ 346 --test=order_atq --plcores 1 --wlcores 2,3 347 348 349PERF_QUEUE Test 350~~~~~~~~~~~~~~~ 351 352This is a performance test case that aims at testing the following: 353 354#. Measure the number of events can be processed in a second. 355#. Measure the latency to forward an event. 356 357.. _table_eventdev_perf_queue_test: 358 359.. table:: Perf queue test eventdev configuration. 360 361 +---+--------------+----------------+-----------------------------------------+ 362 | # | Items | Value | Comments | 363 | | | | | 364 +===+==============+================+=========================================+ 365 | 1 | nb_queues | nb_producers * | Queues will be configured based on the | 366 | | | nb_stages | user requested sched type list(--stlist)| 367 +---+--------------+----------------+-----------------------------------------+ 368 | 2 | nb_producers | >= 1 | Selected through --plcores command line | 369 | | | | argument. | 370 +---+--------------+----------------+-----------------------------------------+ 371 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 372 | | | | argument | 373 +---+--------------+----------------+-----------------------------------------+ 374 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n-1. | 375 | | | nb_producers | Producers use port n to port p | 376 +---+--------------+----------------+-----------------------------------------+ 377 378.. _figure_eventdev_perf_queue_test: 379 380.. figure:: img/eventdev_perf_queue_test.* 381 382 perf queue test operation. 383 384The perf queue test configures the eventdev with Q queues and P ports, where 385Q and P is a function of the number of workers, the number of producers and 386number of stages as mentioned in :numref:`table_eventdev_perf_queue_test`. 387 388The user can choose the number of workers, the number of producers and number of 389stages through the ``--wlcores``, ``--plcores`` and the ``--stlist`` application 390command line arguments respectively. 391 392The producer(s) injects the events to eventdev based on the first stage sched type 393list requested by the user through ``--stlist`` command line argument. It can 394inject a burst of events using ``--prod_enq_burst_sz`` command line argument. 395 396Based on the number of stages to process(selected through ``--stlist``), 397The application forwards the event to next upstream queue and terminates when it 398reaches the last stage in the pipeline. On event termination, application 399increments the number events processed and print periodically in one second 400to get the number of events processed in one second. 401 402When ``--fwd_latency`` command line option selected, the application inserts 403the timestamp in the event on the first stage and then on termination, it 404updates the number of cycles to forward a packet. The application uses this 405value to compute the average latency to a forward packet. 406 407When ``--prod_type_ethdev`` command line option is selected, the application 408uses the probed ethernet devices as producers by configuring them as Rx 409adapters instead of using synthetic producers. 410 411Application options 412^^^^^^^^^^^^^^^^^^^ 413 414Supported application command line options are following:: 415 416 --verbose 417 --dev 418 --test 419 --socket_id 420 --pool_sz 421 --plcores 422 --wlcores 423 --stlist 424 --nb_flows 425 --nb_pkts 426 --worker_deq_depth 427 --fwd_latency 428 --queue_priority 429 --prod_type_ethdev 430 --prod_type_timerdev_burst 431 --prod_type_timerdev 432 --prod_type_cryptodev 433 --prod_enq_burst_sz 434 --timer_tick_nsec 435 --max_tmo_nsec 436 --expiry_nsec 437 --nb_timers 438 --nb_timer_adptrs 439 --deq_tmo_nsec 440 --crypto_adptr_mode 441 442Example 443^^^^^^^ 444 445Example command to run perf queue test: 446 447.. code-block:: console 448 449 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x1 --vdev=event_sw0 -- \ 450 --test=perf_queue --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0 451 452Example command to run perf queue test with producer enqueuing a burst of events: 453 454.. code-block:: console 455 456 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x1 --vdev=event_sw0 -- \ 457 --test=perf_queue --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0 \ 458 --prod_enq_burst_sz=32 459 460Example command to run perf queue test with ethernet ports: 461 462.. code-block:: console 463 464 sudo build/app/dpdk-test-eventdev --vdev=event_sw0 -- \ 465 --test=perf_queue --plcores=2 --wlcore=3 --stlist=p --prod_type_ethdev 466 467Example command to run perf queue test with event timer adapter: 468 469.. code-block:: console 470 471 sudo <build_dir>/app/dpdk-test-eventdev --vdev="event_octeontx" -- \ 472 --wlcores 4 --plcores 12 --test perf_queue --stlist=a \ 473 --prod_type_timerdev --fwd_latency 474 475PERF_ATQ Test 476~~~~~~~~~~~~~~~ 477 478This is a performance test case that aims at testing the following with 479``all types queue`` eventdev scheme. 480 481#. Measure the number of events can be processed in a second. 482#. Measure the latency to forward an event. 483 484.. _table_eventdev_perf_atq_test: 485 486.. table:: Perf all types queue test eventdev configuration. 487 488 +---+--------------+----------------+-----------------------------------------+ 489 | # | Items | Value | Comments | 490 | | | | | 491 +===+==============+================+=========================================+ 492 | 1 | nb_queues | nb_producers | Queues will be configured based on the | 493 | | | | user requested sched type list(--stlist)| 494 +---+--------------+----------------+-----------------------------------------+ 495 | 2 | nb_producers | >= 1 | Selected through --plcores command line | 496 | | | | argument. | 497 +---+--------------+----------------+-----------------------------------------+ 498 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 499 | | | | argument | 500 +---+--------------+----------------+-----------------------------------------+ 501 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n-1. | 502 | | | nb_producers | Producers use port n to port p | 503 +---+--------------+----------------+-----------------------------------------+ 504 505.. _figure_eventdev_perf_atq_test: 506 507.. figure:: img/eventdev_perf_atq_test.* 508 509 perf all types queue test operation. 510 511 512The ``all types queues(atq)`` perf test configures the eventdev with Q queues 513and P ports, where Q and P is a function of the number of workers and number of 514producers as mentioned in :numref:`table_eventdev_perf_atq_test`. 515 516 517The atq queue test functions as same as ``perf_queue`` test. The difference 518is, It uses, ``all type queue scheme`` instead of separate queues for each 519stage and thus reduces the number of queues required to realize the use case 520and enables flow pinning as the event does not move to the next queue. 521 522 523Application options 524^^^^^^^^^^^^^^^^^^^ 525 526Supported application command line options are following:: 527 528 --verbose 529 --dev 530 --test 531 --socket_id 532 --pool_sz 533 --plcores 534 --wlcores 535 --stlist 536 --nb_flows 537 --nb_pkts 538 --worker_deq_depth 539 --fwd_latency 540 --prod_type_ethdev 541 --prod_type_timerdev_burst 542 --prod_type_timerdev 543 --prod_type_cryptodev 544 --timer_tick_nsec 545 --max_tmo_nsec 546 --expiry_nsec 547 --nb_timers 548 --nb_timer_adptrs 549 --deq_tmo_nsec 550 --crypto_adptr_mode 551 552Example 553^^^^^^^ 554 555Example command to run perf ``all types queue`` test: 556 557.. code-block:: console 558 559 sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_octeontx -- \ 560 --test=perf_atq --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0 561 562Example command to run perf ``all types queue`` test with event timer adapter: 563 564.. code-block:: console 565 566 sudo <build_dir>/app/dpdk-test-eventdev --vdev="event_octeontx" -- \ 567 --wlcores 4 --plcores 12 --test perf_atq --verbose 20 \ 568 --stlist=a --prod_type_timerdev --fwd_latency 569 570 571PIPELINE_QUEUE Test 572~~~~~~~~~~~~~~~~~~~ 573 574This is a pipeline test case that aims at testing the following: 575 576#. Measure the end-to-end performance of an event dev with a ethernet dev. 577#. Maintain packet ordering from Rx to Tx. 578 579.. _table_eventdev_pipeline_queue_test: 580 581.. table:: Pipeline queue test eventdev configuration. 582 583 +---+--------------+----------------+-----------------------------------------+ 584 | # | Items | Value | Comments | 585 | | | | | 586 +===+==============+================+=========================================+ 587 | 1 | nb_queues | (nb_producers | Queues will be configured based on the | 588 | | | * nb_stages) + | user requested sched type list(--stlist)| 589 | | | nb_producers | At the last stage of the schedule list | 590 | | | | the event is enqueued onto per port | 591 | | | | unique queue which is then Transmitted. | 592 +---+--------------+----------------+-----------------------------------------+ 593 | 2 | nb_producers | >= 1 | Producers will be configured based on | 594 | | | | the number of detected ethernet devices.| 595 | | | | Each ethdev will be configured as an Rx | 596 | | | | adapter. | 597 +---+--------------+----------------+-----------------------------------------+ 598 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 599 | | | | argument | 600 +---+--------------+----------------+-----------------------------------------+ 601 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n. | 602 | | | (nb_produces * | Producers use port n+1 to port n+m, | 603 | | | 2) | depending on the Rx adapter capability. | 604 | | | | Consumers use port n+m+1 to port n+o | 605 | | | | depending on the Tx adapter capability. | 606 +---+--------------+----------------+-----------------------------------------+ 607 608.. _figure_eventdev_pipeline_queue_test_generic: 609 610.. figure:: img/eventdev_pipeline_queue_test_generic.* 611 612.. _figure_eventdev_pipeline_queue_test_internal_port: 613 614.. figure:: img/eventdev_pipeline_queue_test_internal_port.* 615 616 pipeline queue test operation. 617 618The pipeline queue test configures the eventdev with Q queues and P ports, 619where Q and P is a function of the number of workers, the number of producers 620and number of stages as mentioned in :numref:`table_eventdev_pipeline_queue_test`. 621 622The user can choose the number of workers and number of stages through the 623``--wlcores`` and the ``--stlist`` application command line arguments 624respectively. 625 626The number of producers depends on the number of ethernet devices detected and 627each ethernet device is configured as a event_eth_rx_adapter that acts as a 628producer. 629 630The producer(s) injects the events to eventdev based the first stage sched type 631list requested by the user through ``--stlist`` the command line argument. 632 633Based on the number of stages to process(selected through ``--stlist``), 634The application forwards the event to next upstream queue and when it reaches 635the last stage in the pipeline if the event type is ``atomic`` it is enqueued 636onto ethdev Tx queue else to maintain ordering the event type is set to 637``atomic`` and enqueued onto the last stage queue. 638 639If the ethdev and eventdev pair have ``RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT`` 640capability then the worker cores enqueue the packets to the eventdev directly 641using ``rte_event_eth_tx_adapter_enqueue`` else the worker cores enqueue the 642packet onto the ``SINGLE_LINK_QUEUE`` that is managed by the Tx adapter. 643The Tx adapter dequeues the packet and transmits it. 644 645On packet Tx, application increments the number events processed and print 646periodically in one second to get the number of events processed in one 647second. 648 649 650Application options 651^^^^^^^^^^^^^^^^^^^ 652 653Supported application command line options are following:: 654 655 --verbose 656 --dev 657 --test 658 --socket_id 659 --pool_sz 660 --wlcores 661 --stlist 662 --worker_deq_depth 663 --prod_type_ethdev 664 --deq_tmo_nsec 665 --nb_eth_queues 666 --enable_vector 667 --vector_size 668 --vector_tmo_ns 669 --per_port_pool 670 671 672.. Note:: 673 674 * The ``--prod_type_ethdev`` is mandatory for running this test. 675 676Example 677^^^^^^^ 678 679Example command to run pipeline queue test: 680 681.. code-block:: console 682 683 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 684 --test=pipeline_queue --wlcore=1 --prod_type_ethdev --stlist=a 685 686Example command to run pipeline atq test with vector events: 687 688.. code-block:: console 689 690 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 691 --test=pipeline_queue --wlcore=1 --prod_type_ethdev --stlist=a \ 692 --enable_vector --vector_size 512 693 694PIPELINE_ATQ Test 695~~~~~~~~~~~~~~~~~~~ 696 697This is a pipeline test case that aims at testing the following with 698``all types queue`` eventdev scheme. 699 700#. Measure the end-to-end performance of an event dev with a ethernet dev. 701#. Maintain packet ordering from Rx to Tx. 702 703.. _table_eventdev_pipeline_atq_test: 704 705.. table:: Pipeline atq test eventdev configuration. 706 707 +---+--------------+----------------+-----------------------------------------+ 708 | # | Items | Value | Comments | 709 | | | | | 710 +===+==============+================+=========================================+ 711 | 1 | nb_queues | nb_producers + | Queues will be configured based on the | 712 | | | x | user requested sched type list(--stlist)| 713 | | | | where x = nb_producers in generic | 714 | | | | pipeline and 0 if all the ethdev | 715 | | | | being used have Internal port capability| 716 +---+--------------+----------------+-----------------------------------------+ 717 | 2 | nb_producers | >= 1 | Producers will be configured based on | 718 | | | | the number of detected ethernet devices.| 719 | | | | Each ethdev will be configured as an Rx | 720 | | | | adapter. | 721 +---+--------------+----------------+-----------------------------------------+ 722 | 3 | nb_workers | >= 1 | Selected through --wlcores command line | 723 | | | | argument | 724 +---+--------------+----------------+-----------------------------------------+ 725 | 4 | nb_ports | nb_workers + | Workers use port 0 to port n. | 726 | | | nb_producers + | Producers use port n+1 to port n+m, | 727 | | | x | depending on the Rx adapter capability. | 728 | | | | x = nb_producers in generic pipeline and| 729 | | | | 0 if all the ethdev being used have | 730 | | | | Internal port capability. | 731 | | | | Consumers may use port n+m+1 to port n+o| 732 | | | | depending on the Tx adapter capability. | 733 +---+--------------+----------------+-----------------------------------------+ 734 735.. _figure_eventdev_pipeline_atq_test_generic: 736 737.. figure:: img/eventdev_pipeline_atq_test_generic.* 738 739.. _figure_eventdev_pipeline_atq_test_internal_port: 740 741.. figure:: img/eventdev_pipeline_atq_test_internal_port.* 742 743 pipeline atq test operation. 744 745The pipeline atq test configures the eventdev with Q queues and P ports, 746where Q and P is a function of the number of workers, the number of producers 747and number of stages as mentioned in :numref:`table_eventdev_pipeline_atq_test`. 748 749The atq queue test functions as same as ``pipeline_queue`` test. The difference 750is, It uses, ``all type queue scheme`` instead of separate queues for each 751stage and thus reduces the number of queues required to realize the use case. 752 753 754Application options 755^^^^^^^^^^^^^^^^^^^ 756 757Supported application command line options are following:: 758 759 --verbose 760 --dev 761 --test 762 --socket_id 763 --pool_sz 764 --wlcores 765 --stlist 766 --worker_deq_depth 767 --prod_type_ethdev 768 --deq_tmo_nsec 769 --nb_eth_queues 770 --enable_vector 771 --vector_size 772 --vector_tmo_ns 773 --per_port_pool 774 775 776.. Note:: 777 778 * The ``--prod_type_ethdev`` is mandatory for running this test. 779 780Example 781^^^^^^^ 782 783Example command to run pipeline atq test: 784 785.. code-block:: console 786 787 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 788 --test=pipeline_atq --wlcore=1 --prod_type_ethdev --stlist=a 789 790Example command to run pipeline atq test with vector events: 791 792.. code-block:: console 793 794 sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ 795 --test=pipeline_atq --wlcore=1 --prod_type_ethdev --stlist=a \ 796 --enable_vector --vector_size 512 797