Re: [dpdk-dev] [PATCH v3 2/2] ring: use wfe to wait for ring tail update on aarch64
From: Ruifeng Wang <hidden>
Date: 2021-05-07 08:26:16
-----Original Message----- From: Stephen Hemminger <stephen@networkplumber.org> Sent: Thursday, April 29, 2021 11:06 PM To: Ruifeng Wang <redacted> Cc: Honnappa Nagarahalli <redacted>; Konstantin Ananyev [off-list ref]; dev@dpdk.org; david.marchand@redhat.com; thomas@monjalon.net; jerinj@marvell.com; nd [off-list ref]; Gavin Hu [off-list ref]; Steve Capper [off-list ref]; Ola Liljedahl [off-list ref] Subject: Re: [dpdk-dev] [PATCH v3 2/2] ring: use wfe to wait for ring tail update on aarch64 On Thu, 29 Apr 2021 14:35:35 +0000 Ruifeng Wang [off-list ref] wrote:quoted
quoted
-----Original Message----- From: Stephen Hemminger <stephen@networkplumber.org> Sent: Thursday, April 29, 2021 1:17 AM To: Ruifeng Wang <redacted> Cc: Honnappa Nagarahalli <redacted>; Konstantin Ananyev [off-list ref]; dev@dpdk.org; david.marchand@redhat.com; thomas@monjalon.net;jerinj@marvell.com;quoted
quoted
nd [off-list ref]; Gavin Hu [off-list ref]; Steve Capper [off-list ref]; Ola Liljedahl [off-list ref] Subject: Re: [dpdk-dev] [PATCH v3 2/2] ring: use wfe to wait for ring tail update on aarch64 On Sun, 25 Apr 2021 05:56:53 +0000 Ruifeng Wang [off-list ref] wrote:quoted
Instead of polling for tail to be updated, use wfe instruction. Signed-off-by: Gavin Hu <redacted> Signed-off-by: Ruifeng Wang <redacted> Reviewed-by: Steve Capper <redacted> Reviewed-by: Ola Liljedahl <redacted> Reviewed-by: Honnappa Nagarahalli <redacted> Acked-by: Konstantin Ananyev <redacted>Looks ok to me, but it does raise an interesting question. Shouldn't the original code have been using atomic load to look at ht->tail. This another place where "volatile considered harmful" applies.Do you mean 'volatile' should be removed from rte_wait_until_equal_xxxparameters?quoted
I meant that all access to tail should be via C11 atomic builtin. At that point, the volatile on the data structure elements does not matter.
Agreed. If synchronization is ensured by using C11 atomic builtin, 'volatile' on elements can be removed.