From: "Zhang, Qi Z" <qi.z.zhang@intel.com>
To: Lance Richardson <lance.richardson@broadcom.com>
Cc: Joyce Kong <joyce.kong@arm.com>,
"Xing, Beilei" <beilei.xing@intel.com>,
"ruifeng.wang@arm.com" <ruifeng.wang@arm.com>,
"honnappa.nagarahalli@arm.com" <honnappa.nagarahalli@arm.com>,
"Richardson, Bruce" <bruce.richardson@intel.com>,
"Zhang, Helin" <helin.zhang@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"stable@dpdk.org" <stable@dpdk.org>, "nd@arm.com" <nd@arm.com>
Subject: Re: [dpdk-dev] [PATCH v3 2/2] net/i40e: replace SMP barrier with thread fence
Date: Thu, 8 Jul 2021 14:26:11 +0000 [thread overview]
Message-ID: <478df4d4cc9b472aa4cd158cee0ee0c6@intel.com> (raw)
In-Reply-To: <CADyeNEDTB4-KMzarcnuPPd2JQVe41Cz62sJ-MidzJ=jbj4wOQQ@mail.gmail.com>
> -----Original Message-----
> From: Lance Richardson <lance.richardson@broadcom.com>
> Sent: Thursday, July 8, 2021 9:51 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Joyce Kong <joyce.kong@arm.com>; Xing, Beilei <beilei.xing@intel.com>;
> ruifeng.wang@arm.com; honnappa.nagarahalli@arm.com; Richardson, Bruce
> <bruce.richardson@intel.com>; Zhang, Helin <helin.zhang@intel.com>;
> dev@dpdk.org; stable@dpdk.org; nd@arm.com
> Subject: Re: [dpdk-dev] [PATCH v3 2/2] net/i40e: replace SMP barrier with
> thread fence
>
> On Thu, Jul 8, 2021 at 8:09 AM Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: Joyce Kong <joyce.kong@arm.com>
> > > Sent: Tuesday, July 6, 2021 2:54 PM
> > > To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>;
> > > ruifeng.wang@arm.com; honnappa.nagarahalli@arm.com; Richardson,
> Bruce
> > > <bruce.richardson@intel.com>; Zhang, Helin <helin.zhang@intel.com>
> > > Cc: dev@dpdk.org; stable@dpdk.org; nd@arm.com
> > > Subject: [PATCH v3 2/2] net/i40e: replace SMP barrier with thread fence
> > >
> > > Simply replace the SMP barrier with atomic thread fence for i40e hw ring
> sacn,
> > > if there is no synchronization point.
> > >
> > > Signed-off-by: Joyce Kong <joyce.kong@arm.com>
> > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > ---
> > > drivers/net/i40e/i40e_rxtx.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index
> > > 9aaabfd92..86e2f083e 100644
> > > --- a/drivers/net/i40e/i40e_rxtx.c
> > > +++ b/drivers/net/i40e/i40e_rxtx.c
> > > @@ -482,7 +482,8 @@ i40e_rx_scan_hw_ring(struct i40e_rx_queue *rxq)
> > >
> I40E_RXD_QW1_STATUS_SHIFT;
> > > }
> > >
> > > - rte_smp_rmb();
> > > + /* This barrier is to order loads of different words in the
> descriptor */
> > > + rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
> >
> > Now for x86, you actually replace a compiler barrier with a memory fence,
> this may have potential performance impact which need additional resource to
> investigate
>
> No memory fence instruction is generated for
> __ATOMIC_ACQUIRE on x86 for any version of gcc
> or clang that I've tried, based on experiments here:
>
> https://godbolt.org/z/Yxr1vGhKP
Nice tool!
I try to write some dummy code combined with or without __atomic_thread_fence(__ATOMIC_ACQUIRE)
but I didn't see any difference of the generated assembly code, does that means __atomic_thread_fence(__ATOMIC_ACQUIRE) just does nothing on x86?
next prev parent reply other threads:[~2021-07-08 14:26 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-04 7:34 [dpdk-dev] [PATCH v1] net/i40e: remove the SMP barrier in HW scanning func Joyce Kong
2021-06-04 16:12 ` Honnappa Nagarahalli
2021-06-06 14:17 ` Zhang, Qi Z
2021-06-06 18:33 ` Honnappa Nagarahalli
2021-06-07 14:55 ` Zhang, Qi Z
2021-06-07 21:36 ` Honnappa Nagarahalli
2021-06-15 6:30 ` Joyce Kong
2021-06-16 13:29 ` Zhang, Qi Z
2021-06-16 13:37 ` Bruce Richardson
2021-06-16 20:26 ` Honnappa Nagarahalli
2021-06-23 8:43 ` [dpdk-dev] [PATCH v2] net/i40e: add logic of processing continuous DD bits for Arm Joyce Kong
2021-06-30 1:14 ` Honnappa Nagarahalli
2021-07-05 3:41 ` Joyce Kong
2021-07-06 6:54 ` [dpdk-dev] [PATCH v3 0/2] fixes for i40e hw scan ring Joyce Kong
2021-07-06 6:54 ` [dpdk-dev] [PATCH v3 1/2] net/i40e: add logic of processing continuous DD bits for Arm Joyce Kong
2021-07-09 3:05 ` Zhang, Qi Z
2021-07-06 6:54 ` [dpdk-dev] [PATCH v3 2/2] net/i40e: replace SMP barrier with thread fence Joyce Kong
2021-07-08 12:09 ` Zhang, Qi Z
2021-07-08 13:51 ` Lance Richardson
2021-07-08 14:26 ` Zhang, Qi Z [this message]
2021-07-08 14:44 ` Honnappa Nagarahalli
2021-07-13 0:46 ` Zhang, Qi Z
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=478df4d4cc9b472aa4cd158cee0ee0c6@intel.com \
--to=qi.z.zhang@intel.com \
--cc=beilei.xing@intel.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=helin.zhang@intel.com \
--cc=honnappa.nagarahalli@arm.com \
--cc=joyce.kong@arm.com \
--cc=lance.richardson@broadcom.com \
--cc=nd@arm.com \
--cc=ruifeng.wang@arm.com \
--cc=stable@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).