DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: "Morten Brørup" <mb@smartsharesystems.com>
Cc: "David Marchand" <david.marchand@redhat.com>,
	dev@dpdk.org, bruce.richardson@intel.com, ktraynor@redhat.com,
	"Mattias Rönnblom" <mattias.ronnblom@ericsson.com>,
	"Tyler Retzlaff" <roretzla@linux.microsoft.com>
Subject: Re: [PATCH 2/3] bitset: fix build for GCC without experimental API
Date: Tue, 15 Oct 2024 16:13:15 +0200	[thread overview]
Message-ID: <10943298.zapYfy813O@thomas> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F7DE@smartserver.smartshare.dk>

15/10/2024 14:53, Morten Brørup:
> > From: David Marchand [mailto:david.marchand@redhat.com]
> > @@ -255,7 +255,13 @@ __rte_experimental
> >  static inline bool
> >  rte_bitset_test(const uint64_t *bitset, size_t bit_num)
> >  {
> > +#ifdef ALLOW_EXPERIMENTAL_API
> >  	return __RTE_BITSET_DELEGATE(rte_bit_test, bitset, bit_num);
> > +#else
> > +	RTE_SET_USED(bitset);
> > +	RTE_SET_USED(bit_num);
> > +	return false;
> > +#endif
> >  }
> 
> This looks wrong! The API is exposed, but does nothing.

Yes, this is what we did already in the past for other experimental functions
called from inline functions.
There is no choice, the compiler is hitting the warning.

> It is possible to build without ALLOW_EXPERIMENTAL_API; the compiler will emit warnings when using experimental APIs.

Yes it is possible to build,
but it is not said it should work the same.

> If those compiler warnings are not handled as errors, the compiled application will be full of bugs.

Yes, that's why there are warnings.
We may document it better but that's the behavior we have for years.
There is no easy solution, and making experimental functions work
without defining ALLOW_EXPERIMENTAL_API is not a really interesting goal.
I think the word "allow" suggests it is not supposed to work if not allowed.

It would be more interesting to make sure the users understand
why we have this flag and how to enable it.
I propose adding some docs, and mentioning ALLOW_EXPERIMENTAL_API
in the the __rte_experimental message in rte_compat.h.



  reply	other threads:[~2024-10-15 14:13 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-15 12:10 [PATCH 0/3] Enhance headers check David Marchand
2024-10-15 12:10 ` [PATCH 1/3] bitops: fix build for GCC without experimental API David Marchand
2024-10-15 12:47   ` Morten Brørup
2024-10-15 12:10 ` [PATCH 2/3] bitset: " David Marchand
2024-10-15 12:53   ` Morten Brørup
2024-10-15 14:13     ` Thomas Monjalon [this message]
2024-10-15 14:44       ` Morten Brørup
2024-10-15 19:58         ` Thomas Monjalon
2024-10-15 20:30           ` Morten Brørup
2024-10-15 12:10 ` [PATCH 3/3] buildtools/chkincs: check headers with stable API only David Marchand
2024-10-16 11:38 ` [PATCH v2 0/4] Enhance headers check David Marchand
2024-10-16 11:38   ` [PATCH v2 1/4] bitops: fix build for GCC without experimental API David Marchand
2024-10-16 11:38   ` [PATCH v2 2/4] bitset: " David Marchand
2024-10-16 14:14     ` Mattias Rönnblom
2024-10-16 15:36       ` David Marchand
2024-10-16 15:42         ` Morten Brørup
2024-10-16 16:03           ` Mattias Rönnblom
2024-10-16 16:17             ` Thomas Monjalon
2024-10-16 15:51         ` Mattias Rönnblom
2024-10-16 11:38   ` [PATCH v2 3/4] vhost: remove internal vDPA API description from public header David Marchand
2024-10-16 11:47     ` Maxime Coquelin
2024-10-16 11:38   ` [PATCH v2 4/4] buildtools/chkincs: check headers with stable API only David Marchand
2024-10-16 20:40   ` [PATCH v2 0/4] Enhance headers check David Marchand
2024-10-21 16:04 ` [PATCH v3 " David Marchand
2024-10-21 16:04   ` [PATCH v3 1/4] bitset: fix build for GCC without experimental API David Marchand
2024-10-21 17:57     ` Mattias Rönnblom
2024-10-21 16:04   ` [PATCH v3 2/4] buildtools/chkincs: check headers with stable API only David Marchand
2024-10-21 16:06     ` Bruce Richardson
2024-10-21 16:04   ` [PATCH v3 3/4] bus/ifpga: use C linkage where appropriate in driver header David Marchand
2024-10-21 18:01     ` Mattias Rönnblom
2024-10-22 19:27       ` David Marchand
2024-10-21 16:04   ` [PATCH v3 4/4] buildtools/chkincs: check driver specific headers David Marchand
2024-10-21 16:23   ` [PATCH v3 0/4] Enhance headers check Morten Brørup
2024-10-23 14:39   ` David Marchand

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=10943298.zapYfy813O@thomas \
    --to=thomas@monjalon.net \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=ktraynor@redhat.com \
    --cc=mattias.ronnblom@ericsson.com \
    --cc=mb@smartsharesystems.com \
    --cc=roretzla@linux.microsoft.com \
    /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).