Message ID | 1708762927-14126-6-git-send-email-roretzla@linux.microsoft.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Thomas Monjalon |
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 <dev@dpdk.org>; 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 <roretzla@linux.microsoft.com> To: dev@dpdk.org Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>, Andrew Boyer <andrew.boyer@amd.com>, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>, Bruce Richardson <bruce.richardson@intel.com>, Chenbo Xia <chenbox@nvidia.com>, Chengwen Feng <fengchengwen@huawei.com>, Dariusz Sosnowski <dsosnowski@nvidia.com>, David Christensen <drc@linux.vnet.ibm.com>, Hyong Youb Kim <hyonkim@cisco.com>, Jerin Jacob <jerinj@marvell.com>, Jie Hai <haijie1@huawei.com>, Jingjing Wu <jingjing.wu@intel.com>, John Daley <johndale@cisco.com>, Kevin Laatz <kevin.laatz@intel.com>, Kiran Kumar K <kirankumark@marvell.com>, Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>, Maciej Czekaj <mczekaj@marvell.com>, Matan Azrad <matan@nvidia.com>, Maxime Coquelin <maxime.coquelin@redhat.com>, Nithin Dabilpuram <ndabilpuram@marvell.com>, Ori Kam <orika@nvidia.com>, Ruifeng Wang <ruifeng.wang@arm.com>, Satha Rao <skoteshwar@marvell.com>, Somnath Kotur <somnath.kotur@broadcom.com>, Suanming Mou <suanmingm@nvidia.com>, Sunil Kumar Kori <skori@marvell.com>, Viacheslav Ovsiienko <viacheslavo@nvidia.com>, Yisen Zhuang <yisen.zhuang@huawei.com>, Yuying Zhang <Yuying.Zhang@intel.com>, mb@smartsharesystems.com, Tyler Retzlaff <roretzla@linux.microsoft.com> 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 <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Series |
stop using RTE_MARKER extensions
|
|
Checks
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
Commit Message
Tyler Retzlaff
Feb. 24, 2024, 8:21 a.m. UTC
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 <roretzla@linux.microsoft.com>
---
lib/mbuf/rte_mbuf.h | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Comments
24/02/2024 09:21, Tyler Retzlaff: > 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 <roretzla@linux.microsoft.com> [...] > rte_mbuf_prefetch_part1(struct rte_mbuf *m) > { > - rte_prefetch0(&m->cacheline0); > + rte_prefetch0(&m->buf_addr); Should be simply "m", no need to point to the first field explicitly. [...] > 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 I think it is better to calculate m + min cache line size instead of relying on fields.
On Sat, 24 Feb 2024 11:58:59 +0100 Thomas Monjalon <thomas@monjalon.net> wrote: > 24/02/2024 09:21, Tyler Retzlaff: > > 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 <roretzla@linux.microsoft.com> > [...] > > rte_mbuf_prefetch_part1(struct rte_mbuf *m) > > { > > - rte_prefetch0(&m->cacheline0); > > + rte_prefetch0(&m->buf_addr); > > Should be simply "m", no need to point to the first field explicitly. > > [...] > > 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 > > I think it is better to calculate m + min cache line size > instead of relying on fields. > > Agree with Thomas, the markers and field dependency are bad idea.
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