From patchwork Sat Feb 24 08:21:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137149 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1CBBD43BBD; Sat, 24 Feb 2024 09:23:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DBB05415D7; Sat, 24 Feb 2024 09:23:52 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 29029402BB for ; Sat, 24 Feb 2024 09:22:12 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 3D71E20B74C1; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3D71E20B74C1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=A7jdsqx1qrIsoUt2sezwVgyjjbtTh5oQSTEZDNaMyO0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hEU/4oSLOmAG3tp39jjWLKyu125LfP0Yf/xtG5YBnU4W+SFsvXsnHwdCI4KHCUFaE xPjr3Yu4KcvWWqCLe9NVKCOWB2uJbE8tPD30DBKr35xAUCOMmfHRsEI2ITx7RCFi53 uf9EHHnPoFCwApopgID+j0HXO1z78EwNd/9Nd9nk= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 01/22] eal: provide macro to expand marker extensions Date: Sat, 24 Feb 2024 00:21:46 -0800 Message-Id: <1708762927-14126-2-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Provide a new macro __rte_marker(type, name) that may be used to expand RTE_MARKER empty in struct definitions when building with MSVC. Signed-off-by: Tyler Retzlaff --- lib/eal/include/rte_common.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h index 1cc1222..60d81a2 100644 --- a/lib/eal/include/rte_common.h +++ b/lib/eal/include/rte_common.h @@ -578,7 +578,11 @@ static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void) /*********** Structure alignment markers ********/ -#ifndef RTE_TOOLCHAIN_MSVC +#ifdef RTE_TOOLCHAIN_MSVC + +#define __rte_marker(type, name) + +#else /** Generic marker for any place in a structure. */ __extension__ typedef void *RTE_MARKER[0]; @@ -591,6 +595,8 @@ static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void) /** Marker for 8B alignment in a structure. */ __extension__ typedef uint64_t RTE_MARKER64[0]; +#define __rte_marker(type, name) type name; + #endif /*********** Macros for calculating min and max **********/ From patchwork Sat Feb 24 08:21:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137151 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 23C1843BBD; Sat, 24 Feb 2024 09:24:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3C92F402ED; Sat, 24 Feb 2024 09:23:56 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 4B195402CC for ; Sat, 24 Feb 2024 09:22:12 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 4D9E620B74C2; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 4D9E620B74C2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=KIcBZuSyclC5wESrYqxGvTee2yjHZnxqZZG1TxnoLEs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V6pHjLGW8DDuIrV0+XakqMYtmyX7jMkGXUp9QA2yjY1b0g7O1d9i5OtsuM4Pp3M6z eJIOOPUlm+A8ojYagK/DrlmLY52Nc9aldVqof7MBPzJnuOiNA6dUJEjvfWwevFLMLX tq4g4lTLMfNUEP375LihffGVvCDSGkfzyyUivSZ8= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 02/22] mbuf: expand rte markers empty when building with MSVC Date: Sat, 24 Feb 2024 00:21:47 -0800 Message-Id: <1708762927-14126-3-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use __rte_marker to expand RTE_MARKER fields empty in rte_mbuf struct. Make slight adjustment to cacheline1 __rte_cache_min_aligned as to continue maintaining correct alignment with or without the marker expanding empty. Signed-off-by: Tyler Retzlaff --- lib/mbuf/rte_mbuf_core.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/mbuf/rte_mbuf_core.h b/lib/mbuf/rte_mbuf_core.h index 5688683..4bf4587 100644 --- a/lib/mbuf/rte_mbuf_core.h +++ b/lib/mbuf/rte_mbuf_core.h @@ -464,7 +464,7 @@ enum { * The generic rte_mbuf, containing a packet mbuf. */ struct rte_mbuf { - RTE_MARKER cacheline0; + __rte_marker(RTE_MARKER, cacheline0) void *buf_addr; /**< Virtual address of segment buffer. */ #if RTE_IOVA_IN_MBUF @@ -487,7 +487,7 @@ struct rte_mbuf { #endif /* next 8 bytes are initialised on RX descriptor rearm */ - RTE_MARKER64 rearm_data; + __rte_marker(RTE_MARKER64, rearm_data) uint16_t data_off; /** @@ -514,7 +514,7 @@ struct rte_mbuf { uint64_t ol_flags; /**< Offload features. */ /* remaining bytes are set on RX when pulling packet from descriptor */ - RTE_MARKER rx_descriptor_fields1; + __rte_marker(RTE_MARKER, rx_descriptor_fields1) /* * The packet type, which is the combination of outer/inner L2, L3, L4 @@ -595,8 +595,8 @@ struct rte_mbuf { struct rte_mempool *pool; /**< Pool from which mbuf was allocated. */ /* second cache line - fields only used in slow path or on TX */ - RTE_MARKER cacheline1 __rte_cache_min_aligned; - + __rte_cache_min_aligned + __rte_marker(RTE_MARKER, cacheline1) #if RTE_IOVA_IN_MBUF /** * Next segment of scattered packet. Must be NULL in the last From patchwork Sat Feb 24 08:21:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137150 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B451643BBD; Sat, 24 Feb 2024 09:24:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 331D6402CC; Sat, 24 Feb 2024 09:23:55 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 32159402C8 for ; Sat, 24 Feb 2024 09:22:12 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 5C54520B74C3; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5C54520B74C3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=I65yUqtwj8s8urmIJt98K+QxCg4DS7is1k8r7VUonlY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GHbRGY58dA29vK2AqDVVWOmBOwDqJ+vVvZK964XpxQbDraV99vjY9ak9ZFWORi94s VkXGvAGJFoU4qmGdatq7W03uUEUnKYSuPNIu0vCugzzf78jsY+1czEbVQ6L0kBW8DY AfvgTj3DmTHhEUAoFdOkI1YrPJja4O01RB5qZ2Dw= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 03/22] security: expand rte markers empty when building with MSVC Date: Sat, 24 Feb 2024 00:21:48 -0800 Message-Id: <1708762927-14126-4-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use __rte_marker to expand RTE_MARKER fields empty in rte_security_session struct. Make slight adjustment to cacheline1 __rte_cache_min_aligned as to continue maintaining correct alignment with or without the marker expanding empty. Signed-off-by: Tyler Retzlaff --- lib/security/rte_security_driver.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/security/rte_security_driver.h b/lib/security/rte_security_driver.h index faa4074..a25ccd0 100644 --- a/lib/security/rte_security_driver.h +++ b/lib/security/rte_security_driver.h @@ -24,7 +24,7 @@ * Security session to be used by library for internal usage */ struct rte_security_session { - RTE_MARKER cacheline0; + __rte_marker(RTE_MARKER, cacheline0) uint64_t opaque_data; /**< Opaque user defined data */ uint64_t fast_mdata; @@ -32,7 +32,8 @@ struct rte_security_session { rte_iova_t driver_priv_data_iova; /**< session private data IOVA address */ - RTE_MARKER cacheline1 __rte_cache_min_aligned; + __rte_cache_min_aligned + __rte_marker(RTE_MARKER, cacheline1) uint8_t driver_priv_data[]; /**< Private session material, variable size (depends on driver) */ }; From patchwork Sat Feb 24 08:21:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137152 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A151043BBD; Sat, 24 Feb 2024 09:24:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2BFAA40E6E; Sat, 24 Feb 2024 09:23:57 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 84BD1402BB for ; Sat, 24 Feb 2024 09:22:12 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 6BA7120B74C4; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 6BA7120B74C4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=RtWwCy7bpwh8CxdJ48KmkkQLNsi/W473UD+CmxYvrxY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RQGwIW/j0l4JVZKCVj0LzfWBftL0wdci3mCOFW+iu8NkYPDo6x0DD4XWoho/jQ7yd vqMTCRG1w/f5rUSuZk6AapY6aqW6mK+Wd8mwdyGpg4oqTOmFZEfypElhEIso1vnXK8 fRakQ0Q+1l1MxykDVoX4xJwnoZMVE4SHiQNeCQYE= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 04/22] cryptodev: expand rte markers empty when building with MSVC Date: Sat, 24 Feb 2024 00:21:49 -0800 Message-Id: <1708762927-14126-5-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use __rte_marker to expand RTE_MARKER fields empty in rte_security_session struct. Make slight adjustment to cacheline1 __rte_cache_min_aligned as to continue maintaining correct alignment with or without the marker expanding empty. Signed-off-by: Tyler Retzlaff --- lib/cryptodev/cryptodev_pmd.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/cryptodev/cryptodev_pmd.h b/lib/cryptodev/cryptodev_pmd.h index 0732b35..1d4810c 100644 --- a/lib/cryptodev/cryptodev_pmd.h +++ b/lib/cryptodev/cryptodev_pmd.h @@ -139,7 +139,7 @@ struct cryptodev_driver { * has a fixed algo, key, op-type, digest_len etc. */ struct rte_cryptodev_sym_session { - RTE_MARKER cacheline0; + __rte_marker(RTE_MARKER, cacheline0) uint64_t opaque_data; /**< Can be used for external metadata */ uint32_t sess_data_sz; @@ -151,7 +151,8 @@ struct rte_cryptodev_sym_session { rte_iova_t driver_priv_data_iova; /**< Session driver data IOVA address */ - RTE_MARKER cacheline1 __rte_cache_min_aligned; + __rte_cache_min_aligned + __rte_marker(RTE_MARKER, cacheline1) /**< Second cache line - start of the driver session data */ uint8_t driver_priv_data[]; /**< Driver specific session data, variable size */ From patchwork Sat Feb 24 08:21:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137153 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 23D2943BBD; Sat, 24 Feb 2024 09:24:24 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 34F0340E36; Sat, 24 Feb 2024 09:23:58 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id E0606402A8 for ; Sat, 24 Feb 2024 09:22:12 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 7ABAD20B74C5; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 7ABAD20B74C5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=GJEQ9pHO0PXsSyMLBEgPGqp5CRgxas+5Di3ov5QWEZQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WdBcopQ6gVeA8/zdXvV2M4aoeWLgjll0SLPpVvQIqUQV+JPB0NWSUY1EvmifyMteI u/h52whNdgVXydWRepE/5oOKz65HG9L/QogLJqdcv4DK2CBr4FN/ni72VmiW/EzteY CsfUmV3Y/C4A3VcY1ok3x2X27AGcIj0s9pU9Nw80= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 05/22] mbuf: stop using mbuf cacheline marker fields Date: Sat, 24 Feb 2024 00:21:50 -0800 Message-Id: <1708762927-14126-6-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 Update prefetch inline functions to access rte_mbuf struct fields directly instead of via cacheline{0,1} marker extension fields. Signed-off-by: Tyler Retzlaff --- lib/mbuf/rte_mbuf.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h index 286b32b..04cde0f 100644 --- a/lib/mbuf/rte_mbuf.h +++ b/lib/mbuf/rte_mbuf.h @@ -108,7 +108,7 @@ static inline void rte_mbuf_prefetch_part1(struct rte_mbuf *m) { - rte_prefetch0(&m->cacheline0); + rte_prefetch0(&m->buf_addr); } /** @@ -126,7 +126,11 @@ rte_mbuf_prefetch_part2(struct rte_mbuf *m) { #if RTE_CACHE_LINE_SIZE == 64 - rte_prefetch0(&m->cacheline1); +#if RTE_IOVA_IN_MBUF + rte_prefetch0(&m->next); +#else + rte_prefetch0(&m->dynfield2); +#endif #else RTE_SET_USED(m); #endif From patchwork Sat Feb 24 08:21:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137154 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9641443BBD; Sat, 24 Feb 2024 09:24:30 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 35D1042831; Sat, 24 Feb 2024 09:23:59 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id F0847402C8 for ; Sat, 24 Feb 2024 09:22:12 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 898B720B74C6; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 898B720B74C6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=ytH/3qzniZSmj6fQ2S5RP8QTNMs7a3q6z/2o0D3CW+s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bZ55/ErYiYemBLyMom6dh9lZJjdUELdRhTLeSCVUtAQLffgdW0v8zBOsyRiqBKAvB oGdn9JwMNXiUy4QDI+1NRZ7NNOVBSwcpT3vDcC5lo5bWeKc1hGg/FkiCoHc4j+k3mT Ri/jtPIirqUV6HRpDUK0kxMmaV9w3aMtMJhmVc0A= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 06/22] mbuf: add mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:51 -0800 Message-Id: <1708762927-14126-7-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 Provide inline functions to access rearm data and rx descriptor fields in rte_mbuf struct. Signed-off-by: Tyler Retzlaff --- lib/mbuf/rte_mbuf.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h index 04cde0f..7993730 100644 --- a/lib/mbuf/rte_mbuf.h +++ b/lib/mbuf/rte_mbuf.h @@ -136,6 +136,26 @@ #endif } +static inline +uint64_t * +rte_mbuf_rearm_data(struct rte_mbuf *m) +{ + RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, ol_flags) != + offsetof(struct rte_mbuf, data_off) + 8); + RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, rearm_data) != + RTE_ALIGN(offsetof(struct rte_mbuf, + data_off), + 16)); + + return (uint64_t *)&m->data_off; +} + +static inline +void * +rte_mbuf_rx_descriptor_fields1(struct rte_mbuf *m) +{ + return &m->packet_type; +} static inline uint16_t rte_pktmbuf_priv_size(struct rte_mempool *mp); From patchwork Sat Feb 24 08:21:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137155 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2450943BBD; Sat, 24 Feb 2024 09:24:37 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 72D5542D55; Sat, 24 Feb 2024 09:24:00 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id EDE10402BB for ; Sat, 24 Feb 2024 09:22:12 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 9870220B74C7; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9870220B74C7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=7lKef471kxFA+NvkIdJqPrp76z2bY5vPtJkajCr5Nug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HkXtyfrUeUvA22Ha6Mc8Ejrh1RcLy/hmmDjmzNscESJYJMsSMWg8pmDWzlMOMXe0y BeyYBRbJ7wkANZ7nvViLOKd/hiaZfMIZve9snSQQIO4slC3sxmnLt5kUTU3INIGKn8 HWUp4CwcxJO4RBqs929drObqnqBaSdpZbe+Nlpc0= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 07/22] common/idpf: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:52 -0800 Message-Id: <1708762927-14126-8-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/common/idpf/idpf_common_rxtx.c | 4 +--- drivers/common/idpf/idpf_common_rxtx_avx512.c | 33 ++++++++++++++------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/drivers/common/idpf/idpf_common_rxtx.c b/drivers/common/idpf/idpf_common_rxtx.c index 83b131e..62ddf2e 100644 --- a/drivers/common/idpf/idpf_common_rxtx.c +++ b/drivers/common/idpf/idpf_common_rxtx.c @@ -1595,7 +1595,6 @@ static inline int idpf_rxq_vec_setup_default(struct idpf_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -1605,8 +1604,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); return 0; } diff --git a/drivers/common/idpf/idpf_common_rxtx_avx512.c b/drivers/common/idpf/idpf_common_rxtx_avx512.c index f65e8d5..f978a27 100644 --- a/drivers/common/idpf/idpf_common_rxtx_avx512.c +++ b/drivers/common/idpf/idpf_common_rxtx_avx512.c @@ -462,6 +462,7 @@ RTE_ALIGN(offsetof(struct rte_mbuf, rearm_data), 16)); + /* build up data and do writes */ __m256i rearm0, rearm1, rearm2, rearm3, rearm4, rearm5, rearm6, rearm7; @@ -476,13 +477,13 @@ rearm0 = _mm256_permute2f128_si256(mbuf_init, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); rearm7 = _mm256_blend_epi32(mbuf_init, mb6_7, 0xF0); @@ -491,13 +492,13 @@ rearm1 = _mm256_blend_epi32(mbuf_init, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* perform dd_check */ @@ -936,13 +937,13 @@ rearm0 = _mm256_permute2f128_si256(mbuf_init, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); rearm7 = _mm256_blend_epi32(mbuf_init, mb6_7, 0xF0); @@ -951,13 +952,13 @@ rearm1 = _mm256_blend_epi32(mbuf_init, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); const __mmask8 dd_mask = _mm512_cmpeq_epi64_mask( From patchwork Sat Feb 24 08:21:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137156 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8C52543BBD; Sat, 24 Feb 2024 09:24:43 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 88C5142D7A; Sat, 24 Feb 2024 09:24:01 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 2800B402CC for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id A76CA20B74C8; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A76CA20B74C8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=/p13L+GCTe/3iDQwTFqo74AvrlDV/3U7d7cjfEIPE0M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bEKz4asBd+ZHSHfdgH7dPcS4oKlh28DXVqJSpeQdymACNX4D5UC2Kvm41ew+QqU+v 5tY8jc40qrNsdI3pmx0zOOOKsiIq7xIg0XjGgla8O5ccukMGyOUVZmwNzMUvA7bBx6 IilzRn74CUKqcdIMSU0tAtNEhLI/gGxUBpBiygN8= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 08/22] net/bnxt: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:53 -0800 Message-Id: <1708762927-14126-9-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/bnxt/bnxt_rxtx_vec_avx2.c | 32 ++++++++++++++++---------------- drivers/net/bnxt/bnxt_rxtx_vec_common.h | 4 +--- drivers/net/bnxt/bnxt_rxtx_vec_neon.c | 16 ++++++++-------- drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 16 ++++++++-------- 4 files changed, 33 insertions(+), 35 deletions(-) diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_avx2.c b/drivers/net/bnxt/bnxt_rxtx_vec_avx2.c index ce6b597..5982d12 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_avx2.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_avx2.c @@ -310,13 +310,13 @@ 0x04); /* Store all mbuf fields for first four packets. */ - _mm256_storeu_si256((void *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); - _mm256_storeu_si256((void *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); - _mm256_storeu_si256((void *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((void *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); /* Unpack rearm data, set fixed fields for final four mbufs. */ @@ -336,13 +336,13 @@ 0x04); /* Store all mbuf fields for final four packets. */ - _mm256_storeu_si256((void *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((void *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((void *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((void *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); nb_rx_pkts += num_valid; @@ -598,13 +598,13 @@ 0x04); /* Store all mbuf fields for first four packets. */ - _mm256_storeu_si256((void *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); - _mm256_storeu_si256((void *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); - _mm256_storeu_si256((void *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((void *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); /* Unpack rearm data, set fixed fields for final four mbufs. */ @@ -624,13 +624,13 @@ 0x04); /* Store all mbuf fields for final four packets. */ - _mm256_storeu_si256((void *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((void *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((void *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((void *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((void *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); nb_rx_pkts += num_valid; diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_common.h b/drivers/net/bnxt/bnxt_rxtx_vec_common.h index 2294f0a..fb0b1c1 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_common.h +++ b/drivers/net/bnxt/bnxt_rxtx_vec_common.h @@ -36,7 +36,6 @@ static inline int bnxt_rxq_vec_setup_common(struct bnxt_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -46,8 +45,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); rxq->rxrearm_nb = 0; rxq->rxrearm_start = 0; return 0; diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c index 775400f..9ca9903 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c @@ -135,27 +135,27 @@ /* Update mbuf rearm_data for four packets. */ GET_OL_FLAGS(rss_flags, index, errors, 0, ol_flags); - vst1q_u32((uint32_t *)&mbuf[0]->rearm_data, + vst1q_u32((uint32_t *)rte_mbuf_rearm_data(mbuf[0]), vsetq_lane_u32(ol_flags, vreinterpretq_u32_u64(mb_init), 2)); GET_OL_FLAGS(rss_flags, index, errors, 1, ol_flags); - vst1q_u32((uint32_t *)&mbuf[1]->rearm_data, + vst1q_u32((uint32_t *)rte_mbuf_rearm_data(mbuf[1]), vsetq_lane_u32(ol_flags, vreinterpretq_u32_u64(mb_init), 2)); GET_OL_FLAGS(rss_flags, index, errors, 2, ol_flags); - vst1q_u32((uint32_t *)&mbuf[2]->rearm_data, + vst1q_u32((uint32_t *)rte_mbuf_rearm_data(mbuf[2]), vsetq_lane_u32(ol_flags, vreinterpretq_u32_u64(mb_init), 2)); GET_OL_FLAGS(rss_flags, index, errors, 3, ol_flags); - vst1q_u32((uint32_t *)&mbuf[3]->rearm_data, + vst1q_u32((uint32_t *)rte_mbuf_rearm_data(mbuf[3]), vsetq_lane_u32(ol_flags, vreinterpretq_u32_u64(mb_init), 2)); /* Update mbuf rx_descriptor_fields1 for four packets. */ GET_DESC_FIELDS(mm_rxcmp[0], mm_rxcmp1[0], shuf_msk, ptype_idx, 0, tmp); - vst1q_u32((uint32_t *)&mbuf[0]->rx_descriptor_fields1, tmp); + vst1q_u32((uint32_t *)rte_mbuf_rx_descriptor_fields1(mbuf[0]), tmp); GET_DESC_FIELDS(mm_rxcmp[1], mm_rxcmp1[1], shuf_msk, ptype_idx, 1, tmp); - vst1q_u32((uint32_t *)&mbuf[1]->rx_descriptor_fields1, tmp); + vst1q_u32((uint32_t *)rte_mbuf_rx_descriptor_fields1(mbuf[1]), tmp); GET_DESC_FIELDS(mm_rxcmp[2], mm_rxcmp1[2], shuf_msk, ptype_idx, 2, tmp); - vst1q_u32((uint32_t *)&mbuf[2]->rx_descriptor_fields1, tmp); + vst1q_u32((uint32_t *)rte_mbuf_rx_descriptor_fields1(mbuf[2]), tmp); GET_DESC_FIELDS(mm_rxcmp[3], mm_rxcmp1[3], shuf_msk, ptype_idx, 3, tmp); - vst1q_u32((uint32_t *)&mbuf[3]->rx_descriptor_fields1, tmp); + vst1q_u32((uint32_t *)rte_mbuf_rx_descriptor_fields1(mbuf[3]), tmp); } static uint16_t diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c index 6c0e332..080e990 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c @@ -114,33 +114,33 @@ /* Update mbuf rearm_data for four packets. */ GET_OL_FLAGS(rss_flags, index, errors, 0, ol_flags); - _mm_store_si128((void *)&mbuf[0]->rearm_data, + _mm_store_si128((void *)rte_mbuf_rearm_data(mbuf[0]), _mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0))); GET_OL_FLAGS(rss_flags, index, errors, 1, ol_flags); - _mm_store_si128((void *)&mbuf[1]->rearm_data, + _mm_store_si128((void *)rte_mbuf_rearm_data(mbuf[1]), _mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0))); GET_OL_FLAGS(rss_flags, index, errors, 2, ol_flags); - _mm_store_si128((void *)&mbuf[2]->rearm_data, + _mm_store_si128((void *)rte_mbuf_rearm_data(mbuf[2]), _mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0))); GET_OL_FLAGS(rss_flags, index, errors, 3, ol_flags); - _mm_store_si128((void *)&mbuf[3]->rearm_data, + _mm_store_si128((void *)rte_mbuf_rearm_data(mbuf[3]), _mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0))); /* Update mbuf rx_descriptor_fields1 for four packes. */ GET_DESC_FIELDS(mm_rxcmp[0], mm_rxcmp1[0], shuf_msk, ptype_idx, 0, t0); - _mm_store_si128((void *)&mbuf[0]->rx_descriptor_fields1, t0); + _mm_store_si128(rte_mbuf_rx_descriptor_fields1(mbuf[0]), t0); GET_DESC_FIELDS(mm_rxcmp[1], mm_rxcmp1[1], shuf_msk, ptype_idx, 1, t0); - _mm_store_si128((void *)&mbuf[1]->rx_descriptor_fields1, t0); + _mm_store_si128(rte_mbuf_rx_descriptor_fields1(mbuf[1]), t0); GET_DESC_FIELDS(mm_rxcmp[2], mm_rxcmp1[2], shuf_msk, ptype_idx, 2, t0); - _mm_store_si128((void *)&mbuf[2]->rx_descriptor_fields1, t0); + _mm_store_si128(rte_mbuf_rx_descriptor_fields1(mbuf[2]), t0); GET_DESC_FIELDS(mm_rxcmp[3], mm_rxcmp1[3], shuf_msk, ptype_idx, 3, t0); - _mm_store_si128((void *)&mbuf[3]->rx_descriptor_fields1, t0); + _mm_store_si128(rte_mbuf_rx_descriptor_fields1(mbuf[3]), t0); } static uint16_t From patchwork Sat Feb 24 08:21:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137158 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A3F4943BBD; Sat, 24 Feb 2024 09:24:55 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9F96442D97; Sat, 24 Feb 2024 09:24:03 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 367E5402D9 for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id B62CA20B74C9; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B62CA20B74C9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=lTb/MuC4tCyMyqvfN1bTbytcn6b1tLOZPYxamh2q+Io=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qeUfhP67oumcHUs6+wGQoqRMRmugiD8LXIDmExXDMxtVJDIvOZshP12joPzwWcJbT zpVhCSSVs+ob7KMaoIwIzELA1BUgWSWBWNfyZNBV7IBaAWlAz+nA7L4HOqmF/WVufn DzJJaXYgYO4EZa7zel8bEF2rqa64hU9hWbZAwop8= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 09/22] net/cnxk: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:54 -0800 Message-Id: <1708762927-14126-10-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/cnxk/cn10k_rx.h | 36 ++++++++++++++++++------------------ drivers/net/cnxk/cn9k_rx.h | 20 ++++++++++---------- drivers/net/cnxk/cnxk_ethdev.c | 2 +- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/net/cnxk/cn10k_rx.h b/drivers/net/cnxk/cn10k_rx.h index 7bb4c86..4bfb323 100644 --- a/drivers/net/cnxk/cn10k_rx.h +++ b/drivers/net/cnxk/cn10k_rx.h @@ -309,7 +309,7 @@ frag_rx = (union nix_rx_parse_u *)(wqe + 1); frag_size = rlen + frag_rx->lcptr - frag_rx->laptr; - *(uint64_t *)(&mbuf->rearm_data) = mbuf_init; + *rte_mbuf_rearm_data(mbuf) = mbuf_init; mbuf->data_len = frag_size; mbuf->pkt_len = frag_size; mbuf->ol_flags = ol_flags; @@ -368,7 +368,7 @@ fsz_w1 >>= 16; data_off = b_off + frag_rx->lcptr + l3_hdr_size; - *(uint64_t *)(&mbuf->rearm_data) = mbuf_init | data_off; + *rte_mbuf_rearm_data(mbuf) = mbuf_init | data_off; mbuf->data_len = frag_size; /* Mark frag as get */ @@ -384,7 +384,7 @@ fsz_w1 >>= 16; data_off = b_off + frag_rx->lcptr + l3_hdr_size; - *(uint64_t *)(&mbuf->rearm_data) = mbuf_init | data_off; + *rte_mbuf_rearm_data(mbuf) = mbuf_init | data_off; mbuf->data_len = frag_size; /* Mark frag as get */ @@ -401,7 +401,7 @@ fsz_w1 >>= 16; data_off = b_off + frag_rx->lcptr + l3_hdr_size; - *(uint64_t *)(&mbuf->rearm_data) = mbuf_init | data_off; + *rte_mbuf_rearm_data(mbuf) = mbuf_init | data_off; mbuf->data_len = frag_size; /* Mark frag as get */ @@ -502,7 +502,7 @@ inner->pkt_len = len; inner->data_len = len; - *(uint64_t *)(&inner->rearm_data) = mbuf_init; + *rte_mbuf_rearm_data(inner) = mbuf_init; inner->ol_flags = ((CPT_COMP_HWGOOD_MASK & (1U << ucc)) ? RTE_MBUF_F_RX_SEC_OFFLOAD : @@ -584,7 +584,7 @@ /* First frag len */ inner->pkt_len = vgetq_lane_u16(*rx_desc_field1, 2); inner->data_len = vgetq_lane_u16(*rx_desc_field1, 4); - p = (uintptr_t)&inner->rearm_data; + p = (uintptr_t)rte_mbuf_rearm_data(inner); *(uint64_t *)p = mbuf_init; /* Reassembly success */ @@ -774,7 +774,7 @@ mbuf->data_len = sg_len; sg = sg >> 16; - p = (uintptr_t)&mbuf->rearm_data; + p = (uintptr_t)rte_mbuf_rearm_data(mbuf); *(uint64_t *)p = rearm & ~0xFFFF; nb_segs--; iova_list++; @@ -825,7 +825,7 @@ head->nb_segs = nb_segs; } mbuf = next_frag; - p = (uintptr_t)&mbuf->rearm_data; + p = (uintptr_t)rte_mbuf_rearm_data(mbuf); *(uint64_t *)p = rearm + ldptr; mbuf->data_len = (sg & 0xFFFF) - ldptr - (flags & NIX_RX_OFFLOAD_TSTAMP_F ? @@ -849,7 +849,7 @@ len = mbuf->pkt_len; - p = (uintptr_t)&mbuf->rearm_data; + p = (uintptr_t)rte_mbuf_rearm_data(mbuf); *(uint64_t *)p = rearm; mbuf->data_len = (sg & 0xFFFF) - (flags & NIX_RX_OFFLOAD_TSTAMP_F ? @@ -917,7 +917,7 @@ mbuf->ol_flags = ol_flags; mbuf->pkt_len = len; mbuf->data_len = len; - p = (uintptr_t)&mbuf->rearm_data; + p = (uintptr_t)rte_mbuf_rearm_data(mbuf); *(uint64_t *)p = val; } @@ -1966,16 +1966,16 @@ rearm3 = vsetq_lane_u64(ol_flags3, rearm3, 1); /* Update rx_descriptor_fields1 */ - vst1q_u64((uint64_t *)mbuf0->rx_descriptor_fields1, f0); - vst1q_u64((uint64_t *)mbuf1->rx_descriptor_fields1, f1); - vst1q_u64((uint64_t *)mbuf2->rx_descriptor_fields1, f2); - vst1q_u64((uint64_t *)mbuf3->rx_descriptor_fields1, f3); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf0), f0); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf1), f1); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf2), f2); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf3), f3); /* Update rearm_data */ - vst1q_u64((uint64_t *)mbuf0->rearm_data, rearm0); - vst1q_u64((uint64_t *)mbuf1->rearm_data, rearm1); - vst1q_u64((uint64_t *)mbuf2->rearm_data, rearm2); - vst1q_u64((uint64_t *)mbuf3->rearm_data, rearm3); + vst1q_u64(rte_mbuf_rearm_data(mbuf0), rearm0); + vst1q_u64(rte_mbuf_rearm_data(mbuf1), rearm1); + vst1q_u64(rte_mbuf_rearm_data(mbuf2), rearm2); + vst1q_u64(rte_mbuf_rearm_data(mbuf3), rearm3); if (flags & NIX_RX_MULTI_SEG_F) { /* Multi segment is enable build mseg list for diff --git a/drivers/net/cnxk/cn9k_rx.h b/drivers/net/cnxk/cn9k_rx.h index d8bb65c..f1212f8 100644 --- a/drivers/net/cnxk/cn9k_rx.h +++ b/drivers/net/cnxk/cn9k_rx.h @@ -155,7 +155,7 @@ mbuf->data_len = sg & 0xFFFF; sg = sg >> 16; - *(uint64_t *)(&mbuf->rearm_data) = rearm; + *rte_mbuf_rearm_data(mbuf) = rearm; nb_segs--; iova_list++; @@ -398,7 +398,7 @@ nix_update_match_id(rx->cn9k.match_id, ol_flags, mbuf); mbuf->ol_flags = ol_flags; - *(uint64_t *)(&mbuf->rearm_data) = val; + *rte_mbuf_rearm_data(mbuf) = val; mbuf->pkt_len = len; mbuf->data_len = len; @@ -799,16 +799,16 @@ rearm3 = vsetq_lane_u64(ol_flags3, rearm3, 1); /* Update rx_descriptor_fields1 */ - vst1q_u64((uint64_t *)mbuf0->rx_descriptor_fields1, f0); - vst1q_u64((uint64_t *)mbuf1->rx_descriptor_fields1, f1); - vst1q_u64((uint64_t *)mbuf2->rx_descriptor_fields1, f2); - vst1q_u64((uint64_t *)mbuf3->rx_descriptor_fields1, f3); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf0), f0); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf1), f1); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf2), f2); + vst1q_u64((uint64_t *)rte_mbuf_rx_descriptor_fields1(mbuf3), f3); /* Update rearm_data */ - vst1q_u64((uint64_t *)mbuf0->rearm_data, rearm0); - vst1q_u64((uint64_t *)mbuf1->rearm_data, rearm1); - vst1q_u64((uint64_t *)mbuf2->rearm_data, rearm2); - vst1q_u64((uint64_t *)mbuf3->rearm_data, rearm3); + vst1q_u64(rte_mbuf_rearm_data(mbuf0), rearm0); + vst1q_u64(rte_mbuf_rearm_data(mbuf1), rearm1); + vst1q_u64(rte_mbuf_rearm_data(mbuf2), rearm2); + vst1q_u64(rte_mbuf_rearm_data(mbuf3), rearm3); if (flags & NIX_RX_MULTI_SEG_F) { /* Multi segment is enable build mseg list for diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c index 2372a4e..14f6b7c 100644 --- a/drivers/net/cnxk/cnxk_ethdev.c +++ b/drivers/net/cnxk/cnxk_ethdev.c @@ -437,7 +437,7 @@ /* Prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - tmp = (uint64_t *)&mb_def.rearm_data; + tmp = rte_mbuf_rearm_data(&mb_def); return *tmp; } From patchwork Sat Feb 24 08:21:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137157 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5539F43BBE; Sat, 24 Feb 2024 09:24:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 97CA142D89; Sat, 24 Feb 2024 09:24:02 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 2D246402D5 for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id C4F8220B74CA; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C4F8220B74CA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=VUNPZFVgLOLwP7BjpG3i+V4rN2X3ZMOQHEmfdOt2UEI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NdNHJ8YHTruFYi8NotTvWZC3Rs3SH3kki3poh3cL6+cqJT0vZvWdTrPFVuL/a3IE4 QEfWsOM/YX56V92B/9tvfvMyT5WGENVy3pSLT34zNMHJDCRVArj6wyGmsXfDbkenHM TRHFCOnfPk5LprLW5JJFF0dNjYEfeWQ0pXmUH4Lo= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 10/22] net/enic: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:55 -0800 Message-Id: <1708762927-14126-11-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/enic/enic_main.c | 4 +--- drivers/net/enic/enic_rxtx_vec_avx2.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index a6aaa76..59e0be4 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -577,7 +577,6 @@ int enic_enable(struct enic *enic) int err; struct rte_eth_dev *eth_dev = enic->rte_dev; uint64_t simple_tx_offloads; - uintptr_t p; if (enic->enable_avx2_rx) { struct rte_mbuf mb_def = { .buf_addr = 0 }; @@ -592,8 +591,7 @@ int enic_enable(struct enic *enic) mb_def.port = enic->port_id; rte_mbuf_refcnt_set(&mb_def, 1); rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - enic->mbuf_initializer = *(uint64_t *)p; + enic->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); } eth_dev->data->dev_link.link_speed = vnic_dev_port_speed(enic->vdev); diff --git a/drivers/net/enic/enic_rxtx_vec_avx2.c b/drivers/net/enic/enic_rxtx_vec_avx2.c index 600efff..f6ab6e1 100644 --- a/drivers/net/enic/enic_rxtx_vec_avx2.c +++ b/drivers/net/enic/enic_rxtx_vec_avx2.c @@ -19,7 +19,7 @@ { bool tnl; - *(uint64_t *)&mb->rearm_data = enic->mbuf_initializer; + *rte_mbuf_rearm_data(mb) = enic->mbuf_initializer; mb->data_len = cqd->bytes_written_flags & CQ_ENET_RQ_DESC_BYTES_WRITTEN_MASK; mb->pkt_len = mb->data_len; @@ -737,14 +737,14 @@ * vlan_tci - 26 (from cqd) * rss - 28 (from cqd) */ - _mm256_storeu_si256((__m256i *)&rxmb[0]->rearm_data, rearm0); - _mm256_storeu_si256((__m256i *)&rxmb[1]->rearm_data, rearm1); - _mm256_storeu_si256((__m256i *)&rxmb[2]->rearm_data, rearm2); - _mm256_storeu_si256((__m256i *)&rxmb[3]->rearm_data, rearm3); - _mm256_storeu_si256((__m256i *)&rxmb[4]->rearm_data, rearm4); - _mm256_storeu_si256((__m256i *)&rxmb[5]->rearm_data, rearm5); - _mm256_storeu_si256((__m256i *)&rxmb[6]->rearm_data, rearm6); - _mm256_storeu_si256((__m256i *)&rxmb[7]->rearm_data, rearm7); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[0]), rearm0); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[1]), rearm1); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[2]), rearm2); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[3]), rearm3); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[4]), rearm4); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[5]), rearm5); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[6]), rearm6); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rxmb[7]), rearm7); max_rx -= 8; cqd += 8; From patchwork Sat Feb 24 08:21:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137164 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 219D543BBD; Sat, 24 Feb 2024 09:25:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E46E442DDE; Sat, 24 Feb 2024 09:24:10 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 60D39402DD for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id D3CF120B74CB; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D3CF120B74CB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=Ka2zgA7eDao2qQJobgjrXSpTWXjn+sAIITxtUuaggmY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZRSTTibKRupQDf7dgsIYRdjgM3R0oZbvp0t52i6vsP3X3NkjijvmWOgdLfXV9reXG ljBAHmu/M7wibSY2vSlhDVuQaCmZoLft2SjIjc4ynAxGg+w3ztZWtTHjo1zv2VIlsk ma3NKooqd82VZc12Hcnh/1FHAPiiYhLZCKHleuiU= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 11/22] net/fm10k: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:56 -0800 Message-Id: <1708762927-14126-12-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/fm10k/fm10k_rxtx_vec.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/net/fm10k/fm10k_rxtx_vec.c b/drivers/net/fm10k/fm10k_rxtx_vec.c index 2b6914b..e7d3810 100644 --- a/drivers/net/fm10k/fm10k_rxtx_vec.c +++ b/drivers/net/fm10k/fm10k_rxtx_vec.c @@ -226,7 +226,6 @@ int __rte_cold fm10k_rxq_vec_setup(struct fm10k_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -239,8 +238,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); return 0; } @@ -282,7 +280,6 @@ /* Initialize the mbufs in vector, process 2 mbufs in one loop */ for (i = 0; i < RTE_FM10K_RXQ_REARM_THRESH; i += 2, mb_alloc += 2) { __m128i vaddr0, vaddr1; - uintptr_t p0, p1; mb0 = mb_alloc[0]; mb1 = mb_alloc[1]; @@ -290,10 +287,8 @@ /* Flush mbuf with pkt template. * Data to be rearmed is 6 bytes long. */ - p0 = (uintptr_t)&mb0->rearm_data; - *(uint64_t *)p0 = rxq->mbuf_initializer; - p1 = (uintptr_t)&mb1->rearm_data; - *(uint64_t *)p1 = rxq->mbuf_initializer; + *rte_mbuf_rearm_data(mb0) = rxq->mbuf_initializer; + *rte_mbuf_rearm_data(mb1) = rxq->mbuf_initializer; /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */ RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) != @@ -519,9 +514,9 @@ staterr = _mm_unpacklo_epi32(sterr_tmp1, sterr_tmp2); /* D.3 copy final 3,4 data to rx_pkts */ - _mm_storeu_si128((void *)&rx_pkts[pos+3]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+3]), pkt_mb4); - _mm_storeu_si128((void *)&rx_pkts[pos+2]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+2]), pkt_mb3); /* C* extract and record EOP bit */ @@ -557,9 +552,9 @@ staterr = _mm_packs_epi32(staterr, zero); /* D.3 copy final 1,2 data to rx_pkts */ - _mm_storeu_si128((void *)&rx_pkts[pos+1]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+1]), pkt_mb2); - _mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb1); fm10k_desc_to_pktype_v(descs0, &rx_pkts[pos]); From patchwork Sat Feb 24 08:21:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137160 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9A6D543BBD; Sat, 24 Feb 2024 09:25:07 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0F0A942DC1; Sat, 24 Feb 2024 09:24:06 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 433B9402DC for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id E29BB20B74CC; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E29BB20B74CC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=UR8/tFwZvKmNTbmYPlXw5P9bSROZKI7wmTQyU2lBH2M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZhHTqr9W+IA582/BXvf4QOwmVm5BitNdIohnzFqW31HG44xQhAgLFP6iD9b5XSzoa kd3j+foWrTJ0DVFY4xSl80mlzTaCP8wkbI997BxTb3RvNXAGPGfZBC0BJEOJp9KaaU k1ttEzlCP8ANeEw1bfoNhCRp60t1mr/A14h6EoJw= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 12/22] net/hns3: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:57 -0800 Message-Id: <1708762927-14126-13-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/hns3/hns3_rxtx_vec.c | 4 +--- drivers/net/hns3/hns3_rxtx_vec_neon.h | 16 ++++++++-------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/net/hns3/hns3_rxtx_vec.c b/drivers/net/hns3/hns3_rxtx_vec.c index 9708ec6..174be45 100644 --- a/drivers/net/hns3/hns3_rxtx_vec.c +++ b/drivers/net/hns3/hns3_rxtx_vec.c @@ -113,7 +113,6 @@ static void hns3_rxq_vec_setup_rearm_data(struct hns3_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -141,8 +140,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); } void diff --git a/drivers/net/hns3/hns3_rxtx_vec_neon.h b/drivers/net/hns3/hns3_rxtx_vec_neon.h index 0dc6b9f..7b2c3e3 100644 --- a/drivers/net/hns3/hns3_rxtx_vec_neon.h +++ b/drivers/net/hns3/hns3_rxtx_vec_neon.h @@ -236,23 +236,23 @@ pkt_mb4 = vreinterpretq_u8_u16(tmp); /* save packet info to rx_pkts mbuf */ - vst1q_u8((void *)&sw_ring[pos + 0].mbuf->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(sw_ring[pos + 0].mbuf), pkt_mb1); - vst1q_u8((void *)&sw_ring[pos + 1].mbuf->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(sw_ring[pos + 1].mbuf), pkt_mb2); - vst1q_u8((void *)&sw_ring[pos + 2].mbuf->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(sw_ring[pos + 2].mbuf), pkt_mb3); - vst1q_u8((void *)&sw_ring[pos + 3].mbuf->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(sw_ring[pos + 3].mbuf), pkt_mb4); /* store the first 8 bytes of packets mbuf's rearm_data */ - *(uint64_t *)&sw_ring[pos + 0].mbuf->rearm_data = + *rte_mbuf_rearm_data(&sw_ring[pos + 0].mbuf) = rxq->mbuf_initializer; - *(uint64_t *)&sw_ring[pos + 1].mbuf->rearm_data = + *rte_mbuf_rearm_data(&sw_ring[pos + 1].mbuf) = rxq->mbuf_initializer; - *(uint64_t *)&sw_ring[pos + 2].mbuf->rearm_data = + *rte_mbuf_rearm_data(&sw_ring[pos + 2].mbuf) = rxq->mbuf_initializer; - *(uint64_t *)&sw_ring[pos + 3].mbuf->rearm_data = + *rte_mbuf_rearm_data(&sw_ring[pos + 3].mbuf) = rxq->mbuf_initializer; rte_prefetch_non_temporal(rxdp + HNS3_DEFAULT_DESCS_PER_LOOP); From patchwork Sat Feb 24 08:21:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137163 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8F56D43BBD; Sat, 24 Feb 2024 09:25:25 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BC8F442DDA; Sat, 24 Feb 2024 09:24:09 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 56596402A8 for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id F106620B74CD; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com F106620B74CD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762931; bh=SpDJtwcVZ3NHWob+jgct7X4GUy8aqcIGfL02WElcfxY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kUAoPmmpudi0C5XMgFn+vqW+dnRG0BDCdn4Ug5V/0yvX7or1/Ze+OYa2GpT+u2WPq Q5TWB0pvOD8VFPlZtQCZ3j9gXVkZFDDewEUTNp116l+T6fwaj4li5IF8YHyrgmWuTB sOuyyy/A5+lpcq9NE53nl3qxQzTnmCOTsmy8tCl8= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 13/22] net/i40e: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:58 -0800 Message-Id: <1708762927-14126-14-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/i40e/i40e_rxtx_vec_altivec.c | 18 ++++++------------ drivers/net/i40e/i40e_rxtx_vec_avx2.c | 16 ++++++++-------- drivers/net/i40e/i40e_rxtx_vec_avx512.c | 16 ++++++++-------- drivers/net/i40e/i40e_rxtx_vec_common.h | 4 +--- drivers/net/i40e/i40e_rxtx_vec_neon.c | 16 ++++++++-------- drivers/net/i40e/i40e_rxtx_vec_sse.c | 16 ++++++++-------- 6 files changed, 39 insertions(+), 47 deletions(-) diff --git a/drivers/net/i40e/i40e_rxtx_vec_altivec.c b/drivers/net/i40e/i40e_rxtx_vec_altivec.c index b6b0d38..3e065ee 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_altivec.c +++ b/drivers/net/i40e/i40e_rxtx_vec_altivec.c @@ -55,7 +55,6 @@ /* Initialize the mbufs in vector, process 2 mbufs in one loop */ for (i = 0; i < RTE_I40E_RXQ_REARM_THRESH; i += 2, rxep += 2) { __vector unsigned long vaddr0, vaddr1; - uintptr_t p0, p1; mb0 = rxep[0].mbuf; mb1 = rxep[1].mbuf; @@ -66,10 +65,8 @@ * anyway. So overwrite whole 8 bytes with one load: * 6 bytes of rearm_data plus first 2 bytes of ol_flags. */ - p0 = (uintptr_t)&mb0->rearm_data; - *(uint64_t *)p0 = rxq->mbuf_initializer; - p1 = (uintptr_t)&mb1->rearm_data; - *(uint64_t *)p1 = rxq->mbuf_initializer; + *rte_mbuf_rearm_data(mb0) = rxq->mbuf_initializer; + *rte_mbuf_rearm_data(mb1) = rxq->mbuf_initializer; /* load buf_addr(lo 64bit) and buf_iova(hi 64bit) */ vaddr0 = vec_ld(0, (__vector unsigned long *)&mb0->buf_addr); @@ -370,12 +367,10 @@ /* D.3 copy final 3,4 data to rx_pkts */ vec_st(pkt_mb4, 0, - (__vector unsigned char *)&rx_pkts[pos + 3] - ->rx_descriptor_fields1 + (__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 3]) ); vec_st(pkt_mb3, 0, - (__vector unsigned char *)&rx_pkts[pos + 2] - ->rx_descriptor_fields1 + (__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 2]) ); /* D.2 pkt 1,2 set in_port/nb_seg and remove crc */ @@ -422,11 +417,10 @@ /* D.3 copy final 1,2 data to rx_pkts */ vec_st(pkt_mb2, 0, - (__vector unsigned char *)&rx_pkts[pos + 1] - ->rx_descriptor_fields1 + (__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 1]) ); vec_st(pkt_mb1, 0, - (__vector unsigned char *)&rx_pkts[pos]->rx_descriptor_fields1 + (__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]) ); desc_to_ptype_v(descs, &rx_pkts[pos], ptype_tbl); desc_to_olflags_v(descs, &rx_pkts[pos]); diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c index f468c1f..027afbe 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c +++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c @@ -543,10 +543,10 @@ rearm2 = _mm256_permute2f128_si256(rearm2, mb2_3, 0x20); rearm0 = _mm256_permute2f128_si256(rearm0, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, rearm0); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ const __m256i odd_flags = _mm256_castsi128_si256( @@ -561,10 +561,10 @@ rearm3 = _mm256_blend_epi32(rearm3, mb2_3, 0xF0); rearm1 = _mm256_blend_epi32(rearm1, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, rearm1); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ if (split_packet) { diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/i40e/i40e_rxtx_vec_avx512.c index f3050cd..91dda60 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c +++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c @@ -580,13 +580,13 @@ rearm0 = _mm256_permute2f128_si256(rearm0, mb0_1, 0x20); /* write to mbuf */ _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 6]->rearm_data, rearm6); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 4]->rearm_data, rearm4); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 2]->rearm_data, rearm2); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 0]->rearm_data, rearm0); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ const __m256i odd_flags = _mm256_castsi128_si256 @@ -606,13 +606,13 @@ rearm1 = _mm256_blend_epi32(rearm1, mb0_1, 0xF0); /* again write to mbufs */ _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 7]->rearm_data, rearm7); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 5]->rearm_data, rearm5); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 3]->rearm_data, rearm3); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); _mm256_storeu_si256 - ((__m256i *)&rx_pkts[i + 1]->rearm_data, rearm1); + ((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ if (split_packet) { diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h index 8b74563..5633268 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_common.h +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h @@ -189,7 +189,6 @@ static inline int i40e_rxq_vec_setup_default(struct i40e_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -199,8 +198,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); rxq->rx_using_sse = 1; return 0; } diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c index d873e30..29dfd92 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_neon.c +++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c @@ -300,10 +300,10 @@ rearm2 = vsetq_lane_u64(vgetq_lane_u32(vlan0, 2), mbuf_init, 1); rearm3 = vsetq_lane_u64(vgetq_lane_u32(vlan0, 3), mbuf_init, 1); - vst1q_u64((uint64_t *)&rx_pkts[0]->rearm_data, rearm0); - vst1q_u64((uint64_t *)&rx_pkts[1]->rearm_data, rearm1); - vst1q_u64((uint64_t *)&rx_pkts[2]->rearm_data, rearm2); - vst1q_u64((uint64_t *)&rx_pkts[3]->rearm_data, rearm3); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[0]), rearm0); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[1]), rearm1); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[2]), rearm2); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[3]), rearm3); } #define PKTLEN_SHIFT 10 @@ -492,13 +492,13 @@ pkt_mb1 = vreinterpretq_u8_u16(tmp); /* D.3 copy final data to rx_pkts */ - vst1q_u8((void *)&rx_pkts[pos + 3]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 3]), pkt_mb4); - vst1q_u8((void *)&rx_pkts[pos + 2]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 2]), pkt_mb3); - vst1q_u8((void *)&rx_pkts[pos + 1]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 1]), pkt_mb2); - vst1q_u8((void *)&rx_pkts[pos]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb1); desc_to_ptype_v(descs, &rx_pkts[pos], ptype_tbl); diff --git a/drivers/net/i40e/i40e_rxtx_vec_sse.c b/drivers/net/i40e/i40e_rxtx_vec_sse.c index 2d4480a..d87b5ba 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_sse.c +++ b/drivers/net/i40e/i40e_rxtx_vec_sse.c @@ -319,10 +319,10 @@ offsetof(struct rte_mbuf, rearm_data) + 8); RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, rearm_data) != RTE_ALIGN(offsetof(struct rte_mbuf, rearm_data), 16)); - _mm_store_si128((__m128i *)&rx_pkts[0]->rearm_data, rearm0); - _mm_store_si128((__m128i *)&rx_pkts[1]->rearm_data, rearm1); - _mm_store_si128((__m128i *)&rx_pkts[2]->rearm_data, rearm2); - _mm_store_si128((__m128i *)&rx_pkts[3]->rearm_data, rearm3); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[0]), rearm0); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[1]), rearm1); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[2]), rearm2); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[3]), rearm3); } #define PKTLEN_SHIFT 10 @@ -535,9 +535,9 @@ staterr = _mm_unpacklo_epi32(sterr_tmp1, sterr_tmp2); /* D.3 copy final 3,4 data to rx_pkts */ - _mm_storeu_si128((void *)&rx_pkts[pos+3]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+3]), pkt_mb4); - _mm_storeu_si128((void *)&rx_pkts[pos+2]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+2]), pkt_mb3); /* D.2 pkt 1,2 set in_port/nb_seg and remove crc */ @@ -571,9 +571,9 @@ staterr = _mm_packs_epi32(staterr, zero); /* D.3 copy final 1,2 data to rx_pkts */ - _mm_storeu_si128((void *)&rx_pkts[pos+1]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+1]), pkt_mb2); - _mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb1); desc_to_ptype_v(descs, &rx_pkts[pos], ptype_tbl); /* C.4 calc available number of desc */ From patchwork Sat Feb 24 08:21:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137159 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C851443BBD; Sat, 24 Feb 2024 09:25:01 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CB52F42DA7; Sat, 24 Feb 2024 09:24:04 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 5D460402C8 for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 0ACBC20B74CE; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0ACBC20B74CE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=GRH8jix1bBTqdTqwCtwYVzxlYvrVOoa444KnTVEB44A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JUZbujq56ZQhE3qt2byaFvdE5uMWMoZ92HAKLrfDnJ51MnE2fhKpToOmjoV0kcU7M 2e2pTPF3KYBtnKfP6bLp3W2mWY6EXdWgvV6WTecpdC8eooow1ySQ2fR+YDzeq55TiN b2UUb5BiJhOf9PBaPyJDgLlSMdXJ81t4rmGQ/rhI= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 14/22] net/iavf: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:21:59 -0800 Message-Id: <1708762927-14126-15-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/iavf/iavf_rxtx_vec_avx2.c | 32 ++++++++++++++++---------------- drivers/net/iavf/iavf_rxtx_vec_avx512.c | 32 ++++++++++++++++---------------- drivers/net/iavf/iavf_rxtx_vec_common.h | 4 +--- drivers/net/iavf/iavf_rxtx_vec_neon.c | 16 ++++++++-------- drivers/net/iavf/iavf_rxtx_vec_sse.c | 32 ++++++++++++++++---------------- 5 files changed, 57 insertions(+), 59 deletions(-) diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c index 510b4d8..0211e83 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c +++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c @@ -398,13 +398,13 @@ rearm2 = _mm256_permute2f128_si256(rearm2, mb2_3, 0x20); rearm0 = _mm256_permute2f128_si256(rearm0, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ @@ -427,13 +427,13 @@ rearm3 = _mm256_blend_epi32(rearm3, mb2_3, 0xF0); rearm1 = _mm256_blend_epi32(rearm1, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ @@ -1305,13 +1305,13 @@ rearm2 = _mm256_permute2f128_si256(rearm2, mb2_3, 0x20); rearm0 = _mm256_permute2f128_si256(rearm0, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ @@ -1334,13 +1334,13 @@ rearm3 = _mm256_blend_epi32(rearm3, mb2_3, 0xF0); rearm1 = _mm256_blend_epi32(rearm1, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/iavf/iavf_rxtx_vec_avx512.c index 3bb6f30..950ec91 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_avx512.c +++ b/drivers/net/iavf/iavf_rxtx_vec_avx512.c @@ -450,13 +450,13 @@ rearm0 = _mm256_permute2f128_si256(mbuf_init, mb0_1, 0x20); } /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ @@ -486,13 +486,13 @@ rearm1 = _mm256_blend_epi32(mbuf_init, mb0_1, 0xF0); } /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ @@ -1461,13 +1461,13 @@ rearm2 = _mm256_permute2f128_si256(rearm2, mb2_3, 0x20); rearm0 = _mm256_permute2f128_si256(rearm0, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ @@ -1490,13 +1490,13 @@ rearm3 = _mm256_blend_epi32(rearm3, mb2_3, 0xF0); rearm1 = _mm256_blend_epi32(rearm1, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ diff --git a/drivers/net/iavf/iavf_rxtx_vec_common.h b/drivers/net/iavf/iavf_rxtx_vec_common.h index 5c52200..71e3644 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_common.h +++ b/drivers/net/iavf/iavf_rxtx_vec_common.h @@ -197,7 +197,6 @@ static inline int iavf_rxq_vec_setup_default(struct iavf_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -207,8 +206,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); return 0; } diff --git a/drivers/net/iavf/iavf_rxtx_vec_neon.c b/drivers/net/iavf/iavf_rxtx_vec_neon.c index 83825aa..d7ea940 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_neon.c +++ b/drivers/net/iavf/iavf_rxtx_vec_neon.c @@ -159,10 +159,10 @@ rearm2 = vsetq_lane_u64(vgetq_lane_u32(vlan0, 2), mbuf_init, 1); rearm3 = vsetq_lane_u64(vgetq_lane_u32(vlan0, 3), mbuf_init, 1); - vst1q_u64((uint64_t *)&rx_pkts[0]->rearm_data, rearm0); - vst1q_u64((uint64_t *)&rx_pkts[1]->rearm_data, rearm1); - vst1q_u64((uint64_t *)&rx_pkts[2]->rearm_data, rearm2); - vst1q_u64((uint64_t *)&rx_pkts[3]->rearm_data, rearm3); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[0]), rearm0); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[1]), rearm1); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[2]), rearm2); + vst1q_u64(rte_mbuf_rearm_data(rx_pkts[3]), rearm3); } #define PKTLEN_SHIFT 10 @@ -332,13 +332,13 @@ pkt_mb1 = vreinterpretq_u8_u16(tmp); /* D.3 copy final data to rx_pkts */ - vst1q_u8((void *)&rx_pkts[pos + 3]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 3]), pkt_mb4); - vst1q_u8((void *)&rx_pkts[pos + 2]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 2]), pkt_mb3); - vst1q_u8((void *)&rx_pkts[pos + 1]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 1]), pkt_mb2); - vst1q_u8((void *)&rx_pkts[pos]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb1); desc_to_ptype_v(descs, &rx_pkts[pos], ptype_tbl); diff --git a/drivers/net/iavf/iavf_rxtx_vec_sse.c b/drivers/net/iavf/iavf_rxtx_vec_sse.c index 96f187f..634d9f5 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_sse.c +++ b/drivers/net/iavf/iavf_rxtx_vec_sse.c @@ -183,10 +183,10 @@ offsetof(struct rte_mbuf, rearm_data) + 8); RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, rearm_data) != RTE_ALIGN(offsetof(struct rte_mbuf, rearm_data), 16)); - _mm_store_si128((__m128i *)&rx_pkts[0]->rearm_data, rearm0); - _mm_store_si128((__m128i *)&rx_pkts[1]->rearm_data, rearm1); - _mm_store_si128((__m128i *)&rx_pkts[2]->rearm_data, rearm2); - _mm_store_si128((__m128i *)&rx_pkts[3]->rearm_data, rearm3); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[0]), rearm0); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[1]), rearm1); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[2]), rearm2); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[3]), rearm3); } static inline __m128i @@ -416,10 +416,10 @@ offsetof(struct rte_mbuf, rearm_data) + 8); RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, rearm_data) != RTE_ALIGN(offsetof(struct rte_mbuf, rearm_data), 16)); - _mm_store_si128((__m128i *)&rx_pkts[0]->rearm_data, rearm0); - _mm_store_si128((__m128i *)&rx_pkts[1]->rearm_data, rearm1); - _mm_store_si128((__m128i *)&rx_pkts[2]->rearm_data, rearm2); - _mm_store_si128((__m128i *)&rx_pkts[3]->rearm_data, rearm3); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[0]), rearm0); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[1]), rearm1); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[2]), rearm2); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[3]), rearm3); } #define PKTLEN_SHIFT 10 @@ -651,10 +651,10 @@ /* D.3 copy final 3,4 data to rx_pkts */ _mm_storeu_si128( - (void *)&rx_pkts[pos + 3]->rx_descriptor_fields1, + rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 3]), pkt_mb4); _mm_storeu_si128( - (void *)&rx_pkts[pos + 2]->rx_descriptor_fields1, + rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 2]), pkt_mb3); /* D.2 pkt 1,2 remove crc */ @@ -689,9 +689,9 @@ /* D.3 copy final 1,2 data to rx_pkts */ _mm_storeu_si128( - (void *)&rx_pkts[pos + 1]->rx_descriptor_fields1, + rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 1]), pkt_mb2); - _mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb1); desc_to_ptype_v(descs, &rx_pkts[pos], ptype_tbl); /* C.4 calc available number of desc */ @@ -1089,10 +1089,10 @@ /* D.3 copy final 3,4 data to rx_pkts */ _mm_storeu_si128 - ((void *)&rx_pkts[pos + 3]->rx_descriptor_fields1, + (rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 3]), pkt_mb3); _mm_storeu_si128 - ((void *)&rx_pkts[pos + 2]->rx_descriptor_fields1, + (rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 2]), pkt_mb2); /* C* extract and record EOP bit */ @@ -1116,9 +1116,9 @@ /* D.3 copy final 1,2 data to rx_pkts */ _mm_storeu_si128 - ((void *)&rx_pkts[pos + 1]->rx_descriptor_fields1, + (rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 1]), pkt_mb1); - _mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb0); flex_desc_to_ptype_v(descs, &rx_pkts[pos], ptype_tbl); /* C.4 calc available number of desc */ From patchwork Sat Feb 24 08:22:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137161 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C23BC43BBD; Sat, 24 Feb 2024 09:25:13 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3D8A442DD0; Sat, 24 Feb 2024 09:24:07 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 72681402E0 for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 1BBA220B74CF; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1BBA220B74CF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=LdQQ0Hk54WgYjYcqtM3uPWznv7L27/om78zZVElgUxY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WNcrkCfy+qfs9xqwig14lV35Zzs8vpRxsmU3IiH8n6I46CLPLc4TMAmORBWjXNCLh M7M0nzaNqJLmibf0DVS38eYUh/YKsAMw3o0a4YIt7UOLo7xbJYuB6xFCo6T+LcvieC gYxMCJEFj8vMr1QgaNKO7twUB0pYowZwVuApArnI= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 15/22] net/ice: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:00 -0800 Message-Id: <1708762927-14126-16-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/ice/ice_rxtx_vec_avx2.c | 16 ++++++++-------- drivers/net/ice/ice_rxtx_vec_avx512.c | 16 ++++++++-------- drivers/net/ice/ice_rxtx_vec_common.h | 4 +--- drivers/net/ice/ice_rxtx_vec_sse.c | 16 ++++++++-------- 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/drivers/net/ice/ice_rxtx_vec_avx2.c b/drivers/net/ice/ice_rxtx_vec_avx2.c index 6f6d790..fb3811a 100644 --- a/drivers/net/ice/ice_rxtx_vec_avx2.c +++ b/drivers/net/ice/ice_rxtx_vec_avx2.c @@ -596,13 +596,13 @@ rearm2 = _mm256_permute2f128_si256(rearm2, mb2_3, 0x20); rearm0 = _mm256_permute2f128_si256(rearm0, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ @@ -625,13 +625,13 @@ rearm3 = _mm256_blend_epi32(rearm3, mb2_3, 0xF0); rearm1 = _mm256_blend_epi32(rearm1, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ diff --git a/drivers/net/ice/ice_rxtx_vec_avx512.c b/drivers/net/ice/ice_rxtx_vec_avx512.c index 04148e8..46d471f 100644 --- a/drivers/net/ice/ice_rxtx_vec_avx512.c +++ b/drivers/net/ice/ice_rxtx_vec_avx512.c @@ -597,13 +597,13 @@ rearm0 = _mm256_permute2f128_si256(rearm0, mb0_1, 0x20); /* write to mbuf */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 6]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 6]), rearm6); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 4]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 4]), rearm4); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 2]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 2]), rearm2); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 0]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 0]), rearm0); /* repeat for the odd mbufs */ @@ -627,13 +627,13 @@ rearm3 = _mm256_blend_epi32(rearm3, mb2_3, 0xF0); rearm1 = _mm256_blend_epi32(rearm1, mb0_1, 0xF0); /* again write to mbufs */ - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 7]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 7]), rearm7); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 5]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 5]), rearm5); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 3]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 3]), rearm3); - _mm256_storeu_si256((__m256i *)&rx_pkts[i + 1]->rearm_data, + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(rx_pkts[i + 1]), rearm1); /* extract and record EOP bit */ diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h index 4b73465..c284d2d 100644 --- a/drivers/net/ice/ice_rxtx_vec_common.h +++ b/drivers/net/ice/ice_rxtx_vec_common.h @@ -232,7 +232,6 @@ static inline int ice_rxq_vec_setup_default(struct ice_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -242,8 +241,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); return 0; } diff --git a/drivers/net/ice/ice_rxtx_vec_sse.c b/drivers/net/ice/ice_rxtx_vec_sse.c index 9a1b7e3..4a051b7 100644 --- a/drivers/net/ice/ice_rxtx_vec_sse.c +++ b/drivers/net/ice/ice_rxtx_vec_sse.c @@ -271,10 +271,10 @@ offsetof(struct rte_mbuf, rearm_data) + 8); RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, rearm_data) != RTE_ALIGN(offsetof(struct rte_mbuf, rearm_data), 16)); - _mm_store_si128((__m128i *)&rx_pkts[0]->rearm_data, rearm0); - _mm_store_si128((__m128i *)&rx_pkts[1]->rearm_data, rearm1); - _mm_store_si128((__m128i *)&rx_pkts[2]->rearm_data, rearm2); - _mm_store_si128((__m128i *)&rx_pkts[3]->rearm_data, rearm3); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[0]), rearm0); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[1]), rearm1); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[2]), rearm2); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[3]), rearm3); } static inline void @@ -542,10 +542,10 @@ /* D.3 copy final 3,4 data to rx_pkts */ _mm_storeu_si128 - ((void *)&rx_pkts[pos + 3]->rx_descriptor_fields1, + (rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 3]), pkt_mb3); _mm_storeu_si128 - ((void *)&rx_pkts[pos + 2]->rx_descriptor_fields1, + (rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 2]), pkt_mb2); /* C* extract and record EOP bit */ @@ -569,9 +569,9 @@ /* D.3 copy final 1,2 data to rx_pkts */ _mm_storeu_si128 - ((void *)&rx_pkts[pos + 1]->rx_descriptor_fields1, + (rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 1]), pkt_mb1); - _mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb0); ice_rx_desc_to_ptype_v(descs, &rx_pkts[pos], ptype_tbl); /* C.4 calc available number of desc */ From patchwork Sat Feb 24 08:22:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137162 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1670343BBD; Sat, 24 Feb 2024 09:25:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8614A42DD2; Sat, 24 Feb 2024 09:24:08 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 7CBBE402BB for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 2B44220B74D0; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 2B44220B74D0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=1r0Fmq6FkaU0G+w7D1OdIxWRor3/wbc04NMTRQorEwg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=COKMEnDVLQGAAtrH8KczynHRd7x9jrONrhk22f/uz1QDmtF6qElqURUai9g7B1cCt EtuJBhRH0k5AgTshOqjuRP1kH7KQGEF3+I7qOzoCpt/guYq7Drh6nvwyV2jSxglrhJ AUc5FjG04wgnS+oFJQ9btmaVGjas6AOyOpScK5OA= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 16/22] net/ionic: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:01 -0800 Message-Id: <1708762927-14126-17-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/ionic/ionic_lif.c | 4 ++-- drivers/net/ionic/ionic_rxtx_sg.c | 4 ++-- drivers/net/ionic/ionic_rxtx_simple.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index 93a1011..cec9a38 100644 --- a/drivers/net/ionic/ionic_lif.c +++ b/drivers/net/ionic/ionic_lif.c @@ -745,7 +745,7 @@ rte_compiler_barrier(); RTE_BUILD_BUG_ON(sizeof(rxm.rearm_data[0]) != sizeof(uint64_t)); - return rxm.rearm_data[0]; + return *rte_mbuf_rearm_data(&rxm); } static uint64_t @@ -763,7 +763,7 @@ rte_compiler_barrier(); RTE_BUILD_BUG_ON(sizeof(rxm.rearm_data[0]) != sizeof(uint64_t)); - return rxm.rearm_data[0]; + return *rte_mbuf_rearm_data(&rxm); } int diff --git a/drivers/net/ionic/ionic_rxtx_sg.c b/drivers/net/ionic/ionic_rxtx_sg.c index 92e1d6e..4a6f3c2 100644 --- a/drivers/net/ionic/ionic_rxtx_sg.c +++ b/drivers/net/ionic/ionic_rxtx_sg.c @@ -286,7 +286,7 @@ info[0] = NULL; /* Set the mbuf metadata based on the cq entry */ - rxm->rearm_data[0] = rxq->rearm_data; + *rte_mbuf_rearm_data(rxm) = rxq->rearm_data; rxm->pkt_len = cq_desc_len; rxm->data_len = RTE_MIN(rxq->hdr_seg_size, cq_desc_len); left = cq_desc_len - rxm->data_len; @@ -299,7 +299,7 @@ info[i] = NULL; /* Set the chained mbuf metadata */ - rxm_seg->rearm_data[0] = rxq->rearm_seg_data; + *rte_mbuf_rearm_data(rxm_seg) = rxq->rearm_seg_data; rxm_seg->data_len = RTE_MIN(rxq->seg_size, left); left -= rxm_seg->data_len; diff --git a/drivers/net/ionic/ionic_rxtx_simple.c b/drivers/net/ionic/ionic_rxtx_simple.c index f12f66f..02528e8 100644 --- a/drivers/net/ionic/ionic_rxtx_simple.c +++ b/drivers/net/ionic/ionic_rxtx_simple.c @@ -257,7 +257,7 @@ info[0] = NULL; /* Set the mbuf metadata based on the cq entry */ - rxm->rearm_data[0] = rxq->rearm_data; + *rte_mbuf_rearm_data(rxm) = rxq->rearm_data; rxm->pkt_len = cq_desc_len; rxm->data_len = cq_desc_len; From patchwork Sat Feb 24 08:22:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137167 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9E20A43BBD; Sat, 24 Feb 2024 09:25:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1BFC442DED; Sat, 24 Feb 2024 09:24:16 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id D645A402D5 for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 3A8CE20B74D1; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3A8CE20B74D1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=ZwZf0cCYowzRfuT42MXK78UTZOxeI7ofOpGOCjeG/4s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XHGUzT84fU6MdFAO003/fS+I7L2xE85tvEAeFpB3TcbSLJD1FjEYloaqUYYvj8nVr I6GdtzoUxuDPakx2YwznmKDG3GpJbAa/6qjLS37/dG7Nccoj0AnOIKx9Ad7t4fXRFX TgUgg52vgED3nyvyOXm5edBFatYOYiT8jyfiEip0= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 17/22] net/ixgbe: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:02 -0800 Message-Id: <1708762927-14126-18-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/ixgbe/ixgbe_rxtx_vec_common.h | 4 +--- drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 12 ++++++------ drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c | 24 ++++++++++++------------ 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h b/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h index a4d9ec9..78ab168 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h @@ -244,7 +244,6 @@ static inline int ixgbe_rxq_vec_setup_default(struct ixgbe_rx_queue *rxq) { - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -254,8 +253,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); return 0; } diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c index 952b032..2e1d903 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c @@ -56,13 +56,13 @@ * Flush mbuf with pkt template. * Data to be rearmed is 6 bytes long. */ - vst1_u8((uint8_t *)&mb0->rearm_data, p); + vst1_u8((uint8_t *)rte_mbuf_rearm_data(mb0), p); paddr = mb0->buf_iova + RTE_PKTMBUF_HEADROOM; dma_addr0 = vsetq_lane_u64(paddr, zero, 0); /* flush desc with pa dma_addr */ vst1q_u64((uint64_t *)&rxdp++->read, dma_addr0); - vst1_u8((uint8_t *)&mb1->rearm_data, p); + vst1_u8((uint8_t *)rte_mbuf_rearm_data(mb1), p); paddr = mb1->buf_iova + RTE_PKTMBUF_HEADROOM; dma_addr1 = vsetq_lane_u64(paddr, zero, 0); vst1q_u64((uint64_t *)&rxdp++->read, dma_addr1); @@ -411,9 +411,9 @@ pkt_mb3 = vreinterpretq_u8_u16(tmp); /* D.3 copy final 3,4 data to rx_pkts */ - vst1q_u8((void *)&rx_pkts[pos + 3]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 3]), pkt_mb4); - vst1q_u8((void *)&rx_pkts[pos + 2]->rx_descriptor_fields1, + vst1q_u8(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 2]), pkt_mb3); /* D.2 pkt 1,2 set in_port/nb_seg and remove crc */ @@ -441,9 +441,9 @@ rte_prefetch_non_temporal(rxdp + RTE_IXGBE_DESCS_PER_LOOP); /* D.3 copy final 1,2 data to rx_pkts */ - vst1q_u8((uint8_t *)&rx_pkts[pos + 1]->rx_descriptor_fields1, + vst1q_u8((uint8_t *)rte_mbuf_rx_descriptor_fields1(rx_pkts[pos + 1]), pkt_mb2); - vst1q_u8((uint8_t *)&rx_pkts[pos]->rx_descriptor_fields1, + vst1q_u8((uint8_t *)rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb1); desc_to_ptype_v(descs, rxq->pkt_type_mask, &rx_pkts[pos]); diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c index f60808d..d8de64c 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c @@ -98,10 +98,10 @@ desc_to_olflags_v_ipsec(__m128i descs[4], struct rte_mbuf **rx_pkts) { __m128i sterr, rearm, tmp_e, tmp_p; - uint32_t *rearm0 = (uint32_t *)rx_pkts[0]->rearm_data + 2; - uint32_t *rearm1 = (uint32_t *)rx_pkts[1]->rearm_data + 2; - uint32_t *rearm2 = (uint32_t *)rx_pkts[2]->rearm_data + 2; - uint32_t *rearm3 = (uint32_t *)rx_pkts[3]->rearm_data + 2; + uint32_t *rearm0 = (uint32_t *)rte_mbuf_rearm_data(rx_pkts[0]) + 2; + uint32_t *rearm1 = (uint32_t *)rte_mbuf_rearm_data(rx_pkts[1]) + 2; + uint32_t *rearm2 = (uint32_t *)rte_mbuf_rearm_data(rx_pkts[2]) + 2; + uint32_t *rearm3 = (uint32_t *)rte_mbuf_rearm_data(rx_pkts[3]) + 2; const __m128i ipsec_sterr_msk = _mm_set1_epi32(IXGBE_RXDADV_IPSEC_STATUS_SECP | IXGBE_RXDADV_IPSEC_ERROR_AUTH_FAILED); @@ -255,10 +255,10 @@ offsetof(struct rte_mbuf, rearm_data) + 8); RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, rearm_data) != RTE_ALIGN(offsetof(struct rte_mbuf, rearm_data), 16)); - _mm_store_si128((__m128i *)&rx_pkts[0]->rearm_data, rearm0); - _mm_store_si128((__m128i *)&rx_pkts[1]->rearm_data, rearm1); - _mm_store_si128((__m128i *)&rx_pkts[2]->rearm_data, rearm2); - _mm_store_si128((__m128i *)&rx_pkts[3]->rearm_data, rearm3); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[0]), rearm0); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[1]), rearm1); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[2]), rearm2); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(rx_pkts[3]), rearm3); } static inline uint32_t get_packet_type(int index, @@ -530,9 +530,9 @@ static inline uint32_t get_packet_type(int index, staterr = _mm_unpacklo_epi32(sterr_tmp1, sterr_tmp2); /* D.3 copy final 3,4 data to rx_pkts */ - _mm_storeu_si128((void *)&rx_pkts[pos+3]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+3]), pkt_mb4); - _mm_storeu_si128((void *)&rx_pkts[pos+2]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+2]), pkt_mb3); /* D.2 pkt 1,2 set in_port/nb_seg and remove crc */ @@ -566,9 +566,9 @@ static inline uint32_t get_packet_type(int index, staterr = _mm_packs_epi32(staterr, zero); /* D.3 copy final 1,2 data to rx_pkts */ - _mm_storeu_si128((void *)&rx_pkts[pos+1]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos+1]), pkt_mb2); - _mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[pos]), pkt_mb1); desc_to_ptype_v(descs, rxq->pkt_type_mask, &rx_pkts[pos]); From patchwork Sat Feb 24 08:22:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137165 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6F13043BBD; Sat, 24 Feb 2024 09:25:36 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1AEFA42DE6; Sat, 24 Feb 2024 09:24:12 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 92739402E7 for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 49E6D20B74D2; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 49E6D20B74D2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=+rUj1bkRnFMiyvfyg8aAKrMxMOXM07Dp0u+ywDYKi9E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OCRFqQVmnT65F12eNdkdek8pJR+LhVu1z3+t5drXqTT+1bLMF47kAQG5UXI1hlO3/ w25SWtissQarM+74iM+KB+1ogq4pKneW8P1pPH0lMMv6K1OrT6y/qpP1bT4sw4XVXN Ark5AbNnTImR9STsVlZJ1VbOe07t8IbZ24xn0mnU= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 18/22] net/mlx5: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:03 -0800 Message-Id: <1708762927-14126-19-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/mlx5/mlx5_rxq.c | 2 +- drivers/net/mlx5/mlx5_rxtx_vec_altivec.h | 28 ++++++++++++++-------------- drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 20 ++++++++++---------- drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 28 ++++++++++++++-------------- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index ca2eeed..b854418 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -200,7 +200,7 @@ */ rte_compiler_barrier(); rxq->mbuf_initializer = - *(rte_xmm_t *)&mbuf_init->rearm_data; + *(rte_xmm_t *)rte_mbuf_rearm_data(mbuf_init); /* Padding with a fake mbuf for vectorized Rx. */ for (j = 0; j < MLX5_VPMD_DESCS_PER_LOOP; ++j) (*rxq->elts)[elts_n + j] = &rxq->fake_mbuf; diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h index cccfa7f..9349c21 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h +++ b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h @@ -101,10 +101,10 @@ uint16_t pkts_n = mcqe_n; const __vector unsigned char rearm = (__vector unsigned char)vec_vsx_ld(0, - (signed int const *)&t_pkt->rearm_data); + (signed int const *)rte_mbuf_rearm_data(t_pkt)); const __vector unsigned char rxdf = (__vector unsigned char)vec_vsx_ld(0, - (signed int const *)&t_pkt->rx_descriptor_fields1); + (signed int const *)rte_mbuf_rx_descriptor_fields1(t_pkt)); const __vector unsigned char crc_adj = (__vector unsigned char)(__vector unsigned short){ 0, 0, rxq->crc_present * RTE_ETHER_CRC_LEN, 0, @@ -173,9 +173,9 @@ /* B.1 store rearm data to mbuf. */ *(__vector unsigned char *) - &elts[pos]->rearm_data = rearm; + rte_mbuf_rearm_data(elts[pos]) = rearm; *(__vector unsigned char *) - &elts[pos + 1]->rearm_data = rearm; + rte_mbuf_rearm_data(elts[pos + 1]) = rearm; /* C.1 combine data from mCQEs with rx_descriptor_fields1. */ rxdf1 = vec_perm(mcqe1, zero, shuf_mask1); @@ -195,15 +195,15 @@ /* D.1 store rx_descriptor_fields1. */ *(__vector unsigned char *) - &elts[pos]->rx_descriptor_fields1 = rxdf1; + rte_mbuf_rx_descriptor_fields1(elts[pos]) = rxdf1; *(__vector unsigned char *) - &elts[pos + 1]->rx_descriptor_fields1 = rxdf2; + rte_mbuf_rx_descriptor_fields1(elts[pos + 1]) = rxdf2; /* B.1 store rearm data to mbuf. */ *(__vector unsigned char *) - &elts[pos + 2]->rearm_data = rearm; + rte_mbuf_rearm_data(elts[pos + 2]) = rearm; *(__vector unsigned char *) - &elts[pos + 3]->rearm_data = rearm; + rte_mbuf_rearm_data(elts[pos + 3]) = rearm; /* C.1 combine data from mCQEs with rx_descriptor_fields1. */ rxdf1 = vec_perm(mcqe2, zero, shuf_mask1); @@ -223,9 +223,9 @@ /* D.1 store rx_descriptor_fields1. */ *(__vector unsigned char *) - &elts[pos + 2]->rx_descriptor_fields1 = rxdf1; + rte_mbuf_rx_descriptor_fields1(elts[pos + 2]) = rxdf1; *(__vector unsigned char *) - &elts[pos + 3]->rx_descriptor_fields1 = rxdf2; + rte_mbuf_rx_descriptor_fields1(elts[pos + 3]) = rxdf2; #ifdef MLX5_PMD_SOFT_COUNTERS invalid_mask = (__vector unsigned char)(__vector unsigned long){ @@ -769,13 +769,13 @@ /* Write 8B rearm_data and 8B ol_flags. */ vec_vsx_st(rearm0, 0, - (__vector unsigned char *)&pkts[0]->rearm_data); + (__vector unsigned char *)rte_mbuf_rearm_data(pkts[0])); vec_vsx_st(rearm1, 0, - (__vector unsigned char *)&pkts[1]->rearm_data); + (__vector unsigned char *)rte_mbuf_rearm_data(pkts[1])); vec_vsx_st(rearm2, 0, - (__vector unsigned char *)&pkts[2]->rearm_data); + (__vector unsigned char *)rte_mbuf_rearm_data(pkts[2])); vec_vsx_st(rearm3, 0, - (__vector unsigned char *)&pkts[3]->rearm_data); + (__vector unsigned char *)rte_mbuf_rearm_data(pkts[3])); } /** diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h index 3ed6881..97ea620 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h +++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h @@ -99,7 +99,7 @@ t_pkt->data_len + (rxq->crc_present * RTE_ETHER_CRC_LEN); uint16_t pkts_n = mcqe_n; const uint64x2_t rearm = - vld1q_u64((void *)&t_pkt->rearm_data); + vld1q_u64((void *)rte_mbuf_rearm_data(t_pkt)); const uint32x4_t rxdf_mask = { 0xffffffff, /* packet_type */ 0, /* skip pkt_len */ @@ -107,7 +107,7 @@ 0, /* skip hash.rss */ }; const uint8x16_t rxdf = - vandq_u8(vld1q_u8((void *)&t_pkt->rx_descriptor_fields1), + vandq_u8(vld1q_u8(rte_mbuf_rx_descriptor_fields1(t_pkt)), vreinterpretq_u8_u32(rxdf_mask)); const uint16x8_t crc_adj = { 0, 0, @@ -140,10 +140,10 @@ rte_prefetch0((void *)(cq + mcqe_n)); for (pos = 0; pos < mcqe_n; ) { uint8_t *p = (void *)&mcq[pos % 8]; - uint8_t *e0 = (void *)&elts[pos]->rearm_data; - uint8_t *e1 = (void *)&elts[pos + 1]->rearm_data; - uint8_t *e2 = (void *)&elts[pos + 2]->rearm_data; - uint8_t *e3 = (void *)&elts[pos + 3]->rearm_data; + uint8_t *e0 = (void *)rte_mbuf_rearm_data(elts[pos]); + uint8_t *e1 = (void *)rte_mbuf_rearm_data(elts[pos + 1]); + uint8_t *e2 = (void *)rte_mbuf_rearm_data(elts[pos + 2]); + uint8_t *e3 = (void *)rte_mbuf_rearm_data(elts[pos + 3]); uint16x4_t byte_cnt; #ifdef MLX5_PMD_SOFT_COUNTERS uint16x4_t invalid_mask = @@ -513,10 +513,10 @@ (vgetq_lane_u32(ol_flags, 0), vreinterpretq_u32_u64(mbuf_init), 2)); - vst1q_u64((void *)&pkts[0]->rearm_data, rearm0); - vst1q_u64((void *)&pkts[1]->rearm_data, rearm1); - vst1q_u64((void *)&pkts[2]->rearm_data, rearm2); - vst1q_u64((void *)&pkts[3]->rearm_data, rearm3); + vst1q_u64((void *)rte_mbuf_rearm_data(pkts[0]), rearm0); + vst1q_u64((void *)rte_mbuf_rearm_data(pkts[1]), rearm1); + vst1q_u64((void *)rte_mbuf_rearm_data(pkts[2]), rearm2); + vst1q_u64((void *)rte_mbuf_rearm_data(pkts[3]), rearm3); } /** diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h index 2bdd1f6..088ce37 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h +++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h @@ -98,9 +98,9 @@ t_pkt->data_len + (rxq->crc_present * RTE_ETHER_CRC_LEN); uint16_t pkts_n = mcqe_n; const __m128i rearm = - _mm_loadu_si128((__m128i *)&t_pkt->rearm_data); + _mm_loadu_si128((__m128i *)rte_mbuf_rearm_data(t_pkt)); const __m128i rxdf = - _mm_loadu_si128((__m128i *)&t_pkt->rx_descriptor_fields1); + _mm_loadu_si128((__m128i *)rte_mbuf_rx_descriptor_fields1(t_pkt)); const __m128i crc_adj = _mm_set_epi16(0, 0, 0, rxq->crc_present * RTE_ETHER_CRC_LEN, @@ -145,8 +145,8 @@ mcqe1 = _mm_loadu_si128((__m128i *)&mcq[pos % 8]); mcqe2 = _mm_loadu_si128((__m128i *)&mcq[pos % 8 + 2]); /* B.1 store rearm data to mbuf. */ - _mm_storeu_si128((__m128i *)&elts[pos]->rearm_data, rearm); - _mm_storeu_si128((__m128i *)&elts[pos + 1]->rearm_data, rearm); + _mm_storeu_si128((__m128i *)rte_mbuf_rearm_data(elts[pos]), rearm); + _mm_storeu_si128((__m128i *)rte_mbuf_rearm_data(elts[pos + 1]), rearm); /* C.1 combine data from mCQEs with rx_descriptor_fields1. */ rxdf1 = _mm_shuffle_epi8(mcqe1, shuf_mask1); rxdf2 = _mm_shuffle_epi8(mcqe1, shuf_mask2); @@ -156,14 +156,14 @@ rxdf2 = _mm_blend_epi16(rxdf2, rxdf, 0x23); /* D.1 store rx_descriptor_fields1. */ _mm_storeu_si128((__m128i *) - &elts[pos]->rx_descriptor_fields1, + rte_mbuf_rx_descriptor_fields1(elts[pos]), rxdf1); _mm_storeu_si128((__m128i *) - &elts[pos + 1]->rx_descriptor_fields1, + rte_mbuf_rx_descriptor_fields1(elts[pos + 1]), rxdf2); /* B.1 store rearm data to mbuf. */ - _mm_storeu_si128((__m128i *)&elts[pos + 2]->rearm_data, rearm); - _mm_storeu_si128((__m128i *)&elts[pos + 3]->rearm_data, rearm); + _mm_storeu_si128((__m128i *)rte_mbuf_rearm_data(elts[pos + 2]), rearm); + _mm_storeu_si128((__m128i *)rte_mbuf_rearm_data(elts[pos + 3]), rearm); /* C.1 combine data from mCQEs with rx_descriptor_fields1. */ rxdf1 = _mm_shuffle_epi8(mcqe2, shuf_mask1); rxdf2 = _mm_shuffle_epi8(mcqe2, shuf_mask2); @@ -173,10 +173,10 @@ rxdf2 = _mm_blend_epi16(rxdf2, rxdf, 0x23); /* D.1 store rx_descriptor_fields1. */ _mm_storeu_si128((__m128i *) - &elts[pos + 2]->rx_descriptor_fields1, + rte_mbuf_rx_descriptor_fields1(elts[pos + 2]), rxdf1); _mm_storeu_si128((__m128i *) - &elts[pos + 3]->rx_descriptor_fields1, + rte_mbuf_rx_descriptor_fields1(elts[pos + 3]), rxdf2); #ifdef MLX5_PMD_SOFT_COUNTERS invalid_mask = _mm_set_epi64x(0, @@ -511,10 +511,10 @@ rearm2 = _mm_blend_epi16(mbuf_init, ol_flags, 0x30); rearm3 = _mm_blend_epi16(mbuf_init, _mm_srli_si128(ol_flags, 4), 0x30); /* Write 8B rearm_data and 8B ol_flags. */ - _mm_store_si128((__m128i *)&pkts[0]->rearm_data, rearm0); - _mm_store_si128((__m128i *)&pkts[1]->rearm_data, rearm1); - _mm_store_si128((__m128i *)&pkts[2]->rearm_data, rearm2); - _mm_store_si128((__m128i *)&pkts[3]->rearm_data, rearm3); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(pkts[0]), rearm0); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(pkts[1]), rearm1); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(pkts[2]), rearm2); + _mm_store_si128((__m128i *)rte_mbuf_rearm_data(pkts[3]), rearm3); } /** From patchwork Sat Feb 24 08:22:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137170 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 36DA643BA3; Sat, 24 Feb 2024 09:26:13 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0F27F42E1C; Sat, 24 Feb 2024 09:24:20 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 02504402ED for ; Sat, 24 Feb 2024 09:22:14 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 5962620B74D3; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5962620B74D3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=zNWJvX6I4yGoJDSJ1k+o8LChAhF9YjRc60nIkCTrlqc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jVTgLvydlHJTLgppUYkCA5VNhMQeT9rP+SkOfzl82N/Kqx8pK4q+lfbq/gOfLs6x4 h7zQJVY7AZ86Lx4GbZVvDvr3j5VZsnsVRwSQ3CRv7HC2O+QQyygO/w+qQCAxJ36k0l 57OwmXekB9a/9XNTMhoS6gaXtLT4TTW9ZCd1MHnk= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 19/22] net/octeon_ep: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:04 -0800 Message-Id: <1708762927-14126-20-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/octeon_ep/cnxk_ep_rx.h | 2 +- drivers/net/octeon_ep/cnxk_ep_rx_avx.c | 2 +- drivers/net/octeon_ep/cnxk_ep_rx_neon.c | 8 ++++---- drivers/net/octeon_ep/cnxk_ep_rx_sse.c | 8 ++++---- drivers/net/octeon_ep/otx_ep_rxtx.c | 5 +---- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/net/octeon_ep/cnxk_ep_rx.h b/drivers/net/octeon_ep/cnxk_ep_rx.h index 61263e6..1d706e2 100644 --- a/drivers/net/octeon_ep/cnxk_ep_rx.h +++ b/drivers/net/octeon_ep/cnxk_ep_rx.h @@ -158,7 +158,7 @@ mbuf->pkt_len = pkt_len; mbuf->data_len = pkt_len; - *(uint64_t *)&mbuf->rearm_data = droq->rearm_data; + *rte_mbuf_rearm_data(mbuf) = droq->rearm_data; rx_pkts[pkts] = mbuf; bytes_rsvd += pkt_len; } diff --git a/drivers/net/octeon_ep/cnxk_ep_rx_avx.c b/drivers/net/octeon_ep/cnxk_ep_rx_avx.c index 47eb1d2..3b8241c 100644 --- a/drivers/net/octeon_ep/cnxk_ep_rx_avx.c +++ b/drivers/net/octeon_ep/cnxk_ep_rx_avx.c @@ -60,7 +60,7 @@ /* Store the 256bit data to the mbuf. */ for (i = 0; i < CNXK_EP_OQ_DESC_PER_LOOP_AVX; i++) - _mm256_storeu_si256((__m256i *)&m[i]->rearm_data, data[i]); + _mm256_storeu_si256((__m256i *)rte_mbuf_rearm_data(m[i]), data[i]); for (i = 0; i < CNXK_EP_OQ_DESC_PER_LOOP_AVX; i++) rx_pkts[pkts++] = m[i]; diff --git a/drivers/net/octeon_ep/cnxk_ep_rx_neon.c b/drivers/net/octeon_ep/cnxk_ep_rx_neon.c index 4c46a7e..8797252 100644 --- a/drivers/net/octeon_ep/cnxk_ep_rx_neon.c +++ b/drivers/net/octeon_ep/cnxk_ep_rx_neon.c @@ -72,10 +72,10 @@ *(uint64_t *)&m3->pkt_len = vgetq_lane_u64(s23, 1); /* Reset rearm data. */ - *(uint64_t *)&m0->rearm_data = droq->rearm_data; - *(uint64_t *)&m1->rearm_data = droq->rearm_data; - *(uint64_t *)&m2->rearm_data = droq->rearm_data; - *(uint64_t *)&m3->rearm_data = droq->rearm_data; + *rte_mbuf_rearm_data(m0) = droq->rearm_data; + *rte_mbuf_rearm_data(m1) = droq->rearm_data; + *rte_mbuf_rearm_data(m2) = droq->rearm_data; + *rte_mbuf_rearm_data(m3) = droq->rearm_data; rx_pkts[pkts++] = m0; rx_pkts[pkts++] = m1; diff --git a/drivers/net/octeon_ep/cnxk_ep_rx_sse.c b/drivers/net/octeon_ep/cnxk_ep_rx_sse.c index 308c8b2..1466217 100644 --- a/drivers/net/octeon_ep/cnxk_ep_rx_sse.c +++ b/drivers/net/octeon_ep/cnxk_ep_rx_sse.c @@ -64,10 +64,10 @@ *(uint64_t *)&m3->pkt_len = ((rte_xmm_t)s23).u64[1]; /* Reset rearm data. */ - *(uint64_t *)&m0->rearm_data = droq->rearm_data; - *(uint64_t *)&m1->rearm_data = droq->rearm_data; - *(uint64_t *)&m2->rearm_data = droq->rearm_data; - *(uint64_t *)&m3->rearm_data = droq->rearm_data; + *rte_mbuf_rearm_data(m0) = droq->rearm_data; + *rte_mbuf_rearm_data(m1) = droq->rearm_data; + *rte_mbuf_rearm_data(m2) = droq->rearm_data; + *rte_mbuf_rearm_data(m3) = droq->rearm_data; rx_pkts[pkts++] = m0; rx_pkts[pkts++] = m1; diff --git a/drivers/net/octeon_ep/otx_ep_rxtx.c b/drivers/net/octeon_ep/otx_ep_rxtx.c index aea148e..4470599 100644 --- a/drivers/net/octeon_ep/otx_ep_rxtx.c +++ b/drivers/net/octeon_ep/otx_ep_rxtx.c @@ -289,7 +289,6 @@ { uint16_t port_id = otx_ep->port_id; struct rte_mbuf mb_def; - uint64_t *tmp; RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, data_off) % 8 != 0); RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, refcnt) - offsetof(struct rte_mbuf, data_off) != @@ -305,9 +304,7 @@ /* Prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - tmp = (uint64_t *)&mb_def.rearm_data; - - return *tmp; + return *rte_mbuf_rearm_data(&mb_def); } /* OQ initialization */ From patchwork Sat Feb 24 08:22:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137166 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0A10E43BBD; Sat, 24 Feb 2024 09:25:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BFD9542D2B; Sat, 24 Feb 2024 09:24:14 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id C8C49402CC for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 67EAC20B74D4; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 67EAC20B74D4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=RDKLmXgmlATZzSqhzwDMBQJjzHrKoFLuEUI9LAsTLCk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SKYC+LAoyqFeFitHqR8Fxe4RWjW/5VUiPTbKG7Ixiu+871NUgvTjKpy8fCR6R0g5U yL8iv4XlAmDQ+lkgLk4GcWEAAfTEpqfvbtfhL16iTN6/Q1bWmzlgVd/bE0cdm1NjbQ UP76yHEv9zYSpsQtXNvQstXvnSW/hM9TU48GLeYg= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 20/22] net/sfc: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:05 -0800 Message-Id: <1708762927-14126-21-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/sfc/sfc_ef100_rx.c | 4 ++-- drivers/net/sfc/sfc_ef10_rx.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/sfc/sfc_ef100_rx.c b/drivers/net/sfc/sfc_ef100_rx.c index e283879..3d93a7c 100644 --- a/drivers/net/sfc/sfc_ef100_rx.c +++ b/drivers/net/sfc/sfc_ef100_rx.c @@ -555,7 +555,7 @@ struct sfc_ef100_rxq { RTE_BUILD_BUG_ON(sizeof(pkt->rearm_data[0]) != sizeof(rxq->rearm_data)); - pkt->rearm_data[0] = rxq->rearm_data; + *rte_mbuf_rearm_data(pkt) = rxq->rearm_data; /* data_off already moved past Rx prefix */ rx_prefix = (const efx_xword_t *)sfc_ef100_rx_pkt_prefix(pkt); @@ -761,7 +761,7 @@ struct sfc_ef100_rxq { /* rearm_data covers structure members filled in above */ rte_compiler_barrier(); RTE_BUILD_BUG_ON(sizeof(m.rearm_data[0]) != sizeof(uint64_t)); - return m.rearm_data[0]; + return *rte_mbuf_rearm_data(&m); } static sfc_dp_rx_qcreate_t sfc_ef100_rx_qcreate; diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c index 6044293..9c993a3 100644 --- a/drivers/net/sfc/sfc_ef10_rx.c +++ b/drivers/net/sfc/sfc_ef10_rx.c @@ -323,7 +323,7 @@ struct sfc_ef10_rxq { m = rxd->mbuf; RTE_BUILD_BUG_ON(sizeof(m->rearm_data[0]) != sizeof(rxq->rearm_data)); - m->rearm_data[0] = rxq->rearm_data; + *rte_mbuf_rearm_data(m) = rxq->rearm_data; /* Classify packet based on Rx event */ /* Mask RSS hash offload flag if RSS is not enabled */ @@ -379,7 +379,7 @@ struct sfc_ef10_rxq { RTE_BUILD_BUG_ON(sizeof(m->rearm_data[0]) != sizeof(rxq->rearm_data)); - m->rearm_data[0] = rxq->rearm_data; + *rte_mbuf_rearm_data(m) = rxq->rearm_data; /* Event-dependent information is the same */ m->ol_flags = m0->ol_flags; @@ -634,7 +634,7 @@ struct sfc_ef10_rxq { /* rearm_data covers structure members filled in above */ rte_compiler_barrier(); RTE_BUILD_BUG_ON(sizeof(m.rearm_data[0]) != sizeof(uint64_t)); - return m.rearm_data[0]; + return *rte_mbuf_rearm_data(&m); } static sfc_dp_rx_qcreate_t sfc_ef10_rx_qcreate; From patchwork Sat Feb 24 08:22:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137168 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5276E43BA3; Sat, 24 Feb 2024 09:26:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5A1EA42E16; Sat, 24 Feb 2024 09:24:17 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id E6D7B402EB for ; Sat, 24 Feb 2024 09:22:13 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 764AE20B74D5; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 764AE20B74D5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=43J41FUN8U97ef9HAWZHV2AQLsuA5wCPXesxdNMpgMw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AH/NSVLtJl7D6wOb+T7m14AEbpYsce0d575SgwiT0ePY9VUzFEZiz3YGZQ6npDUZa 8JcjVF6kz5R1c2YJxGn4bCgr4kuA3GyEaYDELex18N2OptJAyR+PLs26oGQVjh+ENK tLiGQ7dz9HUwKXS578UzQj+MCJQ/jP2jtEd8LNNE= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 21/22] net/thunderx: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:06 -0800 Message-Id: <1708762927-14126-22-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/thunderx/nicvf_ethdev.c | 4 +--- drivers/net/thunderx/nicvf_rxtx.h | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index 609d95d..722751c 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -1306,7 +1306,6 @@ enum nicvf_link_speed { static inline void nicvf_rxq_mbuf_setup(struct nicvf_rxq *rxq) { - uintptr_t p; struct rte_mbuf mb_def; struct nicvf *nic = rxq->nic; @@ -1328,8 +1327,7 @@ enum nicvf_link_speed { /* Prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer.value = *(uint64_t *)p; + rxq->mbuf_initializer.value = *rte_mbuf_rearm_data(&mb_def); } static int diff --git a/drivers/net/thunderx/nicvf_rxtx.h b/drivers/net/thunderx/nicvf_rxtx.h index 4b83e33..7c07cde 100644 --- a/drivers/net/thunderx/nicvf_rxtx.h +++ b/drivers/net/thunderx/nicvf_rxtx.h @@ -66,7 +66,7 @@ static inline uint16_t __attribute__((const)) #else init.value += apad; #endif - *(uint64_t *)(&pkt->rearm_data) = init.value; + *rte_mbuf_rearm_data(pkt) = init.value; } static inline void @@ -80,7 +80,7 @@ static inline uint16_t __attribute__((const)) init.value += apad; #endif init.fields.nb_segs = nb_segs; - *(uint64_t *)(&pkt->rearm_data) = init.value; + *rte_mbuf_rearm_data(pkt) = init.value; } uint32_t nicvf_dev_rx_queue_count(void *rx_queue); From patchwork Sat Feb 24 08:22:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 137169 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9B53643BA3; Sat, 24 Feb 2024 09:26:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C8BAA42E08; Sat, 24 Feb 2024 09:24:18 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 10476402EE for ; Sat, 24 Feb 2024 09:22:14 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 8622D20B74D6; Sat, 24 Feb 2024 00:22:11 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 8622D20B74D6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708762932; bh=8UAyMbOC9Pd8kmhtXG3H6yoxCug74JxUkoSJbDxye4g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o/bfnRyzzrefYS6X7P6j1qj3hVPLDg2x9jEc3pA6O9qCvbAsF03w8UiddzBf8s1H1 SavVeLVnpkln7MvTn8QFXq/3jhwXHshe1g339s9+X1qfPb80mp8GyK/c0I1m0fAkMj gzcCyGUoi4GhqIXRawqiyiBuL/SU2LxzbtQ6cpPY= From: Tyler Retzlaff To: dev@dpdk.org Cc: Ajit Khaparde , Andrew Boyer , Andrew Rybchenko , Bruce Richardson , Chenbo Xia , Chengwen Feng , Dariusz Sosnowski , David Christensen , Hyong Youb Kim , Jerin Jacob , Jie Hai , Jingjing Wu , John Daley , Kevin Laatz , Kiran Kumar K , Konstantin Ananyev , Maciej Czekaj , Matan Azrad , Maxime Coquelin , Nithin Dabilpuram , Ori Kam , Ruifeng Wang , Satha Rao , Somnath Kotur , Suanming Mou , Sunil Kumar Kori , Viacheslav Ovsiienko , Yisen Zhuang , Yuying Zhang , mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v5 22/22] net/virtio: use mbuf descriptor accessors Date: Sat, 24 Feb 2024 00:22:07 -0800 Message-Id: <1708762927-14126-23-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1708762927-14126-1-git-send-email-roretzla@linux.microsoft.com> 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 RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Use new rte_mbuf_rearm_data and rte_mbuf_rx_descriptor_fields1 accessors that provide a compatible type pointer without using the marker fields. Signed-off-by: Tyler Retzlaff --- drivers/net/virtio/virtio_rxtx_packed_avx.h | 10 +++++----- drivers/net/virtio/virtio_rxtx_packed_neon.h | 16 ++++++++-------- drivers/net/virtio/virtio_rxtx_simple.c | 4 +--- drivers/net/virtio/virtio_rxtx_simple.h | 5 +---- drivers/net/virtio/virtio_rxtx_simple_altivec.c | 16 ++++++++-------- drivers/net/virtio/virtio_rxtx_simple_neon.c | 24 ++++++++---------------- drivers/net/virtio/virtio_rxtx_simple_sse.c | 16 ++++++++-------- 7 files changed, 39 insertions(+), 52 deletions(-) diff --git a/drivers/net/virtio/virtio_rxtx_packed_avx.h b/drivers/net/virtio/virtio_rxtx_packed_avx.h index 584ac72..fc60179 100644 --- a/drivers/net/virtio/virtio_rxtx_packed_avx.h +++ b/drivers/net/virtio/virtio_rxtx_packed_avx.h @@ -36,10 +36,10 @@ /* Load four mbufs rearm data */ RTE_BUILD_BUG_ON(REFCNT_BITS_OFFSET >= 64); RTE_BUILD_BUG_ON(SEG_NUM_BITS_OFFSET >= 64); - __m256i mbufs = _mm256_set_epi64x(*tx_pkts[3]->rearm_data, - *tx_pkts[2]->rearm_data, - *tx_pkts[1]->rearm_data, - *tx_pkts[0]->rearm_data); + __m256i mbufs = _mm256_set_epi64x(*rte_mbuf_rearm_data(tx_pkts[3]), + *rte_mbuf_rearm_data(tx_pkts[2]), + *rte_mbuf_rearm_data(tx_pkts[1]), + *rte_mbuf_rearm_data(tx_pkts[0])); /* refcnt=1 and nb_segs=1 */ __m256i mbuf_ref = _mm256_set1_epi64x(DEFAULT_REARM_DATA); @@ -187,7 +187,7 @@ rx_pkts[i] = (struct rte_mbuf *)vq->vq_descx[id + i].cookie; rte_packet_prefetch(rte_pktmbuf_mtod(rx_pkts[i], void *)); - addrs[i] = (uintptr_t)rx_pkts[i]->rx_descriptor_fields1; + addrs[i] = (uintptr_t)rte_mbuf_rx_descriptor_fields1(rx_pkts[i]); } /* diff --git a/drivers/net/virtio/virtio_rxtx_packed_neon.h b/drivers/net/virtio/virtio_rxtx_packed_neon.h index c222ebf..b33f29a 100644 --- a/drivers/net/virtio/virtio_rxtx_packed_neon.h +++ b/drivers/net/virtio/virtio_rxtx_packed_neon.h @@ -59,10 +59,10 @@ uint8x16x2_t mbuf; /* Load four mbufs rearm data. */ RTE_BUILD_BUG_ON(REFCNT_BITS_OFFSET >= 64); - pkts[0] = vld1_u16((uint16_t *)&tx_pkts[0]->rearm_data); - pkts[1] = vld1_u16((uint16_t *)&tx_pkts[1]->rearm_data); - pkts[2] = vld1_u16((uint16_t *)&tx_pkts[2]->rearm_data); - pkts[3] = vld1_u16((uint16_t *)&tx_pkts[3]->rearm_data); + pkts[0] = vld1_u16((uint16_t *)rte_mbuf_rearm_data(tx_pkts[0])); + pkts[1] = vld1_u16((uint16_t *)rte_mbuf_rearm_data(tx_pkts[1])); + pkts[2] = vld1_u16((uint16_t *)rte_mbuf_rearm_data(tx_pkts[2])); + pkts[3] = vld1_u16((uint16_t *)rte_mbuf_rearm_data(tx_pkts[3])); mbuf.val[0] = vreinterpretq_u8_u16(vcombine_u16(pkts[0], pkts[1])); mbuf.val[1] = vreinterpretq_u8_u16(vcombine_u16(pkts[2], pkts[3])); @@ -263,10 +263,10 @@ pkt_mb[3] = vreinterpretq_u64_u16(vsubq_u16( vreinterpretq_u16_u64(pkt_mb[3]), len_adjust)); - vst1q_u64((void *)&rx_pkts[0]->rx_descriptor_fields1, pkt_mb[0]); - vst1q_u64((void *)&rx_pkts[1]->rx_descriptor_fields1, pkt_mb[1]); - vst1q_u64((void *)&rx_pkts[2]->rx_descriptor_fields1, pkt_mb[2]); - vst1q_u64((void *)&rx_pkts[3]->rx_descriptor_fields1, pkt_mb[3]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[0]), pkt_mb[0]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[1]), pkt_mb[1]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[2]), pkt_mb[2]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[3]), pkt_mb[3]); if (hw->has_rx_offload) { virtio_for_each_try_unroll(i, 0, PACKED_BATCH_SIZE) { diff --git a/drivers/net/virtio/virtio_rxtx_simple.c b/drivers/net/virtio/virtio_rxtx_simple.c index 4382569..e6a82e5 100644 --- a/drivers/net/virtio/virtio_rxtx_simple.c +++ b/drivers/net/virtio/virtio_rxtx_simple.c @@ -31,7 +31,6 @@ virtio_rxq_vec_setup(struct virtnet_rx *rxq) { struct virtqueue *vq = virtnet_rxq_to_vq(rxq); - uintptr_t p; struct rte_mbuf mb_def = { .buf_addr = 0 }; /* zeroed mbuf */ mb_def.nb_segs = 1; @@ -41,8 +40,7 @@ /* prevent compiler reordering: rearm_data covers previous fields */ rte_compiler_barrier(); - p = (uintptr_t)&mb_def.rearm_data; - rxq->mbuf_initializer = *(uint64_t *)p; + rxq->mbuf_initializer = *rte_mbuf_rearm_data(&mb_def); return 0; } diff --git a/drivers/net/virtio/virtio_rxtx_simple.h b/drivers/net/virtio/virtio_rxtx_simple.h index 79196ed..16fef0e 100644 --- a/drivers/net/virtio/virtio_rxtx_simple.h +++ b/drivers/net/virtio/virtio_rxtx_simple.h @@ -39,10 +39,7 @@ } for (i = 0; i < RTE_VIRTIO_VPMD_RX_REARM_THRESH; i++) { - uintptr_t p; - - p = (uintptr_t)&sw_ring[i]->rearm_data; - *(uint64_t *)p = rxvq->mbuf_initializer; + *rte_mbuf_rearm_data(sw_ring[i]) = rxvq->mbuf_initializer; start_dp[i].addr = VIRTIO_MBUF_ADDR(sw_ring[i], vq) + RTE_PKTMBUF_HEADROOM - vq->hw->vtnet_hdr_size; diff --git a/drivers/net/virtio/virtio_rxtx_simple_altivec.c b/drivers/net/virtio/virtio_rxtx_simple_altivec.c index 542ec3d..39ec1ca 100644 --- a/drivers/net/virtio/virtio_rxtx_simple_altivec.c +++ b/drivers/net/virtio/virtio_rxtx_simple_altivec.c @@ -138,9 +138,9 @@ ((__vector unsigned short)pkt_mb[0] + len_adjust); pkt_mb[1] = (__vector unsigned char) ((__vector unsigned short)pkt_mb[1] + len_adjust); - *(__vector unsigned char *)&rx_pkts[0]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[0]) = pkt_mb[0]; - *(__vector unsigned char *)&rx_pkts[1]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[1]) = pkt_mb[1]; pkt_mb[2] = vec_perm(desc[1], zero, shuf_msk1); @@ -149,9 +149,9 @@ ((__vector unsigned short)pkt_mb[2] + len_adjust); pkt_mb[3] = (__vector unsigned char) ((__vector unsigned short)pkt_mb[3] + len_adjust); - *(__vector unsigned char *)&rx_pkts[2]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[2]) = pkt_mb[2]; - *(__vector unsigned char *)&rx_pkts[3]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[3]) = pkt_mb[3]; pkt_mb[4] = vec_perm(desc[2], zero, shuf_msk1); @@ -160,9 +160,9 @@ ((__vector unsigned short)pkt_mb[4] + len_adjust); pkt_mb[5] = (__vector unsigned char) ((__vector unsigned short)pkt_mb[5] + len_adjust); - *(__vector unsigned char *)&rx_pkts[4]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[4]) = pkt_mb[4]; - *(__vector unsigned char *)&rx_pkts[5]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[5]) = pkt_mb[5]; pkt_mb[6] = vec_perm(desc[3], zero, shuf_msk1); @@ -171,9 +171,9 @@ ((__vector unsigned short)pkt_mb[6] + len_adjust); pkt_mb[7] = (__vector unsigned char) ((__vector unsigned short)pkt_mb[7] + len_adjust); - *(__vector unsigned char *)&rx_pkts[6]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[6]) = pkt_mb[6]; - *(__vector unsigned char *)&rx_pkts[7]->rx_descriptor_fields1 = + *(__vector unsigned char *)rte_mbuf_rx_descriptor_fields1(rx_pkts[7]) = pkt_mb[7]; if (unlikely(nb_used <= RTE_VIRTIO_DESC_PER_LOOP)) { diff --git a/drivers/net/virtio/virtio_rxtx_simple_neon.c b/drivers/net/virtio/virtio_rxtx_simple_neon.c index 7139b31..873b42c 100644 --- a/drivers/net/virtio/virtio_rxtx_simple_neon.c +++ b/drivers/net/virtio/virtio_rxtx_simple_neon.c @@ -138,10 +138,8 @@ vreinterpretq_u16_u64(pkt_mb[1]), len_adjust)); pkt_mb[0] = vreinterpretq_u64_u16(vsubq_u16( vreinterpretq_u16_u64(pkt_mb[0]), len_adjust)); - vst1q_u64((void *)&rx_pkts[1]->rx_descriptor_fields1, - pkt_mb[1]); - vst1q_u64((void *)&rx_pkts[0]->rx_descriptor_fields1, - pkt_mb[0]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[1]), pkt_mb[1]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[0]), pkt_mb[0]); pkt_mb[3] = vreinterpretq_u64_u8(vqtbl1q_u8( vreinterpretq_u8_u64(desc[1]), shuf_msk2)); @@ -151,10 +149,8 @@ vreinterpretq_u16_u64(pkt_mb[3]), len_adjust)); pkt_mb[2] = vreinterpretq_u64_u16(vsubq_u16( vreinterpretq_u16_u64(pkt_mb[2]), len_adjust)); - vst1q_u64((void *)&rx_pkts[3]->rx_descriptor_fields1, - pkt_mb[3]); - vst1q_u64((void *)&rx_pkts[2]->rx_descriptor_fields1, - pkt_mb[2]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[3]), pkt_mb[3]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[2]), pkt_mb[2]); pkt_mb[5] = vreinterpretq_u64_u8(vqtbl1q_u8( vreinterpretq_u8_u64(desc[2]), shuf_msk2)); @@ -164,10 +160,8 @@ vreinterpretq_u16_u64(pkt_mb[5]), len_adjust)); pkt_mb[4] = vreinterpretq_u64_u16(vsubq_u16( vreinterpretq_u16_u64(pkt_mb[4]), len_adjust)); - vst1q_u64((void *)&rx_pkts[5]->rx_descriptor_fields1, - pkt_mb[5]); - vst1q_u64((void *)&rx_pkts[4]->rx_descriptor_fields1, - pkt_mb[4]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[5]), pkt_mb[5]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[4]), pkt_mb[4]); pkt_mb[7] = vreinterpretq_u64_u8(vqtbl1q_u8( vreinterpretq_u8_u64(desc[3]), shuf_msk2)); @@ -177,10 +171,8 @@ vreinterpretq_u16_u64(pkt_mb[7]), len_adjust)); pkt_mb[6] = vreinterpretq_u64_u16(vsubq_u16( vreinterpretq_u16_u64(pkt_mb[6]), len_adjust)); - vst1q_u64((void *)&rx_pkts[7]->rx_descriptor_fields1, - pkt_mb[7]); - vst1q_u64((void *)&rx_pkts[6]->rx_descriptor_fields1, - pkt_mb[6]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[7]), pkt_mb[7]); + vst1q_u64(rte_mbuf_rx_descriptor_fields1(rx_pkts[6]), pkt_mb[6]); if (unlikely(nb_used <= RTE_VIRTIO_DESC_PER_LOOP)) { if (sw_ring + nb_used <= sw_ring_end) diff --git a/drivers/net/virtio/virtio_rxtx_simple_sse.c b/drivers/net/virtio/virtio_rxtx_simple_sse.c index 6a18741..25db486 100644 --- a/drivers/net/virtio/virtio_rxtx_simple_sse.c +++ b/drivers/net/virtio/virtio_rxtx_simple_sse.c @@ -134,36 +134,36 @@ pkt_mb[0] = _mm_shuffle_epi8(desc[0], shuf_msk1); pkt_mb[1] = _mm_add_epi16(pkt_mb[1], len_adjust); pkt_mb[0] = _mm_add_epi16(pkt_mb[0], len_adjust); - _mm_storeu_si128((void *)&rx_pkts[1]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[1]), pkt_mb[1]); - _mm_storeu_si128((void *)&rx_pkts[0]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[0]), pkt_mb[0]); pkt_mb[3] = _mm_shuffle_epi8(desc[1], shuf_msk2); pkt_mb[2] = _mm_shuffle_epi8(desc[1], shuf_msk1); pkt_mb[3] = _mm_add_epi16(pkt_mb[3], len_adjust); pkt_mb[2] = _mm_add_epi16(pkt_mb[2], len_adjust); - _mm_storeu_si128((void *)&rx_pkts[3]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[3]), pkt_mb[3]); - _mm_storeu_si128((void *)&rx_pkts[2]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[2]), pkt_mb[2]); pkt_mb[5] = _mm_shuffle_epi8(desc[2], shuf_msk2); pkt_mb[4] = _mm_shuffle_epi8(desc[2], shuf_msk1); pkt_mb[5] = _mm_add_epi16(pkt_mb[5], len_adjust); pkt_mb[4] = _mm_add_epi16(pkt_mb[4], len_adjust); - _mm_storeu_si128((void *)&rx_pkts[5]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[5]), pkt_mb[5]); - _mm_storeu_si128((void *)&rx_pkts[4]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[4]), pkt_mb[4]); pkt_mb[7] = _mm_shuffle_epi8(desc[3], shuf_msk2); pkt_mb[6] = _mm_shuffle_epi8(desc[3], shuf_msk1); pkt_mb[7] = _mm_add_epi16(pkt_mb[7], len_adjust); pkt_mb[6] = _mm_add_epi16(pkt_mb[6], len_adjust); - _mm_storeu_si128((void *)&rx_pkts[7]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[7]), pkt_mb[7]); - _mm_storeu_si128((void *)&rx_pkts[6]->rx_descriptor_fields1, + _mm_storeu_si128(rte_mbuf_rx_descriptor_fields1(rx_pkts[6]), pkt_mb[6]); if (unlikely(nb_used <= RTE_VIRTIO_DESC_PER_LOOP)) {