From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <dev-bounces@dpdk.org> Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 24A6943C0D; Tue, 27 Feb 2024 18:23:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A921940279; Tue, 27 Feb 2024 18:23:08 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 3124F40150 for <dev@dpdk.org>; Tue, 27 Feb 2024 18:23:07 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 5809620B74C0; Tue, 27 Feb 2024 09:23:06 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5809620B74C0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1709054586; bh=Zzr6RvHDGFB4fK6YkhghBgrbkt0Brh5t+16/LnBEJj4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qRWMxdHkg7A8ZusZb+l7ZESj0NWmJ57LjdLH1SiUqSsaVfYFMjuFrutzDsxUXTLK2 uZf0r4jBo3lFbl6FgZDjmH64/692tE9S0Tjml+qijD8tU09Q6pkHxSQNN03VkI+wwT SwItbD04gagsKQAO7CZANO0AGUCclBb5YjOtOfb4= Date: Tue, 27 Feb 2024 09:23:06 -0800 From: Tyler Retzlaff <roretzla@linux.microsoft.com> To: David Marchand <david.marchand@redhat.com> Cc: Dodji Seketeli <dodji@redhat.com>, dev@dpdk.org, 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 Subject: Re: [PATCH v6 20/23] mbuf: remove and stop using rte marker fields Message-ID: <20240227172306.GB16014@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> References: <1706657173-26166-1-git-send-email-roretzla@linux.microsoft.com> <1709012499-12813-1-git-send-email-roretzla@linux.microsoft.com> <1709012499-12813-21-git-send-email-roretzla@linux.microsoft.com> <CAJFAV8ysQa5VA-KDEWQVknTEf8H7vNDCG6V7KeF+LnCQzpazSQ@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <CAJFAV8ysQa5VA-KDEWQVknTEf8H7vNDCG6V7KeF+LnCQzpazSQ@mail.gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <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 On Tue, Feb 27, 2024 at 04:18:10PM +0100, David Marchand wrote: > Hello Dodji, > > On Tue, Feb 27, 2024 at 6:44 AM Tyler Retzlaff > <roretzla@linux.microsoft.com> wrote: > > > > RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Remove > > RTE_MARKER fields from rte_mbuf struct. > > > > Maintain alignment of fields after removed cacheline1 marker by placing > > C11 alignas(RTE_CACHE_LINE_MIN_SIZE). > > > > Update implementation of rte_mbuf_prefetch_part1() and > > rte_mbuf_prefetch_part2() inline functions calculate pointer for > > prefetch of cachline0 and cachline1 without using removed markers. > > > > Update static_assert of rte_mbuf struct fields to reference data_off and > > packet_type fields that occupy the original offsets of the marker > > fields. > > > > Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> > > This change is reported as a potential ABI change. > > For the context, this patch > https://patchwork.dpdk.org/project/dpdk/patch/1709012499-12813-21-git-send-email-roretzla@linux.microsoft.com/ > removes null-sized markers (those fields were using RTE_MARKER, see > https://git.dpdk.org/dpdk/tree/lib/eal/include/rte_common.h#n583) from > the rte_mbuf struct. > I would argue this change do not impact ABI as the layout of the mbuf > object is not impacted. It isn't a surprise that the change got flagged because the 0 sized fields being removed probably not something the checker understands. So no ABI change just API break (as was requested). > As reported by the CI: > > [C] 'function const rte_eth_rxtx_callback* > rte_eth_add_first_rx_callback(uint16_t, uint16_t, rte_rx_callback_fn, > void*)' at rte_ethdev.c:5768:1 has some indirect sub-type changes: > parameter 3 of type 'typedef rte_rx_callback_fn' has sub-type changes: > underlying type 'typedef uint16_t (typedef uint16_t, typedef > uint16_t, rte_mbuf**, typedef uint16_t, typedef uint16_t, void*)*' > changed: > in pointed to type 'function type typedef uint16_t (typedef > uint16_t, typedef uint16_t, rte_mbuf**, typedef uint16_t, typedef > uint16_t, void*)': > parameter 3 of type 'rte_mbuf**' has sub-type changes: > in pointed to type 'rte_mbuf*': > in pointed to type 'struct rte_mbuf' at rte_mbuf_core.h:470:1: > type size hasn't changed > 4 data member deletions: > 'RTE_MARKER cacheline0', at offset 0 (in bits) at > rte_mbuf_core.h:467:1 > 'RTE_MARKER64 rearm_data', at offset 128 (in bits) > at rte_mbuf_core.h:490:1 > 'RTE_MARKER rx_descriptor_fields1', at offset 256 > (in bits) at rte_mbuf_core.h:517:1 > 'RTE_MARKER cacheline1', at offset 512 (in bits) at > rte_mbuf_core.h:598:1 > no data member change (1 filtered); > > Error: ABI issue reported for abidiff --suppr > /home/runner/work/dpdk/dpdk/devtools/libabigail.abignore > --no-added-syms --headers-dir1 reference/usr/local/include > --headers-dir2 install/usr/local/include > reference/usr/local/lib/librte_ethdev.so.24.0 > install/usr/local/lib/librte_ethdev.so.24.1 > ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged > this as a potential issue). > > Opinions? > > Btw, I see no way to suppress this (except a global [suppress_type] > name = rte_mbuf)... I am unfamiliar with the ABI checker I'm afraid i have no suggestion to offer. Maybe we can just ignore the failure for this one series when we decide it is ready to be merged and don't suppress the checker? > > > -- > David Marchand