[v2,0/5] fix and optimize barriers usage with some PMDs
mbox series

Message ID 1568633238-47888-1-git-send-email-gavin.hu@arm.com
Headers show
Series
  • fix and optimize barriers usage with some PMDs
Related show

Message

Gavin Hu Sept. 16, 2019, 11:27 a.m. UTC
DPDK has well-defined barriers, such as CIO barriers and IO barriers.

X86, as a strong ordering model, implements the barriers as compiler
barriers, but on aarch64, as a weak memory ordering model, has fine
grained barriers. Using correct while as relaxed as possible barriers
makes a perf difference.

Upon investigation on a batch of PMDs and it was found that the barriers
are not always used correctly or relaxedly enough. 

This series of patches is to optimize the barrier usage with some selected
PMDs and aim at best performance on all arches/platforms. 

More PMDs may come next to this series but it takes time.

Gavin Hu (5):
  net/i40e: use relaxed and remove duplicate barrier
  net/ice: use relaxed and remove duplicate barrier
  net/bnxt: remove duplicate barrier
  net/bnxt: replace with cio barrier for doorbell resp
  net/bnxt: enforce io barrier for doorbell command

 drivers/net/bnxt/bnxt_hwrm.c | 11 +++++++----
 drivers/net/i40e/i40e_rxtx.c | 12 +++---------
 drivers/net/ice/ice_rxtx.c   |  6 ------
 3 files changed, 10 insertions(+), 19 deletions(-)

Comments

Ferruh Yigit Oct. 2, 2019, 5:41 p.m. UTC | #1
On 9/16/2019 12:27 PM, Gavin Hu wrote:
> DPDK has well-defined barriers, such as CIO barriers and IO barriers.
> 
> X86, as a strong ordering model, implements the barriers as compiler
> barriers, but on aarch64, as a weak memory ordering model, has fine
> grained barriers. Using correct while as relaxed as possible barriers
> makes a perf difference.
> 
> Upon investigation on a batch of PMDs and it was found that the barriers
> are not always used correctly or relaxedly enough. 
> 
> This series of patches is to optimize the barrier usage with some selected
> PMDs and aim at best performance on all arches/platforms. 
> 
> More PMDs may come next to this series but it takes time.
> 
> Gavin Hu (5):
>   net/i40e: use relaxed and remove duplicate barrier
>   net/ice: use relaxed and remove duplicate barrier
>   net/bnxt: remove duplicate barrier
>   net/bnxt: replace with cio barrier for doorbell resp
>   net/bnxt: enforce io barrier for doorbell command

Series applied to dpdk-next-net/master, thanks.