DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Tyler Retzlaff <roretzla@linux.microsoft.com>,
	Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
Cc: Joyce Kong <Joyce.Kong@arm.com>,
	dev@dpdk.org,
	"david.marchand@redhat.com" <david.marchand@redhat.com>,
	"stephen@networkplumber.org" <stephen@networkplumber.org>,
	"olivier.matz@6wind.com" <olivier.matz@6wind.com>,
	"andrew.rybchenko@oktetlabs.ru" <andrew.rybchenko@oktetlabs.ru>,
	"harry.van.haaren@intel.com" <harry.van.haaren@intel.com>,
	Ruifeng Wang <Ruifeng.Wang@arm.com>,
	"dev@dpdk.org" <dev@dpdk.org>, nd <nd@arm.com>,
	"techboard@dpdk.org" <techboard@dpdk.org>, nd <nd@arm.com>
Subject: Re: [dpdk-dev] [PATCH v2 0/8] use GCC's C11 atomic builtins for test
Date: Wed, 23 Jun 2021 12:24:55 +0200	[thread overview]
Message-ID: <7557795.l8Y19qOmnl@thomas> (raw)
In-Reply-To: <DBAPR08MB581499A4C0E33CEC9636C85F980E9@DBAPR08MB5814.eurprd08.prod.outlook.com>

18/06/2021 01:26, Honnappa Nagarahalli:
> > On Tue, Jun 15, 2021 at 09:54:51PM -0500, Joyce Kong wrote:
> > > Since C11 memory model is adopted in DPDK now[1], use GCC's atomic
> > > builtins in test cases.
> > 
> > as previously discussed these atomics are not "C11" they are direct use of gcc
> > builtins. please don't incorporate C11 into the title of the patches or commit
> > messages since it isn't.
> 
> GCC supports 2 types of built-in atomics,
> __atomic_xxx[1] and __sync_xxx [2].
> We need a way to distinguish between them.
> We are using "C11" as [1] says they match C++11 memory model.

I agree it would be more correct to mention "compiler builtin"
as it is not strictly the C11 API.

> [1] https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
> [2] https://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html
> 
> > 
> > please do not integrate a patch that directly uses gcc builtins and extensions
> > please maintain abstractions under the rte_ namespace.
> 
> This is just another wrapper which is not required
> according to the current requirements we are working with.

Yes such wrapper is not required *today*.
We have 2 options:
	1/ introduce a wrapper now to anticipate any future issue
	2/ introduce a wrapper later when required

Given we already use these builtins, we should not block this patchset.
If it is decided to change the policy, then we'll replace the calls
to the compiler builtins in all the codebase.

> > specifically this patch substantially increases coupling to a single compiler
> > implementation reducing portability.
> > 
> > as previously requested, please establish at a minimum macros in the rte_
> > namespace for this.
> 
> This needs to be discussed at the Techboard. I have CCed the Techboard.
> The Techboard meets once in 2 weeks. The details are at [3].
> Next meeting is on 6/30 at 10am CST. Can you please attend and make your case?

I agree to discuss options 1 or 2 in a techboard meeting.

> Alternately, you can send an email to techboard@dpdk.org
> explaining your case and we will debate and make a decision.
> 
> [3] https://core.dpdk.org/techboard/
> 
> > 
> > thanks.
> > 
> > > [1]
> > > https://www.dpdk.org/blog/2021/03/26/dpdk-adopts-the-c11-memory-
> > model/




  reply	other threads:[~2021-06-23 10:25 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-04  9:46 [dpdk-dev] [PATCH v1 " Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 1/8] test/ticketlock: use GCC atomic builtins for lcores sync Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 2/8] test/spinlock: " Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 3/8] test/rwlock: " Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 4/8] test/mcslock: " Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 5/8] test/mempool: remove unused variable " Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 6/8] test/mempool_perf: use GCC atomic builtins " Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 7/8] test/service_cores: use GCC atomic builtins for lock sync Joyce Kong
2021-06-04  9:46 ` [dpdk-dev] [PATCH v1 8/8] test/rcu_perf: use GCC atomic builtins for data sync Joyce Kong
2021-06-04 19:57 ` [dpdk-dev] [PATCH v1 0/8] use GCC's C11 atomic builtins for test Stephen Hemminger
2021-06-11  8:40 ` David Marchand
2021-06-11 10:45   ` Joyce Kong
2021-06-16  2:54 ` [dpdk-dev] [PATCH v2 " Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 1/8] test/ticketlock: use GCC atomic builtins for lcores sync Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 2/8] test/spinlock: " Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 3/8] test/rwlock: " Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 4/8] test/mcslock: " Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 5/8] test/mempool: remove unused variable " Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 6/8] test/mempool_perf: use GCC atomic builtins " Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 7/8] test/service_cores: use GCC atomic builtins for lock sync Joyce Kong
2021-06-16  2:54   ` [dpdk-dev] [PATCH v2 8/8] test/rcu: use GCC atomic builtins for data sync Joyce Kong
2021-06-17 15:21   ` [dpdk-dev] [PATCH v2 0/8] use GCC's C11 atomic builtins for test Tyler Retzlaff
2021-06-17 23:26     ` Honnappa Nagarahalli
2021-06-23 10:24       ` Thomas Monjalon [this message]
2021-06-23 16:02         ` Tyler Retzlaff
2021-06-29 17:04         ` Honnappa Nagarahalli
2021-06-30 18:51           ` Tyler Retzlaff
2021-06-30 19:06             ` Honnappa Nagarahalli
2021-06-30 19:38               ` Tyler Retzlaff
2021-06-30 20:25                 ` Honnappa Nagarahalli
2021-06-30 21:49                   ` Tyler Retzlaff
2021-06-30 22:41                     ` Honnappa Nagarahalli
2021-07-13  7:28                       ` Joyce Kong
2021-07-14 11:44                         ` Thomas Monjalon
2021-07-20  3:51   ` [dpdk-dev] [PATCH v3 0/8] use compiler " Joyce Kong
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 1/8] test/ticketlock: use compiler atomics for lcores sync Joyce Kong
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 2/8] test/spinlock: use compile " Joyce Kong
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 3/8] test/rwlock: use compiler " Joyce Kong
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 4/8] test/mcslock: " Joyce Kong
2021-07-28  9:56       ` Olivier Matz
2021-07-29  7:19         ` Joyce Kong
2021-07-29  7:58           ` Olivier Matz
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 5/8] test/mempool: remove unused variable " Joyce Kong
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 6/8] test/mempool_perf: use compiler atomics " Joyce Kong
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 7/8] test/service_cores: use compiler atomics for lock sync Joyce Kong
2021-07-20  3:51     ` [dpdk-dev] [PATCH v3 8/8] test/rcu: use compiler atomics for data sync Joyce Kong
2021-07-23 19:52       ` Andrew Rybchenko
2021-07-28  7:07         ` Joyce Kong
2021-07-30 21:58     ` [dpdk-dev] [PATCH v3 0/8] use compiler atomic builtins for test Thomas Monjalon

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=7557795.l8Y19qOmnl@thomas \
    --to=thomas@monjalon.net \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=Joyce.Kong@arm.com \
    --cc=Ruifeng.Wang@arm.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=harry.van.haaren@intel.com \
    --cc=nd@arm.com \
    --cc=olivier.matz@6wind.com \
    --cc=roretzla@linux.microsoft.com \
    --cc=stephen@networkplumber.org \
    --cc=techboard@dpdk.org \
    /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).