From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DDF4245D55; Thu, 21 Nov 2024 18:50:07 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ADA5840A81; Thu, 21 Nov 2024 18:50:07 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id CB87240A6B for ; Thu, 21 Nov 2024 18:50:05 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1213) id 0B714205A778; Thu, 21 Nov 2024 09:50:05 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0B714205A778 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1732211405; bh=ERfw9xJqWrf4dTnkwmURJ1FK+vx/2xXKHxfzkn3bZ84=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=iqGhkv/cai0xSVdtau3uQ+Tqn8DW/6oqHKL1zLHr69FE0ChBm1rTcjtB/FdqKMLq7 7ZQ40rg9aGKNzoQ15e59YZIArjJKg+0N4TQJCBk2jTPXOnsl0w5OCJXdMUhn2ATsp2 Pd0X87p92wIVgcDdbuEVVECw4MaBXpdUmUj/dGQ4= Date: Thu, 21 Nov 2024 09:50:05 -0800 From: Andre Muezerie To: "Medvedkin, Vladimir" Cc: dev@dpdk.org, Konstantin Ananyev Subject: Re: [PATCH v10 06/21] hash/thash: remove use of VLAs for Windows built Message-ID: <20241121175005.GA22492@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> References: <1713397319-26135-1-git-send-email-roretzla@linux.microsoft.com> <1732072401-15962-1-git-send-email-andremue@linux.microsoft.com> <1732072401-15962-7-git-send-email-andremue@linux.microsoft.com> <4280ad2f-b589-458b-962b-01e193210643@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4280ad2f-b589-458b-962b-01e193210643@intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Wed, Nov 20, 2024 at 10:40:07AM +0000, Medvedkin, Vladimir wrote: > Hi Andre, > > On 20/11/2024 03:13, Andre Muezerie wrote: > >From: Konstantin Ananyev > > > >1) ./lib/hash/rte_thash.c:774:9 > > : warning: ISO C90 forbids variable length array ‘tmp_tuple’ > > > > From my understanding, tuple size here should never exceed > >sizeof(union rte_thash_tuple), so it should be safe to replace VLA with > >fixed size array. > > The tuple can exceed this size, for example if you use any tunneling > header in RSS hash calculation. > > HereIsuggestusingasa limitthe sizeof > thelongestRSShashkeycurrentlysupported,whichis52bytes. Technically, > the longest tuple with such a key should be (52 - sizeof(uint32_t)), > so you can use this as a size of the tmp_tuple array > Thanks, I'll update the code accordingly. Andre > > > >Signed-off-by: Konstantin Ananyev > >--- > > lib/hash/rte_thash.c | 2 +- > > lib/hash/rte_thash.h | 8 ++++++++ > > 2 files changed, 9 insertions(+), 1 deletion(-) > > > >diff --git a/lib/hash/rte_thash.c b/lib/hash/rte_thash.c > >index 336c228e64..842e3ad85d 100644 > >--- a/lib/hash/rte_thash.c > >+++ b/lib/hash/rte_thash.c > >@@ -761,7 +761,7 @@ rte_thash_adjust_tuple(struct rte_thash_ctx *ctx, > > uint32_t desired_value, unsigned int attempts, > > rte_thash_check_tuple_t fn, void *userdata) > > { > >- uint32_t tmp_tuple[tuple_len / sizeof(uint32_t)]; > >+ uint32_t tmp_tuple[RTE_THASH_MAX_L4_LEN]; > > unsigned int i, j, ret = 0; > > uint32_t hash, adj_bits; > > const uint8_t *hash_key; > >diff --git a/lib/hash/rte_thash.h b/lib/hash/rte_thash.h > >index c0af5968df..427246ad2e 100644 > >--- a/lib/hash/rte_thash.h > >+++ b/lib/hash/rte_thash.h > >@@ -121,6 +121,14 @@ __rte_internal > > uint32_t > > thash_get_rand_poly(uint32_t poly_degree); > >+/** > >+ * maximum length in dwords of input tuple to > >+ * calculate hash of ipv(4|6) header + > >+ * transport header > >+ */ > >+#define RTE_THASH_MAX_L4_LEN \ > >+ ((sizeof(union rte_thash_tuple)) / sizeof(uint32_t)) > >+ > > /** > > * Prepare special converted key to use with rte_softrss_be() > > * @param orig > > -- > Regards, > Vladimir