From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 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 ; 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 To: David Marchand Cc: Dodji Seketeli , dev@dpdk.org, 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 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> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 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 > 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 > > 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