[PATCH v2 3/3] app/eventdev: prevent mempool exhaustion

2023-04-25 Thread pbhagavatula
From: Pavan Nikhilesh Prevent mempool exhaustion due to elements being stuck in lcore local caches. Signed-off-by: Pavan Nikhilesh --- app/test-eventdev/test_perf_common.c | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/test-eventdev/test_perf_common.c b/ap

[PATCH v3] node: add ipv4 reassembly node

2023-06-05 Thread pbhagavatula
From: Pavan Nikhilesh Add IPv4 reassembly node. Signed-off-by: Pavan Nikhilesh --- Depends-on: series-28278 v3 Changes: - Actually include the changes that fix compilation. v2 Changes: - Fix compilation. doc/guides/prog_guide/graph_lib.rst | 8 ++ lib/node/ethdev_rx.c|

[PATCH] config/arm: fix Neoverse N2 march flag

2023-06-08 Thread pbhagavatula
From: Pavan Nikhilesh The -march flag of Neoverse N2 should be `armv9-a` when used along with -mcpu=neoverse-n2. Fixes: ea85ed1f6882 ("config/arm: increase nodes and cores for Neoverse N2") Signed-off-by: Pavan Nikhilesh --- config/arm/meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2

[PATCH v2] config/arm: fix Neoverse N2 march flag

2023-06-08 Thread pbhagavatula
From: Pavan Nikhilesh The -march flag of Neoverse N2 should be removed with the introduction of -mcpu='neoverse-n2' as they are incompatible. Fixes: ea85ed1f6882 ("config/arm: increase nodes and cores for Neoverse N2") Signed-off-by: Pavan Nikhilesh Tested-by: Srikanth Yalavarthi --- v2 Chan

[PATCH v2 1/3] event/cnxk: align TX queue buffer adjustment

2023-06-13 Thread pbhagavatula
From: Pavan Nikhilesh Remove recalculating SQB thresholds in Tx queue buffer adjustment. The adjustment is already done during Tx queue setup. Signed-off-by: Pavan Nikhilesh --- v2 Changes: - Rebase on ToT. drivers/event/cnxk/cn10k_eventdev.c | 9 + drivers/event/cnxk/cn10k_tx_wor

[PATCH v2 2/3] event/cnxk: use local labels in asm intrinsic

2023-06-13 Thread pbhagavatula
From: Pavan Nikhilesh Using labels in asm generates them as regular function and shades callstack in tools like gdb or perf. Use local label instead for better visibility. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cn10k_worker.h| 8 ++--- drivers/event/cnxk/cn9k_worker.h |

[PATCH v2 3/3] event/cnxk: use WFE in Tx fc wait

2023-06-13 Thread pbhagavatula
From: Pavan Nikhilesh Use WFE is Tx path when waiting for space in the Tx queue. Depending upon the Tx queue contention and size, WFE will reduce the cache pressure and power consumption. In multi-core scenarios we have observed up to 8W power reduction. Signed-off-by: Pavan Nikhilesh --- driv

[PATCH] drivers/cnxk: disable asm operand width warning

2023-06-14 Thread pbhagavatula
From: Pavan Nikhilesh Disable -Wasm-operand-widths when using clang. Fixes: 1c80eb7a3ccc ("event/cnxk: use WFE in Tx flow control wait") Signed-off-by: Pavan Nikhilesh --- Jerin, Please squash this to 1c80eb7a3ccc. drivers/event/cnxk/meson.build | 4 drivers/net/cnxk/meson.build | 3

[PATCH v6 1/2] ip_frag: optimize key compare and hash generation

2023-07-11 Thread pbhagavatula
From: Pavan Nikhilesh Use optimized rte_hash_k32_cmp_eq routine for key comparison for x86 and ARM64. Use CRC instructions for hash generation on ARM64. Signed-off-by: Pavan Nikhilesh Reviewed-by: Ruifeng Wang Acked-by: Konstantin Ananyev --- On Neoverse-N2, performance improved by 10% when m

[PATCH v6 2/2] test: add reassembly perf test

2023-07-11 Thread pbhagavatula
From: Pavan Nikhilesh Add reassembly perf autotest for both ipv4 and ipv6 reassembly. Each test is performed with variable number of fragments per flow, either ordered or unordered fragments and interleaved flows. Signed-off-by: Pavan Nikhilesh Reviewed-by: Amit Prakash Shukla Tested-by: Amit

[PATCH v2 1/5] examples/l3fwd: fix port group mask generation

2022-09-02 Thread pbhagavatula
From: Pavan Nikhilesh Fix port group mask generation in altivec, vec_any_eq returns 0 or 1 while port_groupx4 expects comparison mask result. Fixes: 2193b7467f7a ("examples/l3fwd: optimize packet processing on powerpc") Cc: sta...@dpdk.org Signed-off-by: Pavan Nikhilesh --- v2 Changes: - Fix

[PATCH v2 2/5] examples/l3fwd: split processing and send stages

2022-09-02 Thread pbhagavatula
From: Pavan Nikhilesh Split packet processing from packet send stage, as send stage is not common for poll and event mode. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em_hlm.h | 39 +++--- examples/l3fwd/l3fwd_lpm_altivec.h | 25 --- exa

[PATCH v2 4/5] examples/l3fwd: fix event vector processing in fib

2022-09-02 Thread pbhagavatula
From: Pavan Nikhilesh Fix stack overflow when event vector size is greater than MAX_BURST_SIZE. Add missing mac swap and rfc1812 stage. Fixes: e8adca1951d4 ("examples/l3fwd: support event vector") Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_fib.c | 124 ++--

[PATCH v2 3/5] examples/l3fwd: use lpm vector path for event vector

2022-09-02 Thread pbhagavatula
From: Pavan Nikhilesh Use lpm vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_altivec.h | 29 ++ examples/l3fwd/l3fwd_event.h | 71 ++ examples/l3fwd/l3fwd_lpm.c | 38 ++ examples/l3f

[PATCH v2 5/5] examples/l3fwd: use em vector path for event vector

2022-09-02 Thread pbhagavatula
From: Pavan Nikhilesh Use em vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em.c| 12 +++-- examples/l3fwd/l3fwd_em.h| 29 +-- examples/l3fwd/l3fwd_em_hlm.h| 72 +--- examples/l3fwd/l3

[PATCH v3 1/5] examples/l3fwd: fix port group mask generation

2022-09-11 Thread pbhagavatula
From: Pavan Nikhilesh Fix port group mask generation in altivec, vec_any_eq returns 0 or 1 while port_groupx4 expects comparison mask result. Fixes: 2193b7467f7a ("examples/l3fwd: optimize packet processing on powerpc") Cc: sta...@dpdk.org Signed-off-by: Pavan Nikhilesh --- v3 Changes: - PPC

[PATCH v3 2/5] examples/l3fwd: split processing and send stages

2022-09-11 Thread pbhagavatula
From: Pavan Nikhilesh Split packet processing from packet send stage, as send stage is not common for poll and event mode. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em_hlm.h | 39 +++--- examples/l3fwd/l3fwd_lpm_altivec.h | 25 --- exa

[PATCH v3 4/5] examples/l3fwd: fix event vector processing in fib

2022-09-11 Thread pbhagavatula
From: Pavan Nikhilesh Fix stack overflow when event vector size is greater than MAX_BURST_SIZE. Add missing mac swap and rfc1812 stage. Fixes: e8adca1951d4 ("examples/l3fwd: support event vector") Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_fib.c | 123 ++--

[PATCH v3 3/5] examples/l3fwd: use lpm vector path for event vector

2022-09-11 Thread pbhagavatula
From: Pavan Nikhilesh Use lpm vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_altivec.h | 29 ++ examples/l3fwd/l3fwd_event.h | 71 ++ examples/l3fwd/l3fwd_lpm.c | 38 ++ examples/l3f

[PATCH v3 5/5] examples/l3fwd: use em vector path for event vector

2022-09-11 Thread pbhagavatula
From: Pavan Nikhilesh Use em vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em.c| 12 +++-- examples/l3fwd/l3fwd_em.h| 29 +-- examples/l3fwd/l3fwd_em_hlm.h| 72 +--- examples/l3fwd/l3

[PATCH v2 1/3] event/cnxk: avoid reading non cached registers

2022-09-20 Thread pbhagavatula
From: Pavan Nikhilesh Avoid reading non-cached registers in fastpath. PENDSTATE need not be read before tag flush in tx enqueue context as we have additional checks prior to check for pending flushes. Signed-off-by: Pavan Nikhilesh --- Depends-on: Series-24634 v2 Changes: - Rebase on next-n

[PATCH v2 3/3] event/cnxk: disable timer resolution estimation

2022-09-20 Thread pbhagavatula
From: Pavan Nikhilesh Disable timer resolution estimation, read TIM LF clock registers to get the current running clock counter as estimating causes time drift. Signed-off-by: Pavan Nikhilesh --- drivers/common/cnxk/hw/tim.h | 6 ++ drivers/event/cnxk/cnxk_tim_evdev.c | 140 +++-

[PATCH v2 2/3] event/cnxk: set dequeue mode to prefetch with wait

2022-09-20 Thread pbhagavatula
From: Pavan Nikhilesh Set default GetWork(dequeue) mode to prefetch with wait for event. Signed-off-by: Pavan Nikhilesh --- doc/guides/eventdevs/cnxk.rst | 5 +++-- drivers/event/cnxk/cn10k_eventdev.c | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/guides/eventd

[PATCH v2 1/3] eventdev: add element offset to event vector

2022-09-21 Thread pbhagavatula
From: Pavan Nikhilesh Add `rte_event_vector:elem_offset:12` bit field event vector structure the bits are taken from `rte_event_vector::rsvd:15`. The element offset defines the offset into the vector array at which valid elements start. The valid elements count will be equal to `rte_event_vector:

[PATCH v2 2/3] examples: update event vector free routine

2022-09-21 Thread pbhagavatula
From: Pavan Nikhilesh Update event vector free routine to account for element offset while freeing elements. Signed-off-by: Pavan Nikhilesh --- app/test-eventdev/test_pipeline_common.c | 5 +++-- examples/l2fwd-event/l2fwd_common.c | 5 +++-- examples/l3fwd/l3fwd_event.c | 5 +

[PATCH v2 3/3] event/cnxk: update event vector Tx routine

2022-09-21 Thread pbhagavatula
From: Pavan Nikhilesh Update event vector transmit routine to honor elem_offset. Use ``rte_event_vector::elem_offset`` to report partial vector transmission to the application when there is not enough space in the SQ. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cn10k_worker.h | 145 +

[PATCH] app/eventdev: fix incorrect cleanup check

2022-09-26 Thread pbhagavatula
From: Pavan Nikhilesh During cleanup `rte_event_port_quiesce` should be called irrespective of whether an event has been dequeued or not to flush any prefetched events. Fixes: 7da008df0c8d ("app/eventdev: use port quiescing") Signed-off-by: Pavan Nikhilesh --- app/test-eventdev/test_pipeline_

[dpdk-dev] [PATCH v2 02/13] eventdev: separate internal structures

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Create rte_eventdev_core.h and move all the internal data structures to this file. These structures are mostly used by drivers, but they need to be in the public header file as they are accessed by datapath inline functions for performance reasons. The accessibility of these

[dpdk-dev] [PATCH v2 01/13] eventdev: make driver interface as internal

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Mark all the driver specific functions as internal, remove `rte` prefix from `struct rte_eventdev_ops`. Remove experimental tag from internal functions. Remove `eventdev_pmd.h` from non-internal header files. Signed-off-by: Pavan Nikhilesh --- v2 Changes: - Rework inline

[dpdk-dev] [PATCH v2 03/13] eventdev: allocate max space for internal arrays

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Allocate max space for internal port, port config, queue config and link map arrays. Introduce new macro RTE_EVENT_MAX_PORTS_PER_DEV and set it to max possible value. This simplifies the port and queue reconfigure scenarios and will also allow inline functions to refer point

[dpdk-dev] [PATCH v2 04/13] eventdev: move inline APIs into separate structure

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Move fastpath inline function pointers from rte_eventdev into a separate structure accessed via a flat array. The intension is to make rte_eventdev and related structures private to avoid future API/ABI breakages.` Signed-off-by: Pavan Nikhilesh Acked-by: Ray Kinsella ---

[dpdk-dev] [PATCH v2 05/13] eventdev: use new API for inline functions

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Use new driver interface for the fastpath enqueue/dequeue inline functions. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/rte_event_crypto_adapter.h | 15 +--- lib/eventdev/rte_event_eth_tx_adapter.h | 15 lib/eventdev/rte_event

[dpdk-dev] [PATCH v2 06/13] eventdev: hide event device related structures

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Move rte_eventdev, rte_eventdev_data structures to eventdev_pmd.h. Signed-off-by: Pavan Nikhilesh --- drivers/event/dlb2/dlb2_inline_fns.h | 2 + drivers/event/dsw/dsw_evdev.h | 2 + drivers/event/octeontx/timvf_worker.h | 2 + drivers/net/octeontx/octeontx

[dpdk-dev] [PATCH v 07/13] eventdev: hide timer adapter PMD file

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Hide rte_event_timer_adapter_pmd.h file as it is an internal file. Remove rte_ prefix from rte_event_timer_adapter_ops structure. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cnxk_tim_evdev.c | 5 ++-- drivers/event/cnxk/cnxk_tim_evdev.h | 2

[dpdk-dev] [PATCH v2 07/13] eventdev: hide timer adapter PMD file

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Hide rte_event_timer_adapter_pmd.h file as it is an internal file. Remove rte_ prefix from rte_event_timer_adapter_ops structure. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cnxk_tim_evdev.c | 5 ++-- drivers/event/cnxk/cnxk_tim_evdev.h | 2

[dpdk-dev] [PATCH v2 08/13] eventdev: remove rte prefix for internal structs

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Remove rte_ prefix from rte_eth_event_enqueue_buffer, rte_event_eth_rx_adapter and rte_event_crypto_adapter as they are only used in rte_event_eth_rx_adapter.c and rte_event_crypto_adapter.c Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/rte_

[dpdk-dev] [PATCH v2 09/13] eventdev: rearrange fields in timer object

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Rearrange fields in rte_event_timer data structure to remove holes. Also, remove use of volatile from rte_event_timer. Signed-off-by: Pavan Nikhilesh --- lib/eventdev/rte_event_timer_adapter.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/eve

[dpdk-dev] [PATCH v2 10/13] eventdev: move timer adapters memory to hugepage

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Move memory used by timer adapters to hugepage. Allocate memory on the first adapter create or lookup to address both primary and secondary process usecases. This will prevent TLB misses if any and aligns to memory structure of other subsystems. Signed-off-by: Pavan Nikhile

[dpdk-dev] [PATCH v2 11/13] eventdev: promote event vector API to stable

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Promote event vector configuration APIs to stable. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan Acked-by: Ray Kinsella --- lib/eventdev/rte_event_eth_rx_adapter.h | 2 -- lib/eventdev/rte_eventdev.h | 1 - lib/eventdev/version.map

[dpdk-dev] [PATCH v2 12/13] eventdev: make trace APIs internal

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Slowpath trace APIs are only used in rte_eventdev.c so make them as internal. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/{rte_eventdev_trace.h => eventdev_trace.h} | 0 lib/eventdev/eventdev_trace_points.c| 2 +- lib/e

[dpdk-dev] [PATCH v2 13/13] eventdev: mark trace variables as internal

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Mark rte_trace global variables as internal i.e. remove them from experimental section of version map. Some of them are used in inline APIs, mark those as global. Signed-off-by: Pavan Nikhilesh Acked-by: Ray Kinsella --- lib/eventdev/version.map | 77 ++--

[dpdk-dev] [PATCH 1/3] examples/l3fwd: increase number of routes

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Increase the number of routes from 8 to 16 that are statically added for lpm and em mode as most of the SoCs support more than 8 interfaces. The number of routes added is equal to the number of ethernet devices ports enabled through port mask. Signed-off-by: Pavan Nikhilesh

[dpdk-dev] [PATCH 2/3] examples/l3fwd: print port bdf when adding routes

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Since the number of Ethernet ports have gone up, print the pci bdf along with the routes. This is also helpful for cases where allow listing order is not honored. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_fib.c | 16 ++-- examples/l3fwd/l3fwd_lpm

[dpdk-dev] [PATCH 3/3] examples/l3fwd: use reserved addresses for EM mode

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh The l3fwd example should use the reserved IPv4/v6 reserved address ranges defined in RFC5735, RFC5180 and RFC863 discard protocol for the port number in the exact match mode of L3 forwarding. Signed-off-by: Pavan Nikhilesh --- doc/guides/rel_notes/release_21_11.rst | 6

[dpdk-dev] [PATCH v4 1/3] examples/l3fwd: increase number of routes

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Increase the number of routes from 8 to 16 that are statically added for lpm and em mode as most of the SoCs support more than 8 interfaces. The number of routes added is equal to the number of ethernet devices ports enabled through port mask. Signed-off-by: Pavan Nikhilesh

[dpdk-dev] [PATCH v4 2/3] examples/l3fwd: print port bdf when adding routes

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Since the number of Ethernet ports have gone up, print the pci bdf along with the routes. This is also helpful for cases where allow listing order is not honored. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_fib.c | 16 ++-- examples/l3fwd/l3fwd_lpm

[dpdk-dev] [PATCH v4 3/3] examples/l3fwd: use reserved addresses for EM mode

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh The l3fwd example should use the reserved IPv4/v6 reserved address ranges defined in RFC5735, RFC5180 and RFC863 discard protocol for the port number in the exact match mode of L3 forwarding. Signed-off-by: Pavan Nikhilesh --- doc/guides/rel_notes/release_21_11.rst | 6

[dpdk-dev] [PATCH v4 1/3] net/thunderx: enable build only on 64-bit Linux

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Due to Linux kernel AF(Admin fuction) driver dependency, only enable build for 64-bit Linux. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- v4 Changes: - Update commit message regarding dependency on AF driver. drivers/net/thunderx/meson.build | 4 ++-- 1 fi

[dpdk-dev] [PATCH v4 2/3] common/octeontx: enable build only on 64-bit Linux

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Due to Linux kernel AF(Admin fuction) driver dependency, only enable build for 64-bit Linux. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- drivers/common/octeontx/meson.build | 4 ++-- drivers/compress/octeontx/meson.build | 6 ++ drivers/crypto/octeontx

[dpdk-dev] [PATCH v4 3/3] common/octeontx2: enable build only on 64-bit Linux

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Due to Linux kernel AF(Admin Fuction) driver dependency, only enable build for 64-bit Linux. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- drivers/common/octeontx2/meson.build | 10 ++ drivers/event/octeontx2/meson.build | 4 ++-- drivers/mempool/o

[dpdk-dev] [PATCH v3 1/2] hash: split x86 and SW hash CRC intrinsics

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Split x86 and SW hash crc intrinsics into a separate files. Signed-off-by: Pavan Nikhilesh --- v3 Changes: - Split x86 and SW hash crc functions into separate files. - Rename `rte_crc_arm64.h` to `hash_crc_arm64.h` as it is internal and not installed by meson build.

[dpdk-dev] [PATCH v3 2/2] hash: unify crc32 selection for x86 and Arm

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Merge crc32 hash calculation public API implementation for x86 and Arm. Select the best available CRC32 algorithm when unsupported algorithm on a given CPU architecture is requested by an application. Previously, if an application directly includes `rte_crc_arm64.h` without

[dpdk-dev] [PATCH v4 1/2] hash: split x86 and SW hash CRC intrinsics

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Split x86 and SW hash crc intrinsics into a separate files. Signed-off-by: Pavan Nikhilesh --- v4 Changes: - Fix compilation issues v3 Changes: - Split x86 and SW hash crc functions into separate files. - Rename `rte_crc_arm64.h` to `hash_crc_arm64.h` as it is intern

[dpdk-dev] [PATCH v4 2/2] hash: unify crc32 selection for x86 and Arm

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Merge crc32 hash calculation public API implementation for x86 and Arm. Select the best available CRC32 algorithm when unsupported algorithm on a given CPU architecture is requested by an application. Previously, if an application directly includes `rte_crc_arm64.h` without

[dpdk-dev] [PATCH v5 1/3] net/thunderx: enable build only on 64-bit Linux

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Due to Linux kernel AF(Admin function) driver dependency, only enable build for 64-bit Linux. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- v5 Changes - s/fuction/function. v4 Changes: - Update commit message regarding dependency on AF driver. drivers/ne

[dpdk-dev] [PATCH v5 2/3] common/octeontx: enable build only on 64-bit Linux

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Due to Linux kernel AF(Admin function) driver dependency, only enable build for 64-bit Linux. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- drivers/common/octeontx/meson.build | 4 ++-- drivers/compress/octeontx/meson.build | 6 ++ drivers/crypto/octeont

[dpdk-dev] [PATCH v5 3/3] common/octeontx2: enable build only on 64-bit Linux

2021-10-03 Thread pbhagavatula
From: Pavan Nikhilesh Due to Linux kernel AF(Admin Function) driver dependency, only enable build for 64-bit Linux. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- drivers/common/octeontx2/meson.build | 10 ++ drivers/event/octeontx2/meson.build | 4 ++-- drivers/mempool/

[dpdk-dev] [PATCH 1/3] event/cnxk: fix packet Tx overflow

2021-10-04 Thread pbhagavatula
From: Pavan Nikhilesh The transmit loop incorrectly assumes that nb_mbufs is always a multiple of 4 when transmitting an event vector. The max size of the vector might not be reached and pushed out early due to timeout. Fixes: 761a321acf91 ("event/cnxk: support vectorized Tx event fast path") S

[dpdk-dev] [PATCH 2/3] event/cnxk: reduce workslot memory consumption

2021-10-04 Thread pbhagavatula
From: Pavan Nikhilesh SSO group base addresses are always are always contiguous we need not store all the base addresses in workslot memory, instead just store the base address and compute the group address offset when required. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cn10k_event

[dpdk-dev] [PATCH 3/3] event/cnxk: rework enqueue path

2021-10-04 Thread pbhagavatula
From: Pavan Nikhilesh Rework SSO enqueue path for CN9K make it similar to CN10K enqueue interface. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cn9k_eventdev.c| 28 ++- drivers/event/cnxk/cn9k_worker.c | 21 ++--- drivers/event/cnxk/cn9k_worker.h

[dpdk-dev] [RFC] eal/arm: remove CASP constraints for GCC

2021-10-04 Thread pbhagavatula
From: Pavan Nikhilesh GCC now assigns even register pairs for CASP, the fix has also been backported to all stable releases of older GCC versions. Removing the manual register allocation allows GCC to inline the functions and pick optimal registers for performing CASP. Signed-off-by: Pavan Nikhi

[dpdk-dev] [PATCH v2] test: add reassembly perf test

2021-10-04 Thread pbhagavatula
From: Pavan Nikhilesh Add reassembly perf autotest for both ipv4 and ipv6 reassembly. Each test is performed with vairable number of fragments per flow, either ordered or unorderd fragments and interleaved flows. Signed-off-by: Pavan Nikhilesh --- v2 Changes - Rebase to master, reduce memory

[dpdk-dev] [PATCH v3] test: add reassembly perf test

2021-10-04 Thread pbhagavatula
From: Pavan Nikhilesh Add reassembly perf autotest for both ipv4 and ipv6 reassembly. Each test is performed with variable number of fragments per flow, either ordered or unordered fragments and interleaved flows. Signed-off-by: Pavan Nikhilesh --- v3 Changes: - Fix checkpatch issues. v2 Cha

[dpdk-dev] [PATCH v3 01/14] eventdev: make driver interface as internal

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Mark all the driver specific functions as internal, remove `rte` prefix from `struct rte_eventdev_ops`. Remove experimental tag from internal functions. Remove `eventdev_pmd.h` from non-internal header files. Signed-off-by: Pavan Nikhilesh --- v3 Changes: - Reset fp_ops

[dpdk-dev] [PATCH v3 02/14] eventdev: separate internal structures

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Create rte_eventdev_core.h and move all the internal data structures to this file. These structures are mostly used by drivers, but they need to be in the public header file as they are accessed by datapath inline functions for performance reasons. The accessibility of these

[dpdk-dev] [PATCH v3 03/14] eventdev: allocate max space for internal arrays

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Allocate max space for internal port, port config, queue config and link map arrays. Introduce new macro RTE_EVENT_MAX_PORTS_PER_DEV and set it to max possible value. This simplifies the port and queue reconfigure scenarios and will also allow inline functions to refer point

[dpdk-dev] [PATCH v3 04/14] eventdev: move inline APIs into separate structure

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Move fastpath inline function pointers from rte_eventdev into a separate structure accessed via a flat array. The intension is to make rte_eventdev and related structures private to avoid future API/ABI breakages.` Signed-off-by: Pavan Nikhilesh Acked-by: Ray Kinsella ---

[dpdk-dev] [PATCH v3 05/14] drivers/event: invoke probing finish function

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Invoke event_dev_probing_finish() functions at the end of probing, this function sets the function pointers in the fp_ops flat array. Signed-off-by: Pavan Nikhilesh --- drivers/event/dpaa/dpaa_eventdev.c | 4 +++- drivers/event/dpaa2/dpaa2_eventdev.c | 4 +++

[dpdk-dev] [PATCH v3 06/14] eventdev: use new API for inline functions

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Use new driver interface for the fastpath enqueue/dequeue inline functions. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/rte_event_crypto_adapter.h | 15 +--- lib/eventdev/rte_event_eth_tx_adapter.h | 15 lib/eventdev/rte_event

[dpdk-dev] [PATCH v3 07/14] eventdev: hide event device related structures

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Move rte_eventdev, rte_eventdev_data structures to eventdev_pmd.h. Signed-off-by: Pavan Nikhilesh --- drivers/event/dlb2/dlb2_inline_fns.h | 2 + drivers/event/dsw/dsw_evdev.h | 2 + drivers/event/octeontx/timvf_worker.h | 2 + drivers/net/octeontx/octeontx

[dpdk-dev] [PATCH v3 08/14] eventdev: hide timer adapter PMD file

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Hide rte_event_timer_adapter_pmd.h file as it is an internal file. Remove rte_ prefix from rte_event_timer_adapter_ops structure. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cnxk_tim_evdev.c | 5 ++-- drivers/event/cnxk/cnxk_tim_evdev.h | 2

[dpdk-dev] [PATCH v3 09/14] eventdev: remove rte prefix for internal structs

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Remove rte_ prefix from rte_eth_event_enqueue_buffer, rte_event_eth_rx_adapter and rte_event_crypto_adapter as they are only used in rte_event_eth_rx_adapter.c and rte_event_crypto_adapter.c Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/rte_

[dpdk-dev] [PATCH v3 10/14] eventdev: rearrange fields in timer object

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Rearrange fields in rte_event_timer data structure to remove holes. Also, remove use of volatile from rte_event_timer. Signed-off-by: Pavan Nikhilesh --- lib/eventdev/rte_event_timer_adapter.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/eve

[dpdk-dev] [PATCH v3 11/14] eventdev: move timer adapters memory to hugepage

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Move memory used by timer adapters to hugepage. Allocate memory on the first adapter create or lookup to address both primary and secondary process usecases. This will prevent TLB misses if any and aligns to memory structure of other subsystems. Signed-off-by: Pavan Nikhile

[dpdk-dev] [PATCH v3 12/14] eventdev: promote event vector API to stable

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Promote event vector configuration APIs to stable. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan Acked-by: Ray Kinsella --- lib/eventdev/rte_event_eth_rx_adapter.h | 2 -- lib/eventdev/rte_eventdev.h | 1 - lib/eventdev/version.map

[dpdk-dev] [PATCH v3 13/14] eventdev: make trace APIs internal

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Slowpath trace APIs are only used in rte_eventdev.c so make them as internal. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/{rte_eventdev_trace.h => eventdev_trace.h} | 0 lib/eventdev/eventdev_trace_points.c| 2 +- lib/e

[dpdk-dev] [PATCH v3 14/14] eventdev: mark trace variables as internal

2021-10-05 Thread pbhagavatula
From: Pavan Nikhilesh Mark rte_trace global variables as internal i.e. remove them from experimental section of version map. Some of them are used in inline APIs, mark those as global. Signed-off-by: Pavan Nikhilesh Acked-by: Ray Kinsella --- lib/eventdev/version.map | 77 ++--

[dpdk-dev] [PATCH v4 1/2] event/cnxk: update min interval calculation

2021-10-09 Thread pbhagavatula
From: Pavan Nikhilesh Minimum supported interval should now be retrieved from mailbox based on the clock source and clock frequency. Signed-off-by: Pavan Nikhilesh --- v4: - Rebase on master, fix NULL checks. v3: - Add new mbox interface. v2: - Fixed devargs parsing and rebased. drivers/commo

[dpdk-dev] [PATCH v4 2/2] event/cnxk: add external clock support for timer

2021-10-09 Thread pbhagavatula
From: Pavan Nikhilesh Add external clock support for cnxk timer adapter. External clock mapping is as follows: RTE_EVENT_TIMER_ADAPTER_EXT_CLK0 = TIM_CLK_SRC_10NS, RTE_EVENT_TIMER_ADAPTER_EXT_CLK1 = TIM_CLK_SRC_GPIO, RTE_EVENT_TIMER_ADAPTER_EXT_CLK2 = TIM_CLK_SRC_PTP, RTE_EVENT_TIMER_ADAPTER_EXT

[PATCH] event/cnxk: fix missing xstats ops registration

2022-09-27 Thread pbhagavatula
From: Pavan Nikhilesh Fix missing xstats ops registration when initializing event device. Fixes: b5a52c9d97e2 ("event/cnxk: add event port and queue xstats") Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cn10k_eventdev.c | 4 drivers/event/cnxk/cn9k_eventdev.c | 4 2 files

[PATCH 1/3] eventdev: add rte prefix to function declaration

2022-09-29 Thread pbhagavatula
From: Pavan Nikhilesh Add `rte` prefix to stop flush callback function pointer declaration to avoid conflicts with application functions, ``eventdev_stop_flush_t`` is renamed to ``rte_eventdev_stop_flush_t``. Signed-off-by: Pavan Nikhilesh --- doc/guides/rel_notes/deprecation.rst | 3 --- lib/

[PATCH 2/3] eventdev: replace *u64s with u64s in event vector

2022-09-29 Thread pbhagavatula
From: Pavan Nikhilesh Replace *u64s with u64s in rte_event_vector structure as the *ptrs already serves the purpose of holding pointers and the intention of u64s is to hold array of uint64_t values. Signed-off-by: Pavan Nikhilesh --- doc/guides/rel_notes/deprecation.rst | 3 --- lib/eventdev/r

[PATCH 3/3] doc: remove deprecation notices for event vector

2022-09-29 Thread pbhagavatula
From: Pavan Nikhilesh Deprecation notice targeted for v22.11 of event vector has been merged in the following commits, remove deprecation notices. Fixes: 7b12f13ce3ee ("eventdev: add element offset to event vector") Signed-off-by: Pavan Nikhilesh --- doc/guides/rel_notes/deprecation.rst | 7 -

[PATCH v4 1/5] examples/l3fwd: fix port group mask generation

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Fix port group mask generation in altivec, vec_any_eq returns 0 or 1 while port_groupx4 expects comparison mask result. Fixes: 2193b7467f7a ("examples/l3fwd: optimize packet processing on powerpc") Cc: sta...@dpdk.org Signed-off-by: Pavan Nikhilesh --- v4 Changes: - Fix

[PATCH v4 2/5] examples/l3fwd: split processing and send stages

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Split packet processing from packet send stage, as send stage is not common for poll and event mode. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em_hlm.h | 39 +++--- examples/l3fwd/l3fwd_lpm_altivec.h | 25 --- exa

[PATCH v4 4/5] examples/l3fwd: fix event vector processing in fib

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Fix stack overflow when event vector size is greater than MAX_BURST_SIZE. Add missing mac swap and rfc1812 stage. Fixes: e8adca1951d4 ("examples/l3fwd: support event vector") Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_fib.c | 130 ++--

[PATCH v4 5/5] examples/l3fwd: use em vector path for event vector

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Use em vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em.c| 13 +++-- examples/l3fwd/l3fwd_em.h| 29 +-- examples/l3fwd/l3fwd_em_hlm.h| 72 +--- examples/l3fwd/l3

[PATCH v4 3/5] examples/l3fwd: use lpm vector path for event vector

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Use lpm vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_altivec.h | 29 ++ examples/l3fwd/l3fwd_event.h | 71 ++ examples/l3fwd/l3fwd_lpm.c | 39 +++ examples/l3

[PATCH v5 1/5] examples/l3fwd: fix port group mask generation

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Fix port group mask generation in altivec, vec_any_eq returns 0 or 1 while port_groupx4 expects comparison mask result. Fixes: 2193b7467f7a ("examples/l3fwd: optimize packet processing on powerpc") Cc: sta...@dpdk.org Signed-off-by: Pavan Nikhilesh --- v5 Changes: - Fix

[PATCH v5 4/5] examples/l3fwd: fix event vector processing in fib

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Fix stack overflow when event vector size is greater than MAX_BURST_SIZE. Add missing mac swap and rfc1812 stage. Fixes: e8adca1951d4 ("examples/l3fwd: support event vector") Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_fib.c | 130 ++--

[PATCH v5 3/5] examples/l3fwd: use lpm vector path for event vector

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Use lpm vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_altivec.h | 29 ++ examples/l3fwd/l3fwd_event.h | 71 ++ examples/l3fwd/l3fwd_lpm.c | 39 +++ examples/l3

[PATCH v5 2/5] examples/l3fwd: split processing and send stages

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Split packet processing from packet send stage, as send stage is not common for poll and event mode. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em_hlm.h | 39 +++--- examples/l3fwd/l3fwd_lpm_altivec.h | 25 --- exa

[PATCH v5 5/5] examples/l3fwd: use em vector path for event vector

2022-10-11 Thread pbhagavatula
From: Pavan Nikhilesh Use em vector path to process event vector. Signed-off-by: Pavan Nikhilesh --- examples/l3fwd/l3fwd_em.c| 13 +++-- examples/l3fwd/l3fwd_em.h| 29 +-- examples/l3fwd/l3fwd_em_hlm.h| 72 +--- examples/l3fwd/l3

[PATCH] eventdev: update release notes

2022-10-13 Thread pbhagavatula
From: Pavan Nikhilesh Update release notes for changes made in eventdev library. Fixes: 5fa63911e43b ("eventdev: replace padding type in event vector") Fixes: 0fbb55efa542 ("eventdev: add element offset to event vector") Fixes: d986276f9b72 ("eventdev: add prefix to public symbol") Signed-off-b

[PATCH] eventdev: increase xstats ID width to 64 bits

2022-10-13 Thread pbhagavatula
From: Pavan Nikhilesh Increase xstats ID width to 64bits from 32 bits, this also fixes the xstats ID datatype discrepancy between reset and rest of the xstats family. Signed-off-by: Pavan Nikhilesh --- doc/guides/rel_notes/release_22_11.rst | 5 ++ drivers/event/cnxk/cnxk_eventdev.h

[dpdk-dev] [PATCH v11] eventdev: simplify Rx adapter event vector config

2021-08-17 Thread pbhagavatula
From: Pavan Nikhilesh Include vector configuration into the structure ``rte_event_eth_rx_adapter_queue_conf`` used when configuring rest of the Rx adapter ethernet device Rx queue parameters. This simplifies event vector configuration as it avoids splitting configuration per Rx queue. Signed-off

[dpdk-dev] [PATCH v12] eventdev: simplify Rx adapter event vector config

2021-08-17 Thread pbhagavatula
From: Pavan Nikhilesh Include vector configuration into the structure ``rte_event_eth_rx_adapter_queue_conf`` used when configuring rest of the Rx adapter ethernet device Rx queue parameters. This simplifies event vector configuration as it avoids splitting configuration per Rx queue. Signed-off

[dpdk-dev] [PATCH v13] eventdev: simplify Rx adapter event vector config

2021-08-17 Thread pbhagavatula
From: Pavan Nikhilesh Include vector configuration into the structure ``rte_event_eth_rx_adapter_queue_conf`` that is used to configure Rx adapter ethernet device Rx queue parameters. This simplifies event vector configuration as it avoids splitting configuration per Rx queue. Signed-off-by: Pav

[dpdk-dev] [RFC 01/15] eventdev: make driver interface as internal

2021-08-23 Thread pbhagavatula
From: Pavan Nikhilesh Mark all the driver specific functions as internal, remove `rte` prefix from `struct rte_eventdev_ops`. Remove experimental tag from internal functions. Remove `eventdev_pmd.h` from non-internal header files. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cn10k_eve

[dpdk-dev] [RFC 02/15] eventdev: separate internal structures

2021-08-23 Thread pbhagavatula
From: Pavan Nikhilesh Create rte_eventdev_core.h and move all the internal data structures to this file. These structures are mostly used by drivers, but they need to be in the public header file as they are accessed by datapath inline functions for performance reasons. The accessibility of these

<    2   3   4   5   6   7   8   9   10   11   >