From: David Marchand <david.marchand@redhat.com>
To: Ferruh Yigit <ferruh.yigit@amd.com>
Cc: Akhil Goyal <gakhil@marvell.com>,
dev@dpdk.org, Dodji Seketeli <dodji@redhat.com>,
thomas@monjalon.net, hemant.agrawal@nxp.com, anoobj@marvell.com,
pablo.de.lara.guarch@intel.com, fiona.trahe@intel.com,
declan.doherty@intel.com, matan@nvidia.com, g.singh@nxp.com,
fanzhang.oss@gmail.com, jianjay.zhou@huawei.com,
asomalap@amd.com, ruifeng.wang@arm.com,
konstantin.v.ananyev@yandex.ru, radu.nicolau@intel.com,
ajit.khaparde@broadcom.com, rnagadheeraj@marvell.com,
mdr@ashroe.eu
Subject: Re: [PATCH] [RFC] cryptodev: replace LIST_END enumerators with APIs
Date: Fri, 4 Oct 2024 09:04:42 +0200 [thread overview]
Message-ID: <CAJFAV8xETZEGOA9xpazhjzAuKTRvWsqJ=RfqdsbUsvbJpsQi7w@mail.gmail.com> (raw)
In-Reply-To: <10591cfb-d78e-4d50-9bb5-f6d1246662b3@amd.com>
On Fri, Oct 4, 2024 at 5:55 AM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
>
> On 9/5/2024 11:14 AM, Akhil Goyal wrote:
> > Replace *_LIST_END enumerators from asymmetric crypto
> > lib to avoid ABI breakage for every new addition in
> > enums with inline APIs.
> >
> > Signed-off-by: Akhil Goyal <gakhil@marvell.com>
> > ---
> > This patch was discussed in ML long time back.
> > https://patches.dpdk.org/project/dpdk/patch/20211008204516.3497060-1-gakhil@marvell.com/
> > Now added inline APIs for getting the list end which need to be updated
> > for each new entry to the enum. This shall help in avoiding ABI break
> > for adding new algo.
> >
>
> Hi Akhil,
>
> *I think* this hides the problem instead of fixing it, and this may be
> partially because of the tooling (libabigail) limitation.
>
> This patch prevents the libabigail warning, true, but it doesn't improve
> anything from the application's perspective.
> Before or after this patch, application knows a fixed value as END value.
>
> Not all changes in the END (MAX) enum values cause ABI break, but tool
> warns on all, that is why I think this may be tooling limitation [1].
> (Just to stress, I am NOT talking about regular enum values change, I am
> talking about only END (MAX) value changes caused by appending new enum
> items.)
>
> As far as I can see (please Dodji, David correct me if I am wrong) ABI
> break only happens if application and library exchange enum values in
> the API (directly or within a struct).
- There is also the following issue:
A library publicly exports an array sized against a END (MAX) enum in the API.
https://developers.redhat.com/blog/2019/05/06/how-c-array-sizes-become-part-of-the-binary-interface-of-a-library
I had made comments for an issue in the cryptodev library in the past:
https://inbox.dpdk.org/dev/CAJFAV8xs5CVdE2xwRtaxk5vE_PiQMV5LY5tKStk3R1gOuRTsUw@mail.gmail.com/
- Sorry to deviate from the _END enum discussion that tries to define
a solution for all cases, but all I see in the cryptodev patch is a
need for an enumerator... for an internal unit test.
From the RFC patch, I would simply change the
rte_crypto_asym_xform_type_list_end helper into a non inline symbol
and mark it __rte_internal, or move this helper to a non public header
used by the unit test.
Or add a (internal) rte_crypto_asym_xform_type_next_op() used through
a a RTE_CRYPTO_FOREACH_ASYM_OP() macro.
--
David Marchand
next prev parent reply other threads:[~2024-10-04 7:05 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 10:14 Akhil Goyal
2024-09-05 15:09 ` Morten Brørup
2024-09-05 15:26 ` Kusztal, ArkadiuszX
2024-09-06 6:32 ` fengchengwen
2024-09-06 7:45 ` [EXTERNAL] " Akhil Goyal
2024-10-04 3:56 ` Ferruh Yigit
2024-09-06 7:54 ` Morten Brørup
2024-09-23 20:41 ` Akhil Goyal
2024-10-03 7:00 ` Akhil Goyal
2024-10-06 11:10 ` Morten Brørup
2024-10-09 11:21 ` Akhil Goyal
2024-10-04 4:00 ` Ferruh Yigit
2024-10-04 17:26 ` [EXTERNAL] " Akhil Goyal
2024-10-04 3:54 ` Ferruh Yigit
2024-10-04 7:04 ` David Marchand [this message]
2024-10-04 17:27 ` [EXTERNAL] " Akhil Goyal
2024-10-10 0:49 ` Ferruh Yigit
2024-10-10 6:18 ` [EXTERNAL] " Akhil Goyal
2024-10-28 11:15 ` Dodji Seketeli
2024-10-04 9:38 ` Dodji Seketeli
2024-10-04 17:45 ` [EXTERNAL] " Akhil Goyal
2024-10-28 10:55 ` Dodji Seketeli
2024-10-10 0:35 ` Ferruh Yigit
2024-10-28 10:12 ` Dodji Seketeli
2024-10-09 11:24 ` [PATCH] cryptodev: remove unnecessary list end Akhil Goyal
2024-10-09 12:52 ` Morten Brørup
2024-10-09 20:38 ` Akhil Goyal
2024-10-09 14:06 ` Hemant Agrawal
2024-10-10 0:51 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAJFAV8xETZEGOA9xpazhjzAuKTRvWsqJ=RfqdsbUsvbJpsQi7w@mail.gmail.com' \
--to=david.marchand@redhat.com \
--cc=ajit.khaparde@broadcom.com \
--cc=anoobj@marvell.com \
--cc=asomalap@amd.com \
--cc=declan.doherty@intel.com \
--cc=dev@dpdk.org \
--cc=dodji@redhat.com \
--cc=fanzhang.oss@gmail.com \
--cc=ferruh.yigit@amd.com \
--cc=fiona.trahe@intel.com \
--cc=g.singh@nxp.com \
--cc=gakhil@marvell.com \
--cc=hemant.agrawal@nxp.com \
--cc=jianjay.zhou@huawei.com \
--cc=konstantin.v.ananyev@yandex.ru \
--cc=matan@nvidia.com \
--cc=mdr@ashroe.eu \
--cc=pablo.de.lara.guarch@intel.com \
--cc=radu.nicolau@intel.com \
--cc=rnagadheeraj@marvell.com \
--cc=ruifeng.wang@arm.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).