| 21cab84f | 24-Jan-2025 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
bitops: find first set bit
Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in intrinsics. Add associated unit tests.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Si
bitops: find first set bit
Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in intrinsics. Add associated unit tests.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
show more ...
|
| eb29e625 | 13-Dec-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/bonding: fix active backup receive test
The test had incorrect assumptions about how active backup should work. When in active backup mode, the secondary (not primary) ports should be ignored.
test/bonding: fix active backup receive test
The test had incorrect assumptions about how active backup should work. When in active backup mode, the secondary (not primary) ports should be ignored. The test was always broken since initially written but earlier bug was masking the part of the test which tested non-primary ports.
Bugzilla ID: 1589 Fixes: 112ce3917674 ("test/bonding: fix loop on members") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Huisong Li <lihuisong@huawei.com> Tested-by: Huisong Li <lihuisong@huawei.com>
show more ...
|
| 06e28566 | 06-Dec-2024 |
Konstantin Ananyev <konstantin.ananyev@huawei.com> |
test: add stress test suite
Add a new test suite which purpose is to run 'stress' tests: main purpose is put a pressure to dpdk sync algorithms to flag their misbehaving/slowdown/etc. Right now it c
test: add stress test suite
Add a new test suite which purpose is to run 'stress' tests: main purpose is put a pressure to dpdk sync algorithms to flag their misbehaving/slowdown/etc. Right now it consists from just 2 test-cases: meson test --suite stress-tests --list DPDK:stress-tests / ring_stress_autotest DPDK:stress-tests / soring_stress_autotest
These tests are quite time consuming (~15 mins each), that's another reason to put them into a separate test-suite.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| 70581c35 | 06-Dec-2024 |
Konstantin Ananyev <konstantin.ananyev@huawei.com> |
test/ring: add unit tests for soring API
Add both functional and stess test-cases for soring API. Stress test serves as both functional and performance test of soring enqueue/dequeue/acquire/release
test/ring: add unit tests for soring API
Add both functional and stess test-cases for soring API. Stress test serves as both functional and performance test of soring enqueue/dequeue/acquire/release operations under high contention (for both over committed and non-over committed scenarios).
Signed-off-by: Eimear Morrissey <eimear.morrissey@huawei.com> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| 700989f5 | 06-Dec-2024 |
Eimear Morrissey <eimear.morrissey@huawei.com> |
ring: make dump function more verbose
The current rte_ring_dump function uses the generic rte_ring_headtail structure to access head/tail positions. This is incorrect for the RTS case where the head
ring: make dump function more verbose
The current rte_ring_dump function uses the generic rte_ring_headtail structure to access head/tail positions. This is incorrect for the RTS case where the head is stored in a different offset in the union of structs. Switching to a separate function for each sync type allows to dump correct head/tail values and extra metadata.
Signed-off-by: Eimear Morrissey <eimear.morrissey@huawei.com> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| 2cf3a8d3 | 06-Dec-2024 |
Konstantin Ananyev <konstantin.ananyev@huawei.com> |
test/ring: fix init with custom number of lcores
ring_stress_autotest fails to initialize the ring when RTE_MAX_LCORE value is not a number of 2. There is a flaw in calculation required number of el
test/ring: fix init with custom number of lcores
ring_stress_autotest fails to initialize the ring when RTE_MAX_LCORE value is not a number of 2. There is a flaw in calculation required number of elements in the ring. Fix it by aligning number of elements to next power of 2.
Fixes: bf28df24e915 ("test/ring: add contention stress test") Cc: stable@dpdk.org
Reported-by: Phanendra Vukkisala <pvukkisala@marvell.com> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| b5662e6d | 10-Jan-2025 |
Andre Muezerie <andremue@linux.microsoft.com> |
test: replace packed attributes
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __r
test: replace packed attributes
MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push.
Macro __rte_packed_end is deliberately utilized to trigger a MSVC compiler warning if no existing packing has been pushed allowing easy identification of locations where the __rte_packed_begin is missing.
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com> Reviewed-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
| ae2e4c48 | 10-Jan-2025 |
Andre Muezerie <andremue@linux.microsoft.com> |
app/testpmd: remove some packed attributes
Removed __rte_packed attribute from structure that is naturally packed already.
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com> |
| f7c9651c | 11-Dec-2024 |
Andre Muezerie <andremue@linux.microsoft.com> |
app: use portable variadic macros
Many places are using a GCC extension related to variadic macros, where a name prepends the ellipsis. This results in a warning like the one below when compiling th
app: use portable variadic macros
Many places are using a GCC extension related to variadic macros, where a name prepends the ellipsis. This results in a warning like the one below when compiling the code with MSVC:
app\test-pmd\testpmd.h(1314): error C2608: invalid token '...' in macro parameter list
Variadic macros became a standard part of the C language with C99. GCC, Clang and MSVC handle them properly.
The fix is to remove the prefix name (args... becomes ...) and use __VA_ARGS__.
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
show more ...
|
| f81cdd72 | 05-Feb-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/hash: replace use of term segregate
Change comment based on inclusive naming recommendations.
https://inclusivenaming.org/word-lists/tier-3/
Signed-off-by: Stephen Hemminger <stephen@networkp
test/hash: replace use of term segregate
Change comment based on inclusive naming recommendations.
https://inclusivenaming.org/word-lists/tier-3/
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
| bccabd15 | 05-Feb-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/red: remove use of word master
No need to use term master here.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> |
| 554e802e | 20-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/cfgfile: add check for file removal
The test makes temporary files for parsing and then cleans up. It was not checking the return value from the remove step which makes Coverity unhappy.
Cover
test/cfgfile: add check for file removal
The test makes temporary files for parsing and then cleans up. It was not checking the return value from the remove step which makes Coverity unhappy.
Coverity issue: 451207, 451209, 451212, 451213 Coverity issue: 451215, 451217, 451222, 451225 Fixes: be22019a58c4 ("test: restore cfgfile tests")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| f86085ca | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
app/testpmd: avoid potential outside of array reference
The order of comparison is wrong, and potentially allows referencing past the array.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fix
app/testpmd: avoid potential outside of array reference
The order of comparison is wrong, and potentially allows referencing past the array.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: 3e3edab530a1 ("ethdev: add flow quota") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
| 4c2e7468 | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
app/testpmd: remove redundant policy action condition
The loop over policy actions will always exit when it sees the flow end action, so the next check is redundant.
Link: https://pvs-studio.com/en
app/testpmd: remove redundant policy action condition
The loop over policy actions will always exit when it sees the flow end action, so the next check is redundant.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: f29fa2c59b85 ("app/testpmd: support policy actions per color") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
| 357f915e | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/eal: fix lcore check
The expression for checking which lcore is enabled for 0-7 was wrong (missing case for 6).
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: b0209034f2bb ("test/
test/eal: fix lcore check
The expression for checking which lcore is enabled for 0-7 was wrong (missing case for 6).
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: b0209034f2bb ("test/eal: check number of cores before running subtests") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Aaron Conole <aconole@redhat.com>
show more ...
|
| b3e64fe5 | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/eal: fix loop coverage for alignment macros
The test loop was much shorter than desired because when MAX_NUM is defined with out paren's the divide operator / takes precedence over shift.
But
test/eal: fix loop coverage for alignment macros
The test loop was much shorter than desired because when MAX_NUM is defined with out paren's the divide operator / takes precedence over shift.
But when MAX_NUM is fixed, some tests take too long and have to be modified to avoid running over full N^2 space of 1<<20.
Note: this is a very old bug, goes back to 2013.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: 1fb8b07ee511 ("app: add some tests") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
| c6f484ad | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/crypto: fix TLS zero length record check
The code was duplicating the same condition three times? Reading the commit message, the intention was:
Add unit tests to verify the zero len TLS r
test/crypto: fix TLS zero length record check
The code was duplicating the same condition three times? Reading the commit message, the intention was:
Add unit tests to verify the zero len TLS records. Zero len packets are allowed when content type is app data while zero packet length with other content type (such as handshake) would result in an error.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: 79a58624369a ("test/security: verify zero length TLS records") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Anoob Joseph <anoobj@marvell.com>
show more ...
|
| 8c08b10d | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/event: avoid duplicate initialization
The event_dev_config initialization had duplicate assignments to the same element. Change to use structure initialization so that compiler will catch this
test/event: avoid duplicate initialization
The event_dev_config initialization had duplicate assignments to the same element. Change to use structure initialization so that compiler will catch this type of bug.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: f8f9d233ea0e ("test/eventdev: add unit tests") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
show more ...
|
| 0151b807 | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/security: fix IPv6 extension loop
The parenthesis were in the wrong place so that comparison took precedence over assignment in handling IPv6 extension headers. Break up the loop condition to
test/security: fix IPv6 extension loop
The parenthesis were in the wrong place so that comparison took precedence over assignment in handling IPv6 extension headers. Break up the loop condition to avoid the problem.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: 15ccc647526e ("test/security: test inline reassembly with multi-segment") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
| f7f85632 | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/bonding: fix MAC address comparison
The first argument of 'memcmp' function was equal to the second argument. Therefore ASSERT would always be true.
Link: https://pvs-studio.com/en/blog/posts/
test/bonding: fix MAC address comparison
The first argument of 'memcmp' function was equal to the second argument. Therefore ASSERT would always be true.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: 92073ef961ee ("bond: unit tests") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
| 112ce391 | 21-Nov-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
test/bonding: fix loop on members
Do not use same variable for outer and inner loop in bonding test. Since the loop is just freeing the resulting burst use bulk free.
Link: https://pvs-studio.com/e
test/bonding: fix loop on members
Do not use same variable for outer and inner loop in bonding test. Since the loop is just freeing the resulting burst use bulk free.
Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: 92073ef961ee ("bond: unit tests") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
| 34847a73 | 20-Nov-2024 |
Min Zhou <zhoumin@loongson.cn> |
app/testpmd: reuse RSS config when configuring DCB
In the testpmd command, we have to stop the port firstly before configuring the DCB. However, some PMDs may execute a hardware reset during the por
app/testpmd: reuse RSS config when configuring DCB
In the testpmd command, we have to stop the port firstly before configuring the DCB. However, some PMDs may execute a hardware reset during the port stop, such as ixgbe. Some kind of reset operations of PMD could clear the configurations of RSS in the hardware register. This would cause the loss of RSS configurations that were set during the testpmd initialization. As a result, I find that I cannot enable RSS and DCB at the same time in the testpmd command when using Intel 82599 NIC.
The patch uses rss conf from software instead of reading from the hardware register when configuring DCB.
Signed-off-by: Min Zhou <zhoumin@loongson.cn> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| e2bce04b | 15-Aug-2024 |
Alex Chapman <alex.chapman@arm.com> |
app/testpmd: add L4 port to verbose output
To help distinguish packets we want to add more identifiable information and print port number for all packets. This will make packet metadata more uniform
app/testpmd: add L4 port to verbose output
To help distinguish packets we want to add more identifiable information and print port number for all packets. This will make packet metadata more uniform as previously it only printed port number for encapsulated packets.
Bugzilla ID: 1517
Signed-off-by: Alex Chapman <alex.chapman@arm.com> Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com>
show more ...
|
| ff92d10a | 20-Mar-2024 |
Vipin Varghese <vipin.varghese@amd.com> |
app/dma-perf: clarify incorrect NUMA config
In case incorrect NUMA configuration, the current commit shares 1) either `source or destination numa is greater` 2) instead of `actual NUMA` it is `act
app/dma-perf: clarify incorrect NUMA config
In case incorrect NUMA configuration, the current commit shares 1) either `source or destination numa is greater` 2) instead of `actual NUMA` it is `acture NUMA` 3) uses `printf` instead of PRINT_ERR
current patch changes the above to 1) identify if source or|and destination is incorrect 2) fix wording to incorrect 3) use PRINT_ERR macro
Signed-off-by: Vipin Varghese <vipin.varghese@amd.com>
show more ...
|
| 098f949f | 18-Nov-2024 |
Danylo Vodopianov <dvo-plv@napatech.com> |
app/testpmd: fix aged flow destroy
port_flow_destroy() function never assumed that rule array can be freed when it's executing, and port_flow_aged() just violated that assumption.
In case of flow a
app/testpmd: fix aged flow destroy
port_flow_destroy() function never assumed that rule array can be freed when it's executing, and port_flow_aged() just violated that assumption.
In case of flow async create failure, it tries to do a cleanup, but it wrongly removes a 1st flow (with id 0). pf->id is not set at this moment and it always is 0, thus 1st flow is removed. A local copy of flow->id must be used to call of port_flow_destroy() to avoid access and processing of flow->id after the flow is removed.
Fixes: de956d5ecf08 ("app/testpmd: support age shared action context") Cc: stable@dpdk.org
Signed-off-by: Danylo Vodopianov <dvo-plv@napatech.com> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
show more ...
|