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