Re: [dpdk-dev] [PATCH v5 8/8] event/opdl: use new API to save cycles on aarch64

2019-09-12 Thread Jerin Jacob
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

2019-09-12 Thread Gavin Hu
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