DPDK patches and discussions
 help / color / mirror / Atom feed
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.

  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).