From: Ivan Malov <ivan.malov@arknetworks.am>
To: Dean Marx <dmarx@iol.unh.edu>
Cc: Thomas Wilks <thomas.wilks@arm.com>,
dev@dpdk.org, Paul Szczepanek <paul.szczepanek@arm.com>,
Luca Vizzarro <luca.vizzarro@arm.com>,
Patrick Robb <probb@iol.unh.edu>,
Alex Chapman <alex.chapman@arm.com>
Subject: Re: [RFC PATCH v3 2/2] dts: add PMD RSS testsuite
Date: Sun, 20 Jul 2025 12:00:38 +0400 (+04) [thread overview]
Message-ID: <d9e565c4-a5e2-10d7-cbda-067a8dd3a531@arknetworks.am> (raw)
In-Reply-To: <CABD7UXPyhmLKn-v7-8Wp=7fu3cgZSbVhgUzN=xeRNBKZjhh4rA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3198 bytes --]
Hi Dean,
On Fri, 18 Jul 2025, Dean Marx wrote:
> On Fri, Jul 18, 2025 at 11:05 AM Thomas Wilks <thomas.wilks@arm.com> wrote:
>>
>> Port over the rss_key_update, pmd_rss_reta and pmd_rss_hash
>> test suites from old DTS into one file including all of the
>> helper functions that are required by all of the test suites
>> to work.
>>
>> The rss_key_update test cases verify that setting a new hash
>> key when Receive Side Scaling (RSS) will result in a change
>> in the packets destination queue. These test cases also
>> verifies that the reported key size of the NIC is correct.
>>
>> The pmd_rss_reta test cases verify that Redirection Tables (RETAs)
>> of different sizes function correctly in RSS. These test cases
>> also verify that the reported reta size of the NIC is correct.
>>
>> The pmd_rss_hash test cases verify that the 4 supported types of
>> hashing algorithm used in RSS function correctly and that the nic
>> supports them. The four hashing algorithms being DEFAULT, TOEPLITZ,
>> SYMMETRIC_TOEPLITZ and SIMPLE_XOR. These test cases also verify
>> that the supported hashing algorithms reported by the NIC are correct.
>>
>> Signed-off-by: Alex Chapman <alex.chapman@arm.com>
>> Signed-off-by: Thomas Wilks <thomas.wilks@arm.com>
>
> It was brought up at the DTS meeting yesterday that this suite is
> reliable on Intel NICs, but unreliable on Mellanox (CX6), which I can
> confirm after running on a CX5 and Intel XL710 and seeing the same
> behavior.
As I tried to explain earlier, this might be due to the 'queue' array of the
action 'rss' logically comprising a separate 'reta' for the packets intercepted
by the flow. The test should not check such packets against the global 'reta'.
As to why the test passes for the latter NIC, please take a look at [1]. In that
specific case, the code that is meant to parse the 'queue' array of action 'rss'
might be called only when there are no match items in the flow pattern or when
the first pattern item is VLAN. If this is indeed the case, then the use of
action 'rss' overrides only the hash types for packets intercepted by the flow,
but not the 'reta' to be used, so they still land the global 'reta'.
Also, in 'setup_rss_environment', it might be more robust to first configure the
port's global 'reta' and then insert the flow (if any), to rule out the flow
possibly overriding the global 'reta', which, in theory, shall not happen.
With this in mind, the test could possibly be reworked to act as follows:
1) set up and memorise the port's global 'reta';
2) create a flow rule (say, match UDP DST "A") with 'rss', memorise its 'reta';
4) send a packet that matches the flow (say, with UDP DST "A");
5) receive the packet and check the queue against the flow's own 'reta';
on queue mismatch, check against the global 'reta' and log the artifact;
6) send a packet that does not match the flow (say, with UDP DST "B");
7) receive the packet and check the queue against the global 'reta'.
[1] https://github.com/DPDK/dpdk/blob/f6e3473724e7ce31103fa0ecad62b282ec8e7090/drivers/net/intel/i40e/i40e_hash.c#L1176
Thank you.
>
> Reviewed-by: Dean Marx <dmarx@iol.unh.edu>
> Tested-by: Dean Marx <dmarx@iol.unh.edu>
>
next prev parent reply other threads:[~2025-07-20 8:00 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-29 12:50 [PATCH] dts: add RSS functions to testpmd Alex Chapman
2024-09-06 14:29 ` Juraj Linkeš
2025-02-25 15:33 ` [PATCH v2 0/6] Added RSS functions and tests Thomas Wilks
2025-02-25 15:33 ` [PATCH v2 1/6] dts: add RSS functions to testpmd Thomas Wilks
2025-04-14 3:11 ` Patrick Robb
2025-02-25 15:33 ` [PATCH v2 2/6] dts: add utils for PMD RSS testsuites Thomas Wilks
2025-04-14 3:11 ` Patrick Robb
2025-02-25 15:33 ` [PATCH v2 3/6] dts: add PMD RSS hash testsuite Thomas Wilks
2025-04-14 3:30 ` Patrick Robb
2025-02-25 15:33 ` [PATCH v2 4/6] dts: add PMD RSS RETA testsuite Thomas Wilks
2025-02-25 15:33 ` [PATCH v2 5/6] dts: add PMD RSS key update testsuite Thomas Wilks
2025-02-25 15:33 ` [PATCH v2 6/6] dts: add NIC capabilities for hash algorithms Thomas Wilks
2025-07-18 15:03 ` [RFC PATCH v3 0/2] dts: add RSS functions and test suite Thomas Wilks
2025-07-18 15:04 ` [RFC PATCH v3 1/2] dts: add RSS functions to testpmd Thomas Wilks
2025-07-18 15:04 ` [RFC PATCH v3 2/2] dts: add PMD RSS testsuite Thomas Wilks
2025-07-18 18:37 ` Dean Marx
2025-07-20 8:00 ` Ivan Malov [this message]
2025-07-18 17:00 ` [RFC PATCH v3 0/2] dts: add RSS functions and test suite Ivan Malov
2025-07-18 18:22 ` Ivan Malov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d9e565c4-a5e2-10d7-cbda-067a8dd3a531@arknetworks.am \
--to=ivan.malov@arknetworks.am \
--cc=alex.chapman@arm.com \
--cc=dev@dpdk.org \
--cc=dmarx@iol.unh.edu \
--cc=luca.vizzarro@arm.com \
--cc=paul.szczepanek@arm.com \
--cc=probb@iol.unh.edu \
--cc=thomas.wilks@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).