Re: [dpdk-dev] [PATCH v5 8/8] event/opdl: use new API to save cycles on aarch64
On Thu, Sep 12, 2019 at 4:57 PM Gavin Hu wrote: > > Use the new API to wait in low power state instead of continuous > polling to save CPU cycles and power. > > Signed-off-by: Gavin Hu > Reviewed-by: Ruifeng Wang Reviewed-by: Jerin Jacob > --- > drivers/event/opdl/opdl_ring.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/event/opdl/opdl_ring.c b/drivers/event/opdl/opdl_ring.c > index e8b29e2..f446fa3 100644 > --- a/drivers/event/opdl/opdl_ring.c > +++ b/drivers/event/opdl/opdl_ring.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include > > #include "opdl_ring.h" > #include "opdl_log.h" > @@ -475,9 +476,7 @@ opdl_ring_input_multithread(struct opdl_ring *t, const > void *entries, > /* If another thread started inputting before this one, but hasn't > * finished, we need to wait for it to complete to update the tail. > */ > - while (unlikely(__atomic_load_n(&s->shared.tail, __ATOMIC_ACQUIRE) != > - old_head)) > - rte_pause(); > + rte_wait_until_equal_acquire_32(&s->shared.tail, old_head); > > __atomic_store_n(&s->shared.tail, old_head + num_entries, > __ATOMIC_RELEASE); > -- > 2.7.4 >
[dpdk-dev] [PATCH v5 8/8] event/opdl: use new API to save cycles on aarch64
Use the new API to wait in low power state instead of continuous polling to save CPU cycles and power. Signed-off-by: Gavin Hu Reviewed-by: Ruifeng Wang --- drivers/event/opdl/opdl_ring.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/event/opdl/opdl_ring.c b/drivers/event/opdl/opdl_ring.c index e8b29e2..f446fa3 100644 --- a/drivers/event/opdl/opdl_ring.c +++ b/drivers/event/opdl/opdl_ring.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "opdl_ring.h" #include "opdl_log.h" @@ -475,9 +476,7 @@ opdl_ring_input_multithread(struct opdl_ring *t, const void *entries, /* If another thread started inputting before this one, but hasn't * finished, we need to wait for it to complete to update the tail. */ - while (unlikely(__atomic_load_n(&s->shared.tail, __ATOMIC_ACQUIRE) != - old_head)) - rte_pause(); + rte_wait_until_equal_acquire_32(&s->shared.tail, old_head); __atomic_store_n(&s->shared.tail, old_head + num_entries, __ATOMIC_RELEASE); -- 2.7.4