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