Signed-off-by: Konstantin Ananyev
---
MAINTAINERS | 4
1 file changed, 4 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index ed3251da7..db7fec362 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -964,6 +964,10 @@ Latency statistics
M: Reshma Pattan
F: lib/librte_latencystats/
+BPF
more comments to the test case
Konstantin Ananyev (2):
test/test: introduce new test-case for rte_smp_mb()
eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb()
.../common/include/arch/x86/rte_atomic.h | 44 +++-
test/test/Makefile
Simple functional test for rte_smp_mb() implementations.
Also when executed on a single lcore could be used as rough
estimation how many cycles particular implementation of rte_smp_mb()
might take.
Signed-off-by: Konstantin Ananyev
---
test/test/Makefile | 1 +
test/test/test_barrier.c
() implementation.
On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction,
i.e. from ~110 to ~55 cycles per operation.
Signed-off-by: Konstantin Ananyev
---
.../common/include/arch/x86/rte_atomic.h | 44 +-
1 file changed, 42 insertions(+), 2 deletions
() implementation.
On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction,
i.e. from ~110 to ~55 cycles per operation.
Signed-off-by: Konstantin Ananyev
Acked-by: Bruce Richardson
---
.../common/include/arch/x86/rte_atomic.h | 44 +-
1 file changed, 42
continue with step 3) or exit
TODO list:
==
- meson build
- UT for it
- implement proper validate()
- allow JIT to generate bulk version
- FreeBSD support
Not currently supported features:
=
- cBPF
- tail-pointer call
- eBPF MAP
- JIT for non X86_64 targ
- eBPF MAP
- skb
It also adds dependency on libelf.
Signed-off-by: Konstantin Ananyev
---
config/common_base | 5 +
config/common_linuxapp | 1 +
lib/Makefile | 2 +
lib/librte_bpf/Makefile| 30 +++
lib/librte_bpf/bpf.c
Signed-off-by: Konstantin Ananyev
---
lib/librte_bpf/Makefile |3 +
lib/librte_bpf/bpf.c |4 +
lib/librte_bpf/bpf_jit_x86.c | 1329 ++
3 files changed, 1336 insertions(+)
create mode 100644 lib/librte_bpf/bpf_jit_x86.c
diff --git a
Introduce API to install BPF based filters on ethdev RX/TX path.
Current implementation is pure SW one, based on ethdev RX/TX
callback mechanism.
Signed-off-by: Konstantin Ananyev
---
lib/librte_bpf/Makefile| 2 +
lib/librte_bpf/bpf_pkt.c | 524
Add few simple eBPF programs as an example.
Signed-off-by: Konstantin Ananyev
---
test/bpf/dummy.c | 20 ++
test/bpf/mbuf.h | 556 +++
test/bpf/t1.c| 53 ++
test/bpf/t2.c| 30 +++
test/bpf/t3.c| 36
5 files changed
Introduce new testpmd commands to load/unload RX/TX BPF-based filters.
Signed-off-by: Konstantin Ananyev
---
app/test-pmd/bpf_sup.h | 25 +
app/test-pmd/cmdline.c | 146 +
2 files changed, 171 insertions(+)
create mode 100644 app/test
sd build
- use new logging API
- using rte_malloc() for cbi allocation
- add extra logic into bpf_validate()
Konstantin Ananyev (7):
net: move BPF related definitions into librte_net
bpf: add BPF loading and execution framework
bpf: add more logic into bpf_validate()
bpf: add JIT compil
Different linux distro may include partial definitions for eBPF
while the linux kernel (or dpdk) may support given eBPF feature.
To avoid issues define in one place all that is needed (and/or supported)
by various DPDK components.
Signed-off-by: Konstantin Ananyev
---
drivers/net/tap/tap_bpf.h
data.
- memory boundaries violation
Signed-off-by: Konstantin Ananyev
---
lib/librte_bpf/bpf_validate.c | 1163 -
1 file changed, 1137 insertions(+), 26 deletions(-)
diff --git a/lib/librte_bpf/bpf_validate.c b/lib/librte_bpf/bpf_validate.c
index 1911e1381
- eBPF MAP
- skb
It also adds dependency on libelf.
Signed-off-by: Konstantin Ananyev
---
config/common_base | 5 +
lib/Makefile | 2 +
lib/librte_bpf/Makefile| 30 +++
lib/librte_bpf/bpf.c | 59 +
lib/librte_bpf/bpf_exec.c
Introduce API to install BPF based filters on ethdev RX/TX path.
Current implementation is pure SW one, based on ethdev RX/TX
callback mechanism.
Signed-off-by: Konstantin Ananyev
---
lib/librte_bpf/Makefile| 2 +
lib/librte_bpf/bpf_pkt.c | 607
Introduce new testpmd commands to load/unload RX/TX BPF-based filters.
Signed-off-by: Konstantin Ananyev
---
app/test-pmd/bpf_sup.h | 25
app/test-pmd/cmdline.c | 146 +++
app/test-pmd/meson.build | 2 +-
3 files changed, 172
Add few simple eBPF programs as an example.
Signed-off-by: Konstantin Ananyev
---
test/bpf/dummy.c | 20 ++
test/bpf/mbuf.h | 578 +++
test/bpf/t1.c| 52 +
test/bpf/t2.c| 31 +++
test/bpf/t3.c| 36
5 files changed
Signed-off-by: Konstantin Ananyev
---
lib/librte_bpf/Makefile |3 +
lib/librte_bpf/bpf.c |5 +
lib/librte_bpf/bpf_jit_x86.c | 1329 ++
lib/librte_bpf/meson.build |4 +
4 files changed, 1341 insertions(+)
create mode 100644 lib
Hi Xiaoyun,
Just to be a bit more specific about what I suggest -
here is a draft patch below.
It still needs more testing and probably polishing,
but I suppose gives you an idea.
Konstantin
---
lib/librte_eal/bsdapp/eal/Makefile | 20 +
lib/librte_eal/common/arch/x86/rte_memcpy
() implementation.
On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction,
i.e. from ~110 to ~55 cycles per operation.
Signed-off-by: Konstantin Ananyev
---
.../common/include/arch/x86/rte_atomic.h | 45 +-
1 file changed, 43 insertions(+), 2 deletions
Simple functional test for rte_smp_mb() implementations.
Also when executed on a single lcore could be used as rough
estimation how many cycles particular implementation of rte_smp_mb()
might take.
Signed-off-by: Konstantin Ananyev
---
test/test/Makefile | 1 +
test/test/test_mb.c | 278
wipe out all installed callbacks for that port.
Signed-off-by: Konstantin Ananyev
---
lib/librte_ether/rte_ethdev.c | 228 +-
lib/librte_ether/rte_ethdev.h | 85 +++-
2 files changed, 216 insertions(+), 97 deletions(-)
diff --git a/lib
ividual callback basis.
In that case it would be up to callback writer/installer to decide
does he/she need a removable at runtime callback or not.
Though in that case, each installed callback might introduce extra
synchronization overhead and slowdown.
Konstantin Ananyev (3):
ethdev: introduc
Signed-off-by: Konstantin Ananyev
---
doc/guides/rel_notes/deprecation.rst | 5 +
1 file changed, 5 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst
b/doc/guides/rel_notes/deprecation.rst
index 13e85432f..038b55fd5 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc
automatically free the callback handle and the user can safely
release any associated with the removed callback resources.
Signed-off-by: Konstantin Ananyev
---
lib/librte_ether/rte_ethdev.c | 180 +++---
lib/librte_ether/rte_ethdev.h | 127 ++---
2
ividual callback basis.
In that case it would be up to callback writer/installer to decide
does he/she need a removable at runtime callback or not.
Though in that case, each installed callback might introduce extra
synchronization overhead and slowdown.
Konstantin Ananyev (3):
ethdev: introduc
list:
=
- meson build
- UT for it
- implement proper validate()
- allow JIT to generate bulk version
Not currently supported features:
=========
- cBPF
- tail-pointer call
- eBPF MAP
- skb
Konstantin Ananyev (5):
bpf: add BPF loading and execution framework
bpf: add
librte_bpf provides a framework to load and execute eBPF bytecode
inside user-space dpdk based applications.
Not currently supported features:
- JIT
- cBPF
- tail-pointer call
- eBPF MAP
- skb
Signed-off-by: Konstantin Ananyev
---
config/common_base | 5 +
config
Introduce new testpmd commands to load/unload RX/TX BPF-based filters.
Signed-off-by: Konstantin Ananyev
---
app/test-pmd/cmdline.c | 144 +
1 file changed, 144 insertions(+)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index
Introduce API to install BPF based filters on ethdev RX/TX path.
Current implementation is pure SW one, based on ethdev RX/TX callback mechanism.
Signed-off-by: Konstantin Ananyev
---
lib/librte_bpf/Makefile| 2 +
lib/librte_bpf/bpf_pkt.c | 524
Signed-off-by: Konstantin Ananyev
---
lib/librte_bpf/Makefile |3 +
lib/librte_bpf/bpf.c |4 +
lib/librte_bpf/bpf_jit_x86.c | 1155 ++
3 files changed, 1162 insertions(+)
create mode 100644 lib/librte_bpf/bpf_jit_x86.c
diff --git a
Add few simple eBPF programs as an example.
Signed-off-by: Konstantin Ananyev
---
test/bpf/dummy.c | 20 ++
test/bpf/mbuf.h | 556 +++
test/bpf/t1.c| 54 ++
test/bpf/t2.c| 31
4 files changed, 661 insertions(+)
create
() implementation.
On BDW 2.2 mb_autotest on single lcore reports 2X cycle reduction,
i.e. from ~110 to ~55 cycles per operation.
Signed-off-by: Konstantin Ananyev
---
.../common/include/arch/x86/rte_atomic.h | 44 +-
1 file changed, 42 insertions(+), 2 deletions
Simple functional test for rte_smp_mb() implementations.
Also when executed on a single lcore could be used as rough
estimation how many cycles particular implementation of rte_smp_mb()
might take.
Signed-off-by: Konstantin Ananyev
---
test/test/Makefile | 1 +
test/test/test_mb.c | 315
v2 changes:
Address Bruce code-review comments:
- get rid of macros to simplify the code
- add more comments to the test case
Konstantin Ananyev (2):
test/test: introduce new test-case for rte_smp_mb()
eal/x86: Use lock-prefixed instructions to reduce cost of rte_smp_mb()
.../common
ixgbe PMD RX function(s) miss pacjet types that are:
- correctly recognised by the underlying HW.
- marked as supported by ixgbe_dev_supported_ptypes_get().
Fixes: 9586ebd358d5 ("ixgbe: replace some offload flags with packet type")
Signed-off-by: Konstantin Ananyev
---
drivers
Signed-off-by: Konstantin Ananyev
---
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 9a63714..e5abe7d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -226,6 +226,7 @@ Network headers
F: lib/librte_net/
IP fragmentation & reassembl
Signed-off-by: Konstantin Ananyev
---
doc/guides/prog_guide/packet_classif_access_ctrl.rst | 16
1 file changed, 16 insertions(+)
diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst
b/doc/guides/prog_guide/packet_classif_access_ctrl.rst
index e018c68..d2adbff
Signed-off-by: Konstantin Ananyev
---
doc/guides/prog_guide/packet_classif_access_ctrl.rst | 17 -
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst
b/doc/guides/prog_guide/packet_classif_access_ctrl.rst
index
Konstantin Ananyev (3):
doc: Add restrictions for ACL rule fields
doc: ACL - add description for different classification methods
doc: ACL - add description for max_size build parameter
.../prog_guide/packet_classif_access_ctrl.rst | 83 --
1 file changed, 78
Signed-off-by: Konstantin Ananyev
---
.../prog_guide/packet_classif_access_ctrl.rst | 52 +-
1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst
b/doc/guides/prog_guide/packet_classif_access_ctrl.rst
index
process, made changes to handle all such failures
in one place.
Note, that all that memory for temporary structures
is freed at one go at the end of build phase.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_bld.c | 42 +-
lib/librte_acl/tb_mem.c
to decide about space/performance trade-off
(faster classify() vs less space for RT internal structures)
for each given set of rules.
Konstantin Ananyev (17):
fix fix compilation issues with RTE_LIBRTE_ACL_STANDALONE=y
app/test: few small fixes fot test_acl.c
librte_acl: make data_indexes long en
Make data_indexes long enough to survive idle transitions.
That allows to simplify match processing code.
Also fix incorrect size calculations for data indexes.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_bld.c | 5 +++--
lib/librte_acl/acl_run.h | 4
2 files changed, 3
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/rte_acl_osdep_alone.h | 12
1 file changed, 12 insertions(+)
diff --git a/lib/librte_acl/rte_acl_osdep_alone.h
b/lib/librte_acl/rte_acl_osdep_alone.h
index a84b6f9..2a99860 100644
--- a/lib/librte_acl/rte_acl_osdep_alone.h
+++ b
Reorganise SSE code-path a bit by moving lo/hi dwords shuffle
out from calc_addr().
That allows to make calc_addr() for SSE and AVX2 practically identical
and opens opportunity for further code deduplication.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_run_sse.h | 38
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_bld.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_acl/acl_bld.c b/lib/librte_acl/acl_bld.c
index 8bf4a54..22f7934 100644
--- a/lib/librte_acl/acl_bld.c
+++ b/lib/librte_acl/acl_bld.c
@@ -1907,7 +1907,7
performance impact.
>From what I've seen an average space savings: ~20%.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl.h| 12 ++-
lib/librte_acl/acl_gen.c| 195
lib/librte_acl/acl_run_scalar.c | 38
lib/li
.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_bld.c | 277 +--
1 file changed, 97 insertions(+), 180 deletions(-)
diff --git a/lib/librte_acl/acl_bld.c b/lib/librte_acl/acl_bld.c
index c5a674a..8bf4a54 100644
--- a/lib/librte_acl/acl_bld.c
+++ b
allocated at the same stage
as all others.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl.h | 3 +--
lib/librte_acl/acl_bld.c | 4 +--
lib/librte_acl/acl_gen.c | 69 ++--
3 files changed, 34 insertions(+), 42 deletions(-)
diff -
Make classify_scalar to behave in the same way as it's vector counterpart:
move match check out of the inner loop, etc.
That makes scalar and vector code look more identical.
Plus it improves scalar code performance.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_run_scalar.c
Make sure that test_acl would not ignore error conditions.
Run classify() with all possible values.
Signed-off-by: Konstantin Ananyev
---
app/test/test_acl.c | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/test/test_acl.c b/app/test/test_acl.c
index 356d620
In test-acl replace command-line option "--scalar" with new one:
"--alg=scalar|sse|avx2".
Allows user manually select preferred classify() method.
Signed-off-by: Konstantin Ananyev
---
app/test-acl/main.c | 93 ++---
1 file ch
Previous improvements made scalar method the fastest one
for tiny bunch of packets (< 4).
That allows us to remove specific vector code-path for small number of packets
(search_sse_2)
and always use scalar method for such cases.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_run_a
Move common check for input parameters up into rte_acl_classify_alg().
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_run_scalar.c | 4
lib/librte_acl/acl_run_sse.c| 4
lib/librte_acl/rte_acl.c| 19 ---
3 files changed, 12 insertions(+), 15
it.
Signed-off-by: Konstantin Ananyev
---
app/test-acl/main.c | 33
examples/l3fwd-acl/main.c | 3 +-
lib/librte_acl/acl.h | 2 +-
lib/librte_acl/acl_bld.c | 134 +-
lib/librte_acl/acl_gen.c | 22 +---
lib/librte_acl/
New data type to manipulate 256 bit AVX values.
Rename field in the rte_xmm to keep common naming accross SSE/AVX fields.
Signed-off-by: Konstantin Ananyev
---
examples/l3fwd/main.c | 2 +-
lib/librte_acl/acl_run_sse.c| 88
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl.h | 39 ++-
lib/librte_acl/acl_run.h | 1 -
2 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/lib/librte_acl/acl.h b/lib/librte_acl/acl.h
index 61b849a..e65e079 100644
--- a/lib
On HSW boards when processing >= 16 packets per call,
AVX2 method outperforms it's SSE counterpart by 10-25%,
(depending on the ruleset).
At runtime, if librte_acl was build with the compiler that supports AVX2,
this method is selected as default one on HW that supports AVX2.
Signed-
Vector code reorganisation/deduplication:
To avoid maintaining two nearly identical implementations of calc_addr()
(one for SSE, another for AVX2), replace it with a new macro that suits
both SSE and AVX2 code-paths.
Also remove no needed any more MM_* macros.
Signed-off-by: Konstantin Ananyev
T32_BIT)
^
When reading the GCC info pages, I get the feeling that __typeof__ is
a better choice, and that indeed works when including the headers in
C++ files (--std=c++11).
There are some typeof()s left in C files, the patch only touches the
public API.
Signed-off-by: Simon Kagstrom
Signe
Signed-off-by: Konstantin Ananyev
---
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 07fdf5e..b18cf75 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -210,6 +210,8 @@ Intel e1000
F: lib/librte_pmd_e1000/
Intel ixgbe
+M: Helin Zhang
+M
Signed-off-by: Konstantin Ananyev
---
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index ac46299..f10a457 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -106,6 +106,8 @@ IBM Power
F: lib/librte_eal/common/include/arch/ppc_64/
Intel x86
+M: Bruce
Signed-off-by: Konstantin Ananyev
---
lib/librte_eal/common/Makefile | 1 -
.../common/include/arch/x86/rte_common_vect.h | 128 +
lib/librte_eal/common/include/rte_common_vect.h| 128 -
3 files changed, 128 insertions
Signed-off-by: Konstantin Ananyev
---
examples/l3fwd/main.c | 2 +-
lib/librte_acl/rte_acl_osdep.h | 2 +-
lib/librte_eal/common/Makefile | 1 -
.../common/include/arch/x86/rte_memcpy.h | 2 +-
lib/librte_eal
v2:
As per comments, reorder patch a bit, to avoid reintroducing extra ifdefs.
Signed-off-by: Konstantin Ananyev
---
lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 11 +++
lib/librte_pmd_ixgbe/ixgbe_rxtx.h | 2 +-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/lib/librte_pmd_ixgbe
.
- added new fields into rte_eth_dev_info
v6 chages:
- respin to comply with latest dpdk.org
- update release_notes
Konstantin Ananyev (9):
ethdev: add new API to retrieve RX/TX queue information
i40e: add support for eth_(rxq|txq)_info_get and (rx|tx)_desc_lim
ixgbe: add support for eth_(r
nfo
struct rte_eth_txq_info
new functions:
rte_eth_rx_queue_info_get
rte_eth_tx_queue_info_get
into rte_etdev API.
Left extra free space in the queue info structures,
so extra fields could be added later without ABI breakage.
Add new fields:
rx_desc_lim
tx_desc_lim
into rte_eth_dev_info.
Signed-off-by:
Signed-off-by: Konstantin Ananyev
---
drivers/net/cxgbe/cxgbe_ethdev.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index a8e057b..920e071 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe
Signed-off-by: Konstantin Ananyev
---
drivers/net/e1000/e1000_ethdev.h | 36
drivers/net/e1000/em_ethdev.c| 14
drivers/net/e1000/em_rxtx.c | 71 +++-
drivers/net/e1000/igb_ethdev.c | 22 +
drivers/net/e1000
From: "Ananyev, Konstantin"
Signed-off-by: Konstantin Ananyev
---
app/test-pmd/cmdline.c | 48 +++
app/test-pmd/config.c | 77 ++
app/test-pmd/testpmd.h | 2 ++
3 files changed, 127 insertions(+)
diff -
Signed-off-by: Konstantin Ananyev
---
doc/guides/rel_notes/release_2_2.rst | 7 +++
1 file changed, 7 insertions(+)
diff --git a/doc/guides/rel_notes/release_2_2.rst
b/doc/guides/rel_notes/release_2_2.rst
index 4f75cff..33ea399 100644
--- a/doc/guides/rel_notes/release_2_2.rst
+++ b/doc
This patch assumes that the patch:
i40e: fix wrong alignment for the number of HW descriptors
already applied.
Signed-off-by: Konstantin Ananyev
---
drivers/net/i40e/i40e_ethdev.c| 14 ++
drivers/net/i40e/i40e_ethdev.h| 5 +
drivers/net/i40e/i40e_ethdev_vf.c | 12
Signed-off-by: Konstantin Ananyev
---
drivers/net/fm10k/fm10k_ethdev.c | 11 +++
1 file changed, 11 insertions(+)
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index a69c990..9588dab 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k
Signed-off-by: Konstantin Ananyev
---
drivers/net/vmxnet3/vmxnet3_ethdev.c | 12
1 file changed, 12 insertions(+)
diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c
b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index a70be5c..3745b7d 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b
Signed-off-by: Konstantin Ananyev
---
drivers/net/ixgbe/ixgbe_ethdev.c | 23 ++
drivers/net/ixgbe/ixgbe_ethdev.h | 6
drivers/net/ixgbe/ixgbe_rxtx.c | 68 +---
drivers/net/ixgbe/ixgbe_rxtx.h | 21 +
4 files changed, 93
This patch assumes that the patch:
i40e: fix wrong alignment for the number of HW descriptors
already applied.
Signed-off-by: Konstantin Ananyev
---
drivers/net/i40e/i40e_ethdev.c| 14 ++
drivers/net/i40e/i40e_ethdev.h| 5 +
drivers/net/i40e/i40e_ethdev_vf.c | 12
.
- added new fields into rte_eth_dev_info
v6 chages:
- respin to comply with latest dpdk.org
- update release_notes, section "New Features"
v7 changes:
- update release notes, sections: "API Changes", "ABI Changes"
Konstantin Ananyev (9):
ethdev: add new API to re
Signed-off-by: Konstantin Ananyev
---
app/test-pmd/cmdline.c | 48 +++
app/test-pmd/config.c | 77 ++
app/test-pmd/testpmd.h | 2 ++
3 files changed, 127 insertions(+)
diff --git a/app/test-pmd/cmdline.c b/app/test
Signed-off-by: Konstantin Ananyev
---
doc/guides/rel_notes/release_2_2.rst | 13 +
1 file changed, 13 insertions(+)
diff --git a/doc/guides/rel_notes/release_2_2.rst
b/doc/guides/rel_notes/release_2_2.rst
index de6916e..aff6306 100644
--- a/doc/guides/rel_notes/release_2_2.rst
:
rte_eth_rx_queue_info_get
rte_eth_tx_queue_info_get
into rte_etdev API.
Left extra free space in the queue info structures,
so extra fields could be added later without ABI breakage.
Add new fields:
rx_desc_lim
tx_desc_lim
into rte_eth_dev_info.
Signed-off-by: Konstantin Ananyev
---
lib/librte_ether
Signed-off-by: Konstantin Ananyev
---
drivers/net/cxgbe/cxgbe_ethdev.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index a8e057b..920e071 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe
Signed-off-by: Konstantin Ananyev
---
drivers/net/fm10k/fm10k_ethdev.c | 11 +++
1 file changed, 11 insertions(+)
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index a69c990..9588dab 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k
Signed-off-by: Konstantin Ananyev
---
drivers/net/vmxnet3/vmxnet3_ethdev.c | 12
1 file changed, 12 insertions(+)
diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c
b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index a70be5c..3745b7d 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b
Signed-off-by: Konstantin Ananyev
---
drivers/net/e1000/e1000_ethdev.h | 36
drivers/net/e1000/em_ethdev.c| 14
drivers/net/e1000/em_rxtx.c | 71 +++-
drivers/net/e1000/igb_ethdev.c | 22 +
drivers/net/e1000
Signed-off-by: Konstantin Ananyev
---
drivers/net/ixgbe/ixgbe_ethdev.c | 23 ++
drivers/net/ixgbe/ixgbe_ethdev.h | 6
drivers/net/ixgbe/ixgbe_rxtx.c | 68 +---
drivers/net/ixgbe/ixgbe_rxtx.h | 21 +
4 files changed, 93
descriptor queue (40 descriptors).
With that approach I also see a slight performance drop
but it is much less then with your approach:
with the same conditions it can do 14.2 Mpps over 1 port.
Thanks
Konstantin
Signed-off-by: Konstantin Ananyev
---
drivers/net/ixgbe/ixgbe_rxtx.c | 25 +
t is not needed.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl_bld.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/librte_acl/acl_bld.c b/lib/librte_acl/acl_bld.c
index a406737..92a85df 100644
--- a/lib/librte_acl/acl_bld.c
+++ b/lib/librte_acl/acl_bld.c
@@
Signed-off-by: Konstantin Ananyev
---
app/test/test_acl.c | 147 ++--
1 file changed, 143 insertions(+), 4 deletions(-)
diff --git a/app/test/test_acl.c b/app/test/test_acl.c
index 7119ad3..6a032f9 100644
--- a/app/test/test_acl.c
+++ b/app/test
As now subtree_id is not used acl_merge_trie() any more,
there is no point to calculate and maintain that information.
Signed-off-by: Konstantin Ananyev
---
lib/librte_acl/acl.h | 7 ---
lib/librte_acl/acl_bld.c | 119 +--
2 files changed, 12
ACL: fix a problem in acl_merge_trie
ACL: add new test case for ranges build
ACL: remove subtree_id calculations at build stage
app/test/test_acl.c | 147 +--
lib/librte_acl/acl.h | 7 ---
lib/librte_acl/acl_bld.c | 121 --
checks subsequent pages only when several are required per object.
Signed-off-by: Konstantin Ananyev
---
lib/librte_mempool/rte_mempool.c | 12
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
index
drops the first one otherwise.
This commit checks subsequent pages only when several are required per object.
Signed-off-by: Konstantin Ananyev
---
lib/librte_mempool/rte_mempool.c | 12
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/librte_mempool/rte_mempool.c b/lib
Signed-off-by: Konstantin Ananyev
---
app/test-pmd/cmdline.c | 3 +++
doc/guides/testpmd_app_ug/testpmd_funcs.rst | 7 +++
2 files changed, 10 insertions(+)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 0afdc96..ae9be81 100644
--- a/app/test-pmd
up to 4%).
ixgbe simple TX path is unaffected by that patch.
Reported-by: Vlad Zolotarov
Signed-off-by: Konstantin Ananyev
---
drivers/net/ixgbe/ixgbe_rxtx.c | 32 +++-
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/d
ment is controlled by
'set txpkts' command.
Split policy is controlled by 'set txsplit' command.
Possible values are: on | off | rand.
Tha allows to increase test coverage for TX PMD codepaths.
Signed-off-by: Konstantin Ananyev
---
app/test-pmd/cmdline.c |
First patch contains changes in testpmd that allows to reproduce the issue.
Second patch is the actual fix.
Konstantin Ananyev (2):
testpmd: add ability to split outgoing packets
ixgbe: fix TX hang when RS distance exceeds HW limit
app/test-pmd/cmdline.c | 57
es significant slowdown
on the TX path: up to 25%).
v6 changes:
- fix pmd_perf_autotest
- fix error description
- update RN
Reported-by: Vlad Zolotarov
Signed-off-by: Konstantin Ananyev
---
app/test/test_pmd_perf.c | 8
doc/guides/rel_notes/release_2_2.rst | 7
First patch contains changes in testpmd that allow to reproduce the issue.
Second patch is the actual fix.
Konstantin Ananyev (2):
testpmd: add ability to split outgoing packets
ixgbe: fix TX hang when RS distance exceeds HW limit
app/test-pmd/cmdline.c | 57
901 - 1000 of 1590 matches
Mail list logo