DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Morten Brørup" <mb@smartsharesystems.com>
To: "Tyler Retzlaff" <roretzla@linux.microsoft.com>,
	"Honnappa Nagarahalli" <Honnappa.Nagarahalli@arm.com>,
	"David Marchand" <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, "Ruifeng Wang" <Ruifeng.Wang@arm.com>,
	<thomas@monjalon.net>, <stephen@networkplumber.org>,
	"Ferruh Yigit" <ferruh.yigit@amd.com>, "nd" <nd@arm.com>
Subject: RE: [PATCH v3 0/7] replace rte atomics with GCC builtin atomics
Date: Thu, 25 May 2023 09:50:53 +0200	[thread overview]
Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87949@smartserver.smartshare.dk> (raw)
In-Reply-To: <20230525000239.GB5524@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>

> From: Tyler Retzlaff [mailto:roretzla@linux.microsoft.com]
> Sent: Thursday, 25 May 2023 02.03
> 
> Morten,
> 
> David and Honnappa are discussing the /* NOTE: */ comments that were
> added. If the three of you could come to conclusion about keeping or
> removing them it would be appreciated.
> 
> Thanks!
> 
> On Wed, May 24, 2023 at 10:56:01PM +0000, Honnappa Nagarahalli wrote:
> >
> > > From: Tyler Retzlaff <roretzla@linux.microsoft.com>
> > > Sent: Wednesday, May 24, 2023 5:51 PM
> > >
> > > On Wed, May 24, 2023 at 10:06:24PM +0200, David Marchand wrote:
> > > > On Wed, May 24, 2023 at 5:47 PM Tyler Retzlaff
> > > > <roretzla@linux.microsoft.com> wrote:
> > > > > On Wed, May 24, 2023 at 02:40:43PM +0200, David Marchand wrote:
> > > > > > Hello Tyler,
> > > > > >
> > > > > > On Thu, Mar 23, 2023 at 11:54 PM Tyler Retzlaff
> > > > > > <roretzla@linux.microsoft.com> wrote:
> > > > > > >
> > > > > > > Replace the use of rte_atomic.h types and functions, instead use
> > > > > > > GCC supplied C++11 memory model builtins.
> > > > > > >
> > > > > > > This series covers the libraries and drivers that are built on
> Windows.
> > > > > > >
> > > > > > > The code has be converted to use the __atomic builtins but there
> > > > > > > are additional during conversion i notice that there may be some
> > > > > > > issues that need to be addressed.

[...]

> > > > Well, I have some second thought about this series so I did not push
> > > > it to dpdk.org yet.
> > >
> > > Understood. It's very important to have these reviewed well so no
> objection just
> > > hope we can get them reviewed properly soon.
> > >
> > > > Drivers maintainers were not copied so I would like another pair of
> > > > eyes on the series: ideally no /* Note: */ should be left when merging
> > > > those patches.
> > >
> > > The /* Note: */ was explicitly requested by other reviewers as they were
> > > concerned we would lose track of opportunities to weaken ordering after
> > > switching from __sync to __atomic.

This patch series is an important step towards the more flexible C11 atomics, and I consider further optimization "nice to have", not "must have".

So I don't think we should hold back these patches and require of the maintainers to optimize the atomic accesses before. I would rather leave the notes in the code, so they can be optimized by anyone with the required skills and/or testing facilities at a later time.

I agree that it would be ideal if anyone (e.g. the maintainers) can make optimize the affected libraries/drivers in time for the coming release, but they can be separate patches after this series.

> > Note that some of the changes that I checked are in control plane. While it
> is good to optimize those, but the benefits might not be much. The presence of
> SEQ_CST also can act as a note.

I vote against using SEQ_CST as a note. SEQ_CST might be the correct memory order in some locations, so it would require a note in those locations that SEQ_CST has been reviewed and is the optimal memory order there. I would rather have notes where we know that further consideration for optimization is warranted.

If atomics are used in the control plane, the memory order still need to be correct (i.e. not causing failure, which SEQ_CST should assure). So the note should remain, if not reviewed for optimization. A reviewer can add to the note that this is control plane only, so optimization is not important. Alternatively, if those control plane variables don't need to be atomics, they can be replaced by non-atomic types and accesses - such a modification can also be considered an optimization.

PS: If someone spotted an opportunity for optimization anywhere in DPDK, but was unable to implement and/or test it himself, adding a note about it in the source code could be an alternative. On the other hand, such ideas might belong in Bugzilla instead... (Just arguing for keeping the notes. Not trying to broaden the discussion!)


  reply	other threads:[~2023-05-25  7:50 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-17 20:19 [PATCH " Tyler Retzlaff
2023-03-17 20:19 ` [PATCH 1/7] ring: " Tyler Retzlaff
2023-03-17 20:36   ` Tyler Retzlaff
2023-03-17 20:19 ` [PATCH 2/7] stack: " Tyler Retzlaff
2023-03-17 20:19 ` [PATCH 3/7] dma/idxd: " Tyler Retzlaff
2023-03-17 20:19 ` [PATCH 4/7] net/ice: " Tyler Retzlaff
2023-03-17 20:41   ` Tyler Retzlaff
2023-03-17 20:19 ` [PATCH 5/7] net/ixgbe: " Tyler Retzlaff
2023-03-17 20:19 ` [PATCH 6/7] net/null: " Tyler Retzlaff
2023-03-17 20:44   ` Tyler Retzlaff
2023-03-17 20:19 ` [PATCH 7/7] net/ring: " Tyler Retzlaff
2023-03-17 21:42 ` [PATCH 0/7] " Stephen Hemminger
2023-03-17 21:49   ` Tyler Retzlaff
2023-03-22 11:28     ` Morten Brørup
2023-03-22 14:21       ` Tyler Retzlaff
2023-03-22 14:58         ` Morten Brørup
2023-03-22 15:29           ` Tyler Retzlaff
2023-03-22 16:13             ` Morten Brørup
2023-03-22 16:40               ` Honnappa Nagarahalli
2023-03-22 17:07                 ` Morten Brørup
2023-03-22 17:38                   ` Honnappa Nagarahalli
2023-03-22 18:06                     ` Tyler Retzlaff
2023-05-02  3:37                       ` Tyler Retzlaff
2023-05-02  4:31                         ` Honnappa Nagarahalli
2023-03-23 22:34 ` [PATCH v2 " Tyler Retzlaff
2023-03-23 22:34   ` [PATCH v2 1/7] ring: " Tyler Retzlaff
2023-03-23 22:34   ` [PATCH v2 2/7] stack: " Tyler Retzlaff
2023-03-23 22:34   ` [PATCH v2 3/7] dma/idxd: " Tyler Retzlaff
2023-03-23 22:34   ` [PATCH v2 4/7] net/ice: " Tyler Retzlaff
2023-03-23 22:34   ` [PATCH v2 5/7] net/ixgbe: " Tyler Retzlaff
2023-03-23 22:34   ` [PATCH v2 6/7] net/null: " Tyler Retzlaff
2023-03-23 22:34   ` [PATCH v2 7/7] net/ring: " Tyler Retzlaff
2023-03-24  7:07   ` [PATCH v2 0/7] " Morten Brørup
2023-03-23 22:53 ` [PATCH v3 " Tyler Retzlaff
2023-03-23 22:53   ` [PATCH v3 1/7] ring: " Tyler Retzlaff
2023-03-23 22:53   ` [PATCH v3 2/7] stack: " Tyler Retzlaff
2023-05-24 20:08     ` David Marchand
2023-03-23 22:53   ` [PATCH v3 3/7] dma/idxd: " Tyler Retzlaff
2023-05-24 20:09     ` David Marchand
2023-05-25  8:41       ` Bruce Richardson
2023-05-25 13:59         ` Morten Brørup
2023-05-25 12:57     ` Kevin Laatz
2023-03-23 22:53   ` [PATCH v3 4/7] net/ice: " Tyler Retzlaff
2023-05-24 20:10     ` David Marchand
2023-03-23 22:53   ` [PATCH v3 5/7] net/ixgbe: " Tyler Retzlaff
2023-05-24 20:11     ` David Marchand
2023-03-23 22:53   ` [PATCH v3 6/7] net/null: " Tyler Retzlaff
2023-05-24 20:13     ` David Marchand
2023-03-23 22:53   ` [PATCH v3 7/7] net/ring: " Tyler Retzlaff
2023-05-24 20:12     ` David Marchand
2023-05-25  8:44       ` Bruce Richardson
2023-03-24  7:09   ` [PATCH v3 0/7] " Morten Brørup
2023-03-24 19:22     ` Tyler Retzlaff
2023-05-24 12:40   ` David Marchand
2023-05-24 15:47     ` Tyler Retzlaff
2023-05-24 20:06       ` David Marchand
2023-05-24 22:50         ` Tyler Retzlaff
2023-05-24 22:56           ` Honnappa Nagarahalli
2023-05-25  0:02             ` Tyler Retzlaff
2023-05-25  7:50               ` Morten Brørup [this message]
2023-06-02 19:45 ` [PATCH v4 0/6] " Tyler Retzlaff
2023-06-02 19:45   ` [PATCH v4 1/6] stack: " Tyler Retzlaff
2023-06-02 19:45   ` [PATCH v4 2/6] dma/idxd: " Tyler Retzlaff
2023-06-02 19:45   ` [PATCH v4 3/6] net/ice: " Tyler Retzlaff
2023-06-02 19:45   ` [PATCH v4 4/6] net/ixgbe: " Tyler Retzlaff
2023-06-02 19:45   ` [PATCH v4 5/6] net/null: " Tyler Retzlaff
2023-06-02 19:45   ` [PATCH v4 6/6] net/ring: " Tyler Retzlaff
2023-06-05  8:27     ` Olivier Matz
2023-06-06 21:45 ` [PATCH v5 0/6] " Tyler Retzlaff
2023-06-06 21:45   ` [PATCH v5 1/6] stack: " Tyler Retzlaff
2023-06-06 21:45   ` [PATCH v5 2/6] dma/idxd: " Tyler Retzlaff
2023-06-06 21:45   ` [PATCH v5 3/6] net/ice: " Tyler Retzlaff
2023-06-06 21:45   ` [PATCH v5 4/6] net/ixgbe: " Tyler Retzlaff
2023-06-06 21:45   ` [PATCH v5 5/6] net/null: " Tyler Retzlaff
2023-06-06 21:45   ` [PATCH v5 6/6] net/ring: " Tyler Retzlaff
2023-06-09 15:01   ` [PATCH v5 0/6] " David Marchand
2023-06-09 15:13     ` Tyler Retzlaff
2023-06-22 19:59       ` Patrick Robb
2023-06-23  8:53         ` David Marchand
2023-06-23 21:37           ` Tyler Retzlaff
2023-06-28 14:01             ` Patrick Robb
2023-06-28 14:49               ` David Marchand
2023-06-23 21:35         ` Tyler Retzlaff

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=98CBD80474FA8B44BF855DF32C47DC35D87949@smartserver.smartshare.dk \
    --to=mb@smartsharesystems.com \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=Ruifeng.Wang@arm.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=nd@arm.com \
    --cc=roretzla@linux.microsoft.com \
    --cc=stephen@networkplumber.org \
    --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).