From: Madhuker Mythri <madhuker.mythri@oracle.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: "ferruh.yigit@amd.com" <ferruh.yigit@amd.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.
Date: Fri, 5 Jan 2024 14:58:22 +0000 [thread overview]
Message-ID: <SJ0PR10MB479875A972FB0A824A11200F97662@SJ0PR10MB4798.namprd10.prod.outlook.com> (raw)
In-Reply-To: <20240104123853.7ade1ec7@hermes.local>
Hi Stephen,
As part of hash calculation logic, the hash value is going beyond 32-bits and thus the eBPF verifier throws error with the 32-bit hash variable.
So, I need to modify as 64-bit hash variable to resolve the BPF verifier error.
Here, in the code this rte_softrss_be() function is returning the hash variable, which is a 64-bit value, so modified the return type from 32-bit to 64-bit.
==================
-static __u32 __attribute__((always_inline))
-rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
- __u8 input_len)
+static __u64 __attribute__((always_inline))
+rte_softrss_be(const __u32 *input_tuple, __u8 input_len)
{
- __u32 i, j, hash = 0;
-#pragma unroll
+ __u32 i, j;
+ __u64 hash = 0;
+#pragma clang loop unroll(full)
for (j = 0; j < input_len; j++) {
-#pragma unroll
+#pragma clang loop unroll(full)
for (i = 0; i < 32; i++) {
if (input_tuple[j] & (1U << (31 - i))) {
hash ^= ((const __u32 *)def_rss_key)[j] << i |
- (__u32)((uint64_t)
+ (__u32)((__u64)
(((const __u32 *)def_rss_key)[j + 1])
>> (32 - i));
}
@@ -119,137 +107,78 @@ rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
return hash;
}
======================
Thanks,
Madhuker.
-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org>
Sent: 05 January 2024 02:09
To: Madhuker Mythri <madhuker.mythri@oracle.com>
Cc: ferruh.yigit@amd.com; dev@dpdk.org
Subject: [External] : Re: [PATCH] net/tap: Modified TAP BPF program as per the new Kernel-version upgrade requirements.
On Thu, 4 Jan 2024 22:57:56 +0530
madhuker.mythri@oracle.com wrote:
> -static __u32 __attribute__((always_inline)) -rte_softrss_be(const
> __u32 *input_tuple, const uint8_t *rss_key,
> - __u8 input_len)
> +static __u64 __attribute__((always_inline)) rte_softrss_be(const
> +__u32 *input_tuple, __u8 input_len)
Why the change to u64?
This is not part of the bug fix and not how RSS is defined.
next prev parent reply other threads:[~2024-01-05 14:58 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-04 17:27 madhuker.mythri
2024-01-04 20:32 ` Stephen Hemminger
2024-01-05 14:58 ` [External] : " Madhuker Mythri
2024-01-04 20:33 ` Stephen Hemminger
2024-01-04 20:35 ` Stephen Hemminger
2024-01-04 20:38 ` Stephen Hemminger
2024-01-05 14:58 ` Madhuker Mythri [this message]
2024-01-05 17:40 ` [External] : " Stephen Hemminger
2024-01-04 20:39 ` Stephen Hemminger
2024-01-04 20:41 ` Stephen Hemminger
2024-01-05 15:11 ` [External] : " Madhuker Mythri
2024-01-05 17:41 ` Stephen Hemminger
2024-01-04 20:42 ` Stephen Hemminger
2024-01-04 20:57 ` Stephen Hemminger
2024-01-05 14:44 ` [External] : " Madhuker Mythri
2024-01-05 17:39 ` Stephen Hemminger
2024-01-06 5:47 ` Madhuker Mythri
2024-01-05 19:30 ` Stephen Hemminger
2024-01-06 5:36 ` [External] : " Madhuker Mythri
2024-01-06 10:23 ` Madhuker Mythri
2024-01-06 16:54 ` Stephen Hemminger
2024-01-06 18:16 ` Stephen Hemminger
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=SJ0PR10MB479875A972FB0A824A11200F97662@SJ0PR10MB4798.namprd10.prod.outlook.com \
--to=madhuker.mythri@oracle.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@amd.com \
--cc=stephen@networkplumber.org \
/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).