[dpdk-dev] [PATCH] net/iavf: fix frequent command interaction leads to high cpu

2021-09-10 Thread Qiming Chen
There is currently a scenario test, which will continuously obtain port statistics, causing the CPU usage to soar, which does not meet the demand. After positioning analysis, it is found that the vf and pf command interaction is completed through the iavf_execute_vf_cmd function. After the message

[dpdk-dev] [PATCH] net/iavf: fix rxq buf size alignment

2021-09-10 Thread Qiming Chen
The RTE_ALIGN macro is aligned upwards. If the buf_size variable is not aligned with 1 << I40E_RXQ_CTX_DBUFF_SHIFT, the rx_buf_len is larger than the actual mbuf memory after the operation. When receiving the packet, if the packet is larger than the configured buf_size, it will cause a memory stepp

[dpdk-dev] [PATCH] net/iavf: fix mbuf leak

2021-09-10 Thread Qiming Chen
A local test found that repeated port start and stop operations during the continuous SSE vector bufflist receiving process will cause the mbuf resource to run out. The final positioning is when the port is stopped, the mbuf of the pkt_first_seg pointer is not released. Resources leak. The patch sc

[dpdk-dev] [PATCH] cmdline: reduce ABI

2021-09-10 Thread Dmitry Kozlyuk
Remove the definition of `struct cmdline` from public header. Deprecation notice: https://mails.dpdk.org/archives/dev/2020-September/183310.html Signed-off-by: Dmitry Kozlyuk --- I would also hide struct rdline to be able to alter buffer size, but we don't have a deprecation notice for it. doc/

[dpdk-dev] [PATCH] cmdline: make cmdline structure opaque

2021-09-10 Thread Dmitry Kozlyuk
Remove the definition of `struct cmdline` from public header. Deprecation notice: https://mails.dpdk.org/archives/dev/2020-September/183310.html Signed-off-by: Dmitry Kozlyuk --- Unfortunately there's no deprection notice for struct rdline. If its definition was also hidden, the line buffer size

[dpdk-dev] [PATCH v2] update Windows roadmap

2021-09-10 Thread Dmitry Kozlyuk
Add the current status and the actual roadmap, remove completed entries. More detailed plan in the mailing list: https://mails.dpdk.org/archives/dev/2021-August/217463.html Signed-off-by: Dmitry Kozlyuk --- v2: improve wording, fix typos, remove improbable items (Thomas). content/roadmap/window

Re: [dpdk-dev] [PATCH] app/testpmd: Document what the application does.

2021-09-10 Thread Thomas Monjalon
10/09/2021 19:57, Ben Pfaff: > I could not find anything in the documentation that says what > testpmd does. This should save other people time trying to > figure that out in the future. Good move indeed :) > --- a/doc/guides/testpmd_app_ug/run_app.rst > +++ b/doc/guides/testpmd_app_ug/run_app.r

[dpdk-dev] [Bug 97] rte_memcpy() moves data incorrectly on Ubuntu 18.04 on Intel Skylake

2021-09-10 Thread bugzilla
https://bugs.dpdk.org/show_bug.cgi?id=97 Thomas Monjalon (tho...@monjalon.net) changed: What|Removed |Added Status|CONFIRMED |RESOLVED Resolution

[dpdk-dev] [PATCH v7 11/11] MAINTAINERS: add entry for new pcapng and dumper

2021-09-10 Thread Stephen Hemminger
Claim responsibility for the new code. Signed-off-by: Stephen Hemminger --- MAINTAINERS | 6 ++ 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 266f5ac1dae8..06384ac2702d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1429,6 +1429,12 @@ F: app/test/test_pdump.*

[dpdk-dev] [PATCH v7 10/11] doc: changes for new pcapng and dumpcap

2021-09-10 Thread Stephen Hemminger
Describe the new packet capture library and utilities Signed-off-by: Stephen Hemminger --- doc/api/doxy-api-index.md | 1 + doc/api/doxy-api.conf.in | 1 + .../howto/img/packet_capture_framework.svg| 96 +-- doc/guides/howto/packet_c

[dpdk-dev] [PATCH v7 09/11] test: add a test for pcapng library

2021-09-10 Thread Stephen Hemminger
Simple unit test that created pcapng file using API. To run this test you need to have at least one device. For example: DPDK_TEST=pcapng_autotest ./build/app/test/dpdk-test -l 0-15 \ --no-huge -m 2048 --vdev=net_tap,iface=dummy Signed-off-by: Stephen Hemminger --- app/test/meson.build |

[dpdk-dev] [PATCH v7 08/11] test: add test for bpf_convert

2021-09-10 Thread Stephen Hemminger
Add some functional tests for the Classic BPF to DPDK BPF converter. Signed-off-by: Stephen Hemminger --- app/test/test_bpf.c | 148 1 file changed, 148 insertions(+) diff --git a/app/test/test_bpf.c b/app/test/test_bpf.c index 527c06b80708..565b1965

[dpdk-dev] [PATCH v7 07/11] app/dumpcap: add new packet capture application

2021-09-10 Thread Stephen Hemminger
This is a new packet capture application to replace existing pdump. The new application works like Wireshark dumpcap program and supports the pdump API features. It is not complete yet some features such as filtering are not implemented. Signed-off-by: Stephen Hemminger --- app/dumpcap/main.c

[dpdk-dev] [PATCH v7 06/11] pdump: support pcapng and filtering

2021-09-10 Thread Stephen Hemminger
This enhances the DPDK pdump library to support new pcapng format and filtering via BPF. The internal client/server protocol is changed to support two versions: the original pdump basic version and a new pcapng version. The internal version number (not part of exposed API or ABI) is intentionally

[dpdk-dev] [PATCH v7 05/11] bpf: add function to dump eBPF instructions

2021-09-10 Thread Stephen Hemminger
When debugging converted (and other) programs it is useful to see disassembled eBPF output. Signed-off-by: Stephen Hemminger --- lib/bpf/bpf_convert.c | 7 ++- lib/bpf/bpf_dump.c| 118 ++ lib/bpf/meson.build | 1 + lib/bpf/rte_bpf.h | 14 +++

[dpdk-dev] [PATCH v7 04/11] bpf: add function to convert classic BPF to DPDK BPF

2021-09-10 Thread Stephen Hemminger
The pcap library emits classic BPF (32 bit) and is useful for creating filter programs. The DPDK BPF library only implements extended BPF (eBPF). Add an function to convert from old to new. The rte_bpf_convert function uses rte_malloc to put the resulting program in hugepage shared memory so it

[dpdk-dev] [PATCH v7 03/11] bpf: allow self-xor operation

2021-09-10 Thread Stephen Hemminger
When doing BPF filter program conversion, a common way to zero a register in single instruction is: xor r7,r7 The BPF validator would not allow this because the value of r7 was undefined. But after this operation it always zero. Signed-off-by: Stephen Hemminger --- lib/bpf/bpf_validate.c |

[dpdk-dev] [PATCH v7 02/11] lib: pdump is not supported on Windows

2021-09-10 Thread Stephen Hemminger
The current version of the pdump library was building on Windows, but it was useless since the pdump utility was not being built and Windows does not have multi-process support. The new version of pdump with filtering now has dependency on bpf. But bpf library is not available on Windows. Signed-

[dpdk-dev] [PATCH v7 01/11] librte_pcapng: add new library for writing pcapng files

2021-09-10 Thread Stephen Hemminger
This is utility library for writing pcapng format files used by Wireshark family of utilities. Older tcpdump also knows how to read (but not write) this format. See draft RFC https://www.ietf.org/id/draft-tuexen-opsawg-pcapng-03.html and https://github.com/pcapng/pcapng/ Signed-off-by: Stephe

[dpdk-dev] [PATCH v7 00/11] Packet capture framework enhancements

2021-09-10 Thread Stephen Hemminger
This patch set is a more complete version of the the enhanced packet capture support described last year. The new capture library and utility are: - faster avoids lots of extra I/O, does bursting, etc. - gives more information (multiple ports, queues, etc) - has a better user interface (same

[dpdk-dev] [RFC 1/3] ethdev: update modify field flow action

2021-09-10 Thread Viacheslav Ovsiienko
The generic modify field flow action introduced in [1] has some issues related to the immediate source operand: - immediate source can be presented either as an unsigned 64-bit integer or pointer to data pattern in memory. There was no explicit pointer field defined in the union - the

[dpdk-dev] [RFC 3/3] app/testpmd: fix hex string parser in flow commands

2021-09-10 Thread Viacheslav Ovsiienko
The hexadecimal string parser does not check the target field buffer size, buffer overflow happens and might cause the application failure (segmentation fault is observed usually). Fixes: 169a9fed1f4c ("app/testpmd: fix hex string parser support for flow API") Cc: sta...@dpdk.org Signed-off-by: V

[dpdk-dev] [RFC 2/3] app/testpmd: update modify field flow action support

2021-09-10 Thread Viacheslav Ovsiienko
The testpmd flow create command updates provided: - modify field action supports the updated actions - pointer type added for action source field - pointer and value source field takes hex string instead of unsigned int in host endianness There are some examples of flow with update modi

Re: [dpdk-dev] [PATCH] Enable AddressSanitizer feature on DPDK

2021-09-10 Thread David Christensen
From: Zhihong Peng AddressSanitizer (ASan) is a google memory error detect standard tool. It could help to detect use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs, print detailed error information when error happens, large improve debug efficiency. By referring to i

[dpdk-dev] [PATCH] app/testpmd: Document what the application does.

2021-09-10 Thread Ben Pfaff
I could not find anything in the documentation that says what testpmd does. This should save other people time trying to figure that out in the future. Signed-off-by: Ben Pfaff --- doc/guides/testpmd_app_ug/run_app.rst | 6 ++ 1 file changed, 6 insertions(+) diff --git a/doc/guides/testpmd

[dpdk-dev] [PATCH] checkpatches: suppress warning about strlcpy

2021-09-10 Thread Stephen Hemminger
Latest versions of Linux kernel checkpatch now complain about uses of strlcpy (kernel perfers strcspy). WARNING:STRLCPY: Prefer strscpy over strlcpy But DPDK does not have strcspy so suppress the warning. Signed-off-by: Stephen Hemminger --- devtools/checkpatches.sh | 2 +- 1 file changed, 1 i

[dpdk-dev] [PATCH 6/6] examples/ioat: rename application to dmafwd

2021-09-10 Thread Kevin Laatz
Since the APIs have been updated from rawdev to dmadev, the application should also be renamed to match. This patch also includes the documentation updates for the renaming. Signed-off-by: Kevin Laatz --- .../sample_app_ug/{ioat.rst => dma.rst} | 114 +- doc/guides/sample_a

[dpdk-dev] [PATCH 5/6] examples/ioat: update naming to match change to dmadev

2021-09-10 Thread Kevin Laatz
Existing functions, structures, defines etc need to be updated to reflect the change to using the dmadev APIs. Signed-off-by: Kevin Laatz --- examples/ioat/ioatfwd.c | 187 1 file changed, 93 insertions(+), 94 deletions(-) diff --git a/examples/ioat/ioat

[dpdk-dev] [PATCH 4/6] examples/ioat: port application to dmadev APIs

2021-09-10 Thread Kevin Laatz
The dmadev library abstraction allows applications to use the same APIs for all DMA device drivers in DPDK. This patch updates the ioatfwd application to make use of the new dmadev APIs, in turn making it a generic application which can be used with any of the DMA device drivers. Signed-off-by: Ke

[dpdk-dev] [PATCH 3/6] examples/ioat: add cmd line option to control max frame size

2021-09-10 Thread Kevin Laatz
From: Konstantin Ananyev Add command line option for setting the max frame size. Signed-off-by: Konstantin Ananyev --- examples/ioat/ioatfwd.c | 25 +++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index

[dpdk-dev] [PATCH 2/6] examples/ioat: add cmd-line option to control DMA batch size

2021-09-10 Thread Kevin Laatz
From: Konstantin Ananyev Add a commandline options to control the HW copy batch size in the application. Signed-off-by: Konstantin Ananyev --- examples/ioat/ioatfwd.c | 40 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/examples/ioat/ioa

[dpdk-dev] [PATCH 1/6] examples/ioat: always use same lcore for both DMA requests enqueue and dequeue

2021-09-10 Thread Kevin Laatz
From: Konstantin Ananyev Few changes in ioat sample behaviour: - Always do SW copy for packet metadata (mbuf fields) - Always use same lcore for both DMA requests enqueue and dequeue Main reasons for that: a) it is safer, as idxd PMD doesn't support MT safe enqueue/dequeue (yet). b) sort of more

[dpdk-dev] [PATCH 0/6] port ioatfwd app to dmadev

2021-09-10 Thread Kevin Laatz
This patchset first adds some additional command line options to the existing ioatfwd application to enhance usability. The last 3 patches of this set then port the ioatfwd application to use the dmadev library APIs instead of the IOAT rawdev APIs. Following the port, all variables etc are renamed

[dpdk-dev] [PATCH] efd: change data type of parameter

2021-09-10 Thread Pablo de Lara
rte_efd_create() function was using uint8_t for a socket bitmask, for one of its parameters. This limits the maximum of NUMA sockets to be 8. Changing to to uint64_t increases it to 64, which should be more future-proof. Coverity issue: 366390 Fixes: 56b6ef874f8 ("efd: new Elastic Flow Distributor

[dpdk-dev] [PATCH] crypto/ipsec_mb: support ZUC-256

2021-09-10 Thread Pablo de Lara
Add support for ZUC-EEA3-256 and ZUC-EIA3-256 (only 4-byte tags supported for now). Signed-off-by: Pablo de Lara --- This patch depends on patchset https://patches.dpdk.org/project/dpdk/list/?series=18470 --- doc/guides/cryptodevs/aesni_mb.rst | 1 + doc/guides/rel_notes/release_21_11.r

Re: [dpdk-dev] [PATCH v1 7/7] eal: promote mcfg API's to stable

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 13:30, Anatoly Burakov wrote: > As per ABI policy, move the formerly experimental API's to the stable > section. > > Signed-off-by: Anatoly Burakov > --- > lib/eal/include/rte_eal_memconfig.h | 12 > lib/eal/version.map | 8 +++- > 2 files chang

Re: [dpdk-dev] [PATCH v1 6/7] mem: promote DMA mask API's to stable

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 13:30, Anatoly Burakov wrote: > As per ABI policy, move the formerly experimental API's to the stable > section. > > Signed-off-by: Anatoly Burakov > --- > lib/eal/include/rte_memory.h | 12 > lib/eal/version.map | 6 +++--- > 2 files changed, 3 insertions

Re: [dpdk-dev] [PATCH v1 5/7] mem: promote extmem API's to stable

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 13:30, Anatoly Burakov wrote: > As per ABI policy, move the formerly experimental API's to the stable > section. > Acked-by: Ray Kinsella

Re: [dpdk-dev] [PATCH v1 4/7] mem: promote memseg API's to stable

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 13:30, Anatoly Burakov wrote: > As per ABI policy, move the formerly experimental API's to the stable > section. > > Signed-off-by: Anatoly Burakov > --- > lib/eal/include/rte_memory.h | 17 - > lib/eal/version.map | 34 +-

Re: [dpdk-dev] [PATCH v1 3/7] eal: promote malloc API's to stable

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 13:30, Anatoly Burakov wrote: > As per ABI policy, move the formerly experimental API's to the stable > section. > > Signed-off-by: Anatoly Burakov > --- > lib/eal/include/rte_malloc.h | 10 -- > lib/eal/version.map | 20 ++-- > 2 files changed,

Re: [dpdk-dev] [PATCH v1 2/7] fbarray: promote API's to stable

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 13:30, Anatoly Burakov wrote: > As per ABI policy, move the formerly experimental API's to the stable > section. > > Signed-off-by: Anatoly Burakov > --- > lib/eal/include/rte_fbarray.h | 26 -- > lib/eal/version.map | 52 +--

Re: [dpdk-dev] [PATCH v1 1/7] eal: promote IPC API's to stable

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 13:30, Anatoly Burakov wrote: > As per ABI policy, move the formerly experimental API's to the stable > section. > > Signed-off-by: Anatoly Burakov > --- > lib/eal/include/rte_eal.h | 24 > lib/eal/version.map | 14 ++ > 2 files changed

[dpdk-dev] Minutes of Technical Board Meeting, 2021-08-25

2021-09-10 Thread Hemant Agrawal
Minutes of Technical Board Meeting, 2021-08-25 Members Attending: 11/12 - Aaron Conole - Bruce Richardson - Ferruh Yigit - Hemant Agrawal (Chair) - Honnappa Nagarahalli - Jerin Jacob - Kevin Traynor - Maxime Coquelin - Olivier Matz - Stephen Hemminger - Thomas Monjalon NOTE: The

Re: [dpdk-dev] [PATCH 2/3] app/testpmd: fix RSS hash type update

2021-09-10 Thread Nélio Laranjeiro
On Fri, Sep 10, 2021 at 01:06:53PM +0300, Andrew Rybchenko wrote: > On 9/10/21 12:57 PM, Maxime Coquelin wrote: > > > > > > On 9/10/21 11:51 AM, Andrew Rybchenko wrote: > >> On 9/10/21 12:17 PM, Maxime Coquelin wrote: > >>> port_rss_hash_key_update() initializes rss_conf with the > >>> RSS hash t

Re: [dpdk-dev] [PATCH V2 01/24] pipeline: move data structures to internal header file

2021-09-10 Thread Bruce Richardson
On Fri, Sep 10, 2021 at 02:36:50PM +0100, Cristian Dumitrescu wrote: > Start to consolidate the data structures and inline functions required > by the pipeline instructions into an internal header file. > > Signed-off-by: Cristian Dumitrescu > --- > Depends-on: series-18297 ("[V4,1/4] table: add

Re: [dpdk-dev] [PATCH] port: eventdev port api promoted

2021-09-10 Thread Kinsella, Ray
On 10/09/2021 08:36, David Marchand wrote: > On Fri, Sep 10, 2021 at 9:31 AM Kinsella, Ray wrote: >> On 09/09/2021 17:40, Rahul Shah wrote: >>> rte_port_eventdev_reader_ops, rte_port_eventdev_writer_nodrops_ops, >>> rte_port_eventdev_writer_ops symbols promoted >>> >>> Signed-off-by: Rahul Shah

[dpdk-dev] [PATCH V2 24/24] pipeline: enable pipeline compilation

2021-09-10 Thread Cristian Dumitrescu
Commit the pipeline changes when the compilation process is successful: change the table lookup instructions to execute the action function for each action, replace the regular pipeline instructions with the custom instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipelin

[dpdk-dev] [PATCH V2 23/24] pipeline: build shared object for pipeline

2021-09-10 Thread Cristian Dumitrescu
Build the generated C file into a shared object library. Signed-off-by: Cristian Dumitrescu Signed-off-by: Cunming Liang --- lib/pipeline/rte_swx_pipeline.c | 131 +++ lib/pipeline/rte_swx_pipeline_internal.h | 1 + 2 files changed, 132 insertions(+) diff --git a

[dpdk-dev] [PATCH V2 22/24] pipeline: generate custom instruction functions

2021-09-10 Thread Cristian Dumitrescu
Generate a C function for each custom instruction, which essentially consolidate multiple regular instructions into a single function call. The pipeline program is split into groups of instructions, and a custom instruction is generated for each group that has more than one instruction. Special car

[dpdk-dev] [PATCH V2 21/24] pipeline: generate action functions

2021-09-10 Thread Cristian Dumitrescu
Generate a C function for each action. For most instructions, the associated inline function is called directly. Special care is taken for TX, jump and return instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 662 1 file chang

[dpdk-dev] [PATCH V2 20/24] pipeline: export pipeline instructions to file

2021-09-10 Thread Cristian Dumitrescu
Export the array of translated instructions to a C file. There is one such array per action and one for the pipeline. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 1093 +++ 1 file changed, 1093 insertions(+) diff --git a/lib/pipeline/rte_s

[dpdk-dev] [PATCH V2 19/24] pipeline: introduce pipeline compilation

2021-09-10 Thread Cristian Dumitrescu
Lay the foundation to generate C code for the pipeline: C functions for actions and custom instructions are generated, built as shared object library and loaded into the pipeline. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 44 + 1 fil

[dpdk-dev] [PATCH V2 18/24] pipeline: introduce custom instructions

2021-09-10 Thread Cristian Dumitrescu
For better performance, the option to create custom instructions when the program is translated and add them on-the-fly to the pipeline is now provided. Multiple regular instructions can now be consolidated into a single C function optimized by the C compiler directly. Signed-off-by: Cristian Dumi

[dpdk-dev] [PATCH V2 17/24] pipeline: introduce action functions

2021-09-10 Thread Cristian Dumitrescu
For better performance, the option to run a single function per action is now provided, which requires a single function call per action that can be better optimized by the C compiler, as opposed to one function call per instruction. Special table lookup instructions are added to to support this fe

[dpdk-dev] [PATCH V2 16/24] pipeline: enable persistent instruction meta-data

2021-09-10 Thread Cristian Dumitrescu
Save the instruction meta-data for later use instead of freeing it up once the instruction translation is completed. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 9 ++--- lib/pipeline/rte_swx_pipeline_internal.h | 2 ++ 2 files changed, 8 insertions(+), 3

[dpdk-dev] [PATCH V2 15/24] pipeline: create inline functions for instruction operands

2021-09-10 Thread Cristian Dumitrescu
Create inline functions to get the instruction operands. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline_internal.h | 29 1 file changed, 29 insertions(+) diff --git a/lib/pipeline/rte_swx_pipeline_internal.h b/lib/pipeline/rte_swx_pipeline_interna

[dpdk-dev] [PATCH V2 14/24] pipeline: create inline functions for meter instructions

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the meter instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 457 +-- lib/pipeline/rte_swx_pipeline_internal.h | 541 +++ 2 files changed, 558 insertions(+), 440 deletions(-) diff --git

[dpdk-dev] [PATCH V2 13/24] pipeline: create inline functions for register instructions

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the register instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 320 ++- lib/pipeline/rte_swx_pipeline_internal.h | 475 +++ 2 files changed, 502 insertions(+), 293 deletions(-) diff --git a

[dpdk-dev] [PATCH V2 12/24] pipeline: create inline functions for ALU instructions

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the ALU instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 348 ++--- lib/pipeline/rte_swx_pipeline_internal.h | 616 +++ 2 files changed, 660 insertions(+), 304 deletions(-) diff --git a/lib/pi

[dpdk-dev] [PATCH V2 11/24] pipeline: create inline functions for DMA instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the DMA instruction. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 80 ++ lib/pipeline/rte_swx_pipeline_internal.h | 100 +++ 2 files changed, 123 insertions(+), 57 deletions(-) diff --git a/lib

[dpdk-dev] [PATCH V2 10/24] pipeline: create inline functions for move instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the move instruction. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 26 +++- lib/pipeline/rte_swx_pipeline_internal.h | 53 2 files changed, 58 insertions(+), 21 deletions(-) diff --git a/lib/pipeli

[dpdk-dev] [PATCH V2 09/24] pipeline: create inline functions for extern instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the extern instruction. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 22 +++- lib/pipeline/rte_swx_pipeline_internal.h | 43 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/lib/pipe

[dpdk-dev] [PATCH V2 08/24] pipeline: create inline functions for learn instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the learn and forget instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 36 ++-- lib/pipeline/rte_swx_pipeline_internal.h | 55 2 files changed, 58 insertions(+), 33 deletions(-) diff -

[dpdk-dev] [PATCH V2 07/24] pipeline: create inline functions for validate instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the validate and invalidate instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 12 ++--- lib/pipeline/rte_swx_pipeline_internal.h | 32 2 files changed, 34 insertions(+), 10 deletions(-) diff -

[dpdk-dev] [PATCH V2 06/24] pipeline: create inline functions for emit instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the emit instruction. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 162 - lib/pipeline/rte_swx_pipeline_internal.h | 170 +++ 2 files changed, 228 insertions(+), 104 deletions(-) diff --git

[dpdk-dev] [PATCH V2 05/24] pipeline: create inline functions for extract instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the extract instruction. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 130 - lib/pipeline/rte_swx_pipeline_internal.h | 178 +++ 2 files changed, 203 insertions(+), 105 deletions(-) diff --git a

[dpdk-dev] [PATCH V2 04/24] pipeline: create inline functions for TX instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the TX instruction. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 86 +- lib/pipeline/rte_swx_pipeline_internal.h | 90 2 files changed, 92 insertions(+), 84 deletions(-) diff --git a/li

[dpdk-dev] [PATCH V2 03/24] pipeline: create inline functions for RX instruction

2021-09-10 Thread Cristian Dumitrescu
Create inline functions for the RX instruction. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 38 -- lib/pipeline/rte_swx_pipeline_internal.h | 51 2 files changed, 51 insertions(+), 38 deletions(-) diff --git a/lib/pi

[dpdk-dev] [PATCH V2 02/24] pipeline: move thread inline functions to header file

2021-09-10 Thread Cristian Dumitrescu
Move the thread inline functions to the internal header file. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 56 -- lib/pipeline/rte_swx_pipeline_internal.h | 59 2 files changed, 59 insertions(+), 56 deletions(-) d

[dpdk-dev] [PATCH V2 01/24] pipeline: move data structures to internal header file

2021-09-10 Thread Cristian Dumitrescu
Start to consolidate the data structures and inline functions required by the pipeline instructions into an internal header file. Signed-off-by: Cristian Dumitrescu --- Depends-on: series-18297 ("[V4,1/4] table: add support learner tables") lib/pipeline/meson.build |4 + lib

Re: [dpdk-dev] [PATCH 4/5] lib/power: modify return of queue_stopped

2021-09-10 Thread Burakov, Anatoly
On 10-Sep-21 2:05 PM, Miao Li wrote: Since some vdevs like virtio and vhost do not support rxq_info_get and queue state inquiry, the error return value -ENOTSUP need to be ignored when queue_stopped cannot get rx queue information and rx queue state. This patch changes the return value of queue_s

Re: [dpdk-dev] [PATCH 1/3] net/virtio: add initial RSS support

2021-09-10 Thread Maxime Coquelin
On 9/10/21 2:58 PM, Andrew Rybchenko wrote: > On 9/10/21 2:44 PM, Maxime Coquelin wrote: >> Thanks for the review! >> >> On 9/10/21 12:06 PM, Andrew Rybchenko wrote: >>> On 9/10/21 12:17 PM, Maxime Coquelin wrote: >>> I've failed to find F_RSS definion in virtio spec. >>> Could you share th

Re: [dpdk-dev] [PATCH 1/3] net/virtio: add initial RSS support

2021-09-10 Thread Andrew Rybchenko
On 9/10/21 2:44 PM, Maxime Coquelin wrote: > Thanks for the review! > > On 9/10/21 12:06 PM, Andrew Rybchenko wrote: >> On 9/10/21 12:17 PM, Maxime Coquelin wrote: >>> >> I've failed to find F_RSS definion in virtio spec. >> Could you share the reference, please. >> >> Without the sepc it is almos

Re: [dpdk-dev] [PATCH v1 1/1] vfio: add page-by-page mapping API

2021-09-10 Thread Burakov, Anatoly
On 10-Sep-21 12:27 PM, Anatoly Burakov wrote: Currently, there is no way to map memory for DMA in a way that allows unmapping it partially later, because some IOMMU's do not support partial unmapping. There is a workaround of mapping all of these segments separately, but this is inconvenient and

[dpdk-dev] [PATCH 24/24] pipeline: enable pipeline compilation

2021-09-10 Thread Cristian Dumitrescu
Commit the pipeline changes when the compilation process is successful: change the table lookup instructions to execute the action function for each action, replace the regular pipeline instructions with the custom instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipelin

[dpdk-dev] [PATCH 23/24] pipeline: build shared object for pipeline

2021-09-10 Thread Cristian Dumitrescu
Build the generated C file into a shared object library. Signed-off-by: Cristian Dumitrescu Signed-off-by: Cunming Liang --- lib/pipeline/rte_swx_pipeline.c | 131 +++ lib/pipeline/rte_swx_pipeline_internal.h | 1 + 2 files changed, 132 insertions(+) diff --git a

[dpdk-dev] [PATCH 22/24] pipeline: generate custom instruction functions

2021-09-10 Thread Cristian Dumitrescu
Generate a C function for each custom instruction, which essentially consolidate multiple regular instructions into a single function call. The pipeline program is split into groups of instructions, and a custom instruction is generated for each group that has more than one instruction. Special car

[dpdk-dev] [PATCH 21/24] pipeline: generate action functions

2021-09-10 Thread Cristian Dumitrescu
Generate a C function for each action. For most instructions, the associated inline function is called directly. Special care is taken for TX, jump and return instructions. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 662 1 file chang

[dpdk-dev] [PATCH 20/24] pipeline: export pipeline instructions to file

2021-09-10 Thread Cristian Dumitrescu
Export the array of translated instructions to a C file. There is one such array per action and one for the pipeline. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 1097 +++ 1 file changed, 1097 insertions(+) diff --git a/lib/pipeline/rte_s

[dpdk-dev] [PATCH 19/24] pipeline: introduce pipeline compilation

2021-09-10 Thread Cristian Dumitrescu
Lay the foundation to generate C code for the pipeline: C functions for actions and custom instructions are generated, built as shared object library and loaded into the pipeline. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 44 + 1 fil

[dpdk-dev] [PATCH 18/24] pipeline: introduce custom instructions

2021-09-10 Thread Cristian Dumitrescu
For better performance, the option to create custom instructions when the program is translated and add them on-the-fly to the pipeline is now provided. Multiple regular instructions can now be consolidated into a single C function optimized by the C compiler directly. Signed-off-by: Cristian Dumi

[dpdk-dev] [PATCH v1 3/7] eal: promote malloc API's to stable

2021-09-10 Thread Anatoly Burakov
As per ABI policy, move the formerly experimental API's to the stable section. Signed-off-by: Anatoly Burakov --- lib/eal/include/rte_malloc.h | 10 -- lib/eal/version.map | 20 ++-- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/lib/eal/include

[dpdk-dev] [PATCH 17/24] pipeline: introduce action functions

2021-09-10 Thread Cristian Dumitrescu
For better performance, the option to run a single function per action is now provided, which requires a single function call per action that can be better optimized by the C compiler, as opposed to one function call per instruction. Special table lookup instructions are added to to support this fe

[dpdk-dev] [PATCH v1 4/7] mem: promote memseg API's to stable

2021-09-10 Thread Anatoly Burakov
As per ABI policy, move the formerly experimental API's to the stable section. Signed-off-by: Anatoly Burakov --- lib/eal/include/rte_memory.h | 17 - lib/eal/version.map | 34 +- 2 files changed, 17 insertions(+), 34 deletions(-) diff --

[dpdk-dev] [PATCH v1 2/7] fbarray: promote API's to stable

2021-09-10 Thread Anatoly Burakov
As per ABI policy, move the formerly experimental API's to the stable section. Signed-off-by: Anatoly Burakov --- lib/eal/include/rte_fbarray.h | 26 -- lib/eal/version.map | 52 +-- 2 files changed, 26 insertions(+), 52 deletions(-) dif

[dpdk-dev] [PATCH v1 6/7] mem: promote DMA mask API's to stable

2021-09-10 Thread Anatoly Burakov
As per ABI policy, move the formerly experimental API's to the stable section. Signed-off-by: Anatoly Burakov --- lib/eal/include/rte_memory.h | 12 lib/eal/version.map | 6 +++--- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/lib/eal/include/rte_memory.h

[dpdk-dev] [PATCH v1 7/7] eal: promote mcfg API's to stable

2021-09-10 Thread Anatoly Burakov
As per ABI policy, move the formerly experimental API's to the stable section. Signed-off-by: Anatoly Burakov --- lib/eal/include/rte_eal_memconfig.h | 12 lib/eal/version.map | 8 +++- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/lib/eal/incl

[dpdk-dev] [PATCH 16/24] pipeline: enable persistent instruction meta-data

2021-09-10 Thread Cristian Dumitrescu
Save the instruction meta-data for later use instead of freeing it up once the instruction translation is completed. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 9 ++--- lib/pipeline/rte_swx_pipeline_internal.h | 2 ++ 2 files changed, 8 insertions(+), 3

[dpdk-dev] [PATCH v1 1/7] eal: promote IPC API's to stable

2021-09-10 Thread Anatoly Burakov
As per ABI policy, move the formerly experimental API's to the stable section. Signed-off-by: Anatoly Burakov --- lib/eal/include/rte_eal.h | 24 lib/eal/version.map | 14 ++ 2 files changed, 6 insertions(+), 32 deletions(-) diff --git a/lib/eal/includ

[dpdk-dev] [PATCH v1 5/7] mem: promote extmem API's to stable

2021-09-10 Thread Anatoly Burakov
As per ABI policy, move the formerly experimental API's to the stable section. Signed-off-by: Anatoly Burakov --- lib/eal/include/rte_memory.h | 16 lib/eal/version.map | 10 -- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/lib/eal/include/rte_

[dpdk-dev] [PATCH 15/24] pipeline: create inline functions for instruction operands

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline_internal.h | 29 1 file changed, 29 insertions(+) diff --git a/lib/pipeline/rte_swx_pipeline_internal.h b/lib/pipeline/rte_swx_pipeline_internal.h index 791adfb471..efd136196f 100644 --- a/lib/pipeline

[dpdk-dev] [PATCH 08/24] pipeline: create inline functions for learn instruction

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 36 ++-- lib/pipeline/rte_swx_pipeline_internal.h | 55 2 files changed, 58 insertions(+), 33 deletions(-) diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_swx_pi

[dpdk-dev] [PATCH 14/24] pipeline: create inline functions for meter instructions

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 457 +-- lib/pipeline/rte_swx_pipeline_internal.h | 541 +++ 2 files changed, 558 insertions(+), 440 deletions(-) diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_

[dpdk-dev] [PATCH 13/24] pipeline: create inline functions for register instructions

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 320 ++- lib/pipeline/rte_swx_pipeline_internal.h | 475 +++ 2 files changed, 502 insertions(+), 293 deletions(-) diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_swx_

[dpdk-dev] [PATCH 04/24] pipeline: create inline functions for TX instruction

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 86 +- lib/pipeline/rte_swx_pipeline_internal.h | 90 2 files changed, 92 insertions(+), 84 deletions(-) diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_

[dpdk-dev] [PATCH 06/24] pipeline: create inline functions for emit instruction

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 162 - lib/pipeline/rte_swx_pipeline_internal.h | 170 +++ 2 files changed, 228 insertions(+), 104 deletions(-) diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rt

[dpdk-dev] [PATCH 02/24] pipeline: move thread inline functions to header file

2021-09-10 Thread Cristian Dumitrescu
Move the thread inline functions to the internal header file. Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 56 -- lib/pipeline/rte_swx_pipeline_internal.h | 59 2 files changed, 59 insertions(+), 56 deletions(-) d

[dpdk-dev] [PATCH 01/24] pipeline: move data structures to internal header file

2021-09-10 Thread Cristian Dumitrescu
Start to consolidate the data structures and inline functions required by the pipeline instructions into an internal header file. Signed-off-by: Cristian Dumitrescu --- Depends-on: series-18297 ("[V4,1/4] table: add support learner tables") lib/pipeline/meson.build |4 + lib

[dpdk-dev] [PATCH 12/24] pipeline: create inline functions for ALU instructions

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 348 ++--- lib/pipeline/rte_swx_pipeline_internal.h | 616 +++ 2 files changed, 660 insertions(+), 304 deletions(-) diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_swx_pi

[dpdk-dev] [PATCH 03/24] pipeline: create inline functions for RX instruction

2021-09-10 Thread Cristian Dumitrescu
Signed-off-by: Cristian Dumitrescu --- lib/pipeline/rte_swx_pipeline.c | 38 -- lib/pipeline/rte_swx_pipeline_internal.h | 51 2 files changed, 51 insertions(+), 38 deletions(-) diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_swx_

  1   2   >