From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: "thomas@monjalon.net" <thomas@monjalon.net>,
"nhorman@tuxdriver.com" <nhorman@tuxdriver.com>,
"honnappa.nagarahalli@arm.com" <honnappa.nagarahalli@arm.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"Richardson, Bruce" <bruce.richardson@intel.com>,
"Yigit, Ferruh" <ferruh.yigit@intel.com>,
Dodji Seketeli <dodji@redhat.com>,
"Laatz, Kevin" <kevin.laatz@intel.com>
Subject: Re: [dpdk-dev] /validate-abi.sh complains [PATCH v1 3/8] ring: introduce RTS ring mode
Date: Thu, 2 Apr 2020 12:36:58 +0000 [thread overview]
Message-ID: <SN6PR11MB255805A1FF54EA12F29C87F59AC60@SN6PR11MB2558.namprd11.prod.outlook.com> (raw)
In-Reply-To: <CAJFAV8yDOcTmv1H71qXzC1-Y18uXvJhqqJEmT2UuWZHOvoyW8g@mail.gmail.com>
Hi David,
> > Have a question regarding validate-abi.sh.
> > It complains on the following changes with that patch:
> >
> > @@ -111,11 +129,21 @@ struct rte_ring {
> > char pad0 __rte_cache_aligned; /**< empty cache line */
> >
> > /** Ring producer status. */
> > - struct rte_ring_headtail prod __rte_cache_aligned;
> > + RTE_STD_C11
> > + union {
> > + struct rte_ring_headtail prod;
> > + struct rte_ring_rts_headtail rts_prod;
> > + } __rte_cache_aligned;
> > +
> > char pad1 __rte_cache_aligned; /**< empty cache line */
> >
> > /** Ring consumer status. */
> > - struct rte_ring_headtail cons __rte_cache_aligned;
> > + RTE_STD_C11
> > + union {
> > + struct rte_ring_headtail cons;
> > + struct rte_ring_rts_headtail rts_cons;
> > + } __rte_cache_aligned;
> > +
> >
> > Complaints:
> > rte_ring.h
> > [−] struct rte_ring 2
> >
> > 1
> > Change: Field cons has been removed from this type.
> > Effect: Applications will access incorrect memory when attempting to access this field.
> > 2
> > Change: Field prod has been removed from this type.
> > Effect: Applications will access incorrect memory when attempting to access this field.
> >
> > From my perspective it looks false-positive:
> > *prod* and *cons* fields are still there,
> > their format, size and offset within rte_ring remain the same.
> > Is that some limitation with the tool, or am I missing something here?
>
> - Side note, we have build failures with clang and ARM jobs:
> https://travis-ci.com/github/ovsrobot/dpdk/builds/157277423
ack, will fix.
>
>
> - We switched to libabigail called from devtools/check-abi.sh which
> you can run locally
> (https://doc.dpdk.org/guides/contributing/patches.html?highlight=abi#checking-abi-compatibility).
> Or you can count on Aaron's robot to do this check in Travis.
>
> It reported a warning on those fields:
> https://travis-ci.com/github/ovsrobot/dpdk/jobs/310689008#L2380
> I understand this as a false positive too.
>
> It seems similar to the bz I opened about fields moved to anonymous
> constructs: https://sourceware.org/bugzilla/show_bug.cgi?id=25661
Yes, looks the same.
> Cc: Dodji.
>
>
> For the time being, you can waive this by adding a rule in
> devtools/libabigail.abignore.
Ok, so what is the procedure here?
Should I submit changes to devtools/libabigail.abignore together with the
patch that introduced the problem?
BTW, I used the following changes in libabigail.abignore to supress errors:
$ git diff devtools/libabigail.abignore
diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index a59df8f13..032479b9f 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -11,3 +11,9 @@
type_kind = enum
name = rte_crypto_asym_xform_type
changed_enumerators = RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
+; Ignore updates of ring prod/cons
+[suppress_type]
+ type_kind = struct
+ name = rte_ring
+ has_data_members_inserted_at = offsetof(prod)
+ has_data_members_inserted_at = offsetof(cons)
Do you know, is there a better (more fine-grained) approach?
Thanks
Konstantin
next prev parent reply other threads:[~2020-04-02 12:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-31 17:05 Ananyev, Konstantin
2020-03-31 19:22 ` Thomas Monjalon
2020-03-31 19:24 ` Thomas Monjalon
2020-04-01 12:52 ` Neil Horman
2020-04-06 14:02 ` Thomas Monjalon
2020-04-06 14:36 ` Neil Horman
2020-04-07 7:32 ` Ray Kinsella
2020-04-07 11:31 ` Neil Horman
2020-04-01 6:38 ` David Marchand
2020-04-02 12:36 ` Ananyev, Konstantin [this message]
2020-04-02 13:13 ` Dodji Seketeli
2020-04-02 14:27 ` David Marchand
2020-04-02 15:25 ` Ananyev, Konstantin
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=SN6PR11MB255805A1FF54EA12F29C87F59AC60@SN6PR11MB2558.namprd11.prod.outlook.com \
--to=konstantin.ananyev@intel.com \
--cc=bruce.richardson@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=dodji@redhat.com \
--cc=ferruh.yigit@intel.com \
--cc=honnappa.nagarahalli@arm.com \
--cc=kevin.laatz@intel.com \
--cc=nhorman@tuxdriver.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).