Re: [PATCH v4 3/6] RDMA/i40iw: Eliminate duplicate barriers on weakly-ordered archs

From: Jason Gunthorpe
Date: Tue Mar 20 2018 - 10:56:39 EST


On Mon, Mar 19, 2018 at 10:47:45PM -0400, Sinan Kaya wrote:
> Code includes wmb() followed by writel(). writel() already has a barrier on
> some architectures like arm64.
>
> This ends up CPU observing two barriers back to back before executing the
> register write.
>
> Create a new wrapper function with relaxed write operator. Use the new
> wrapper when a write is following a wmb().
>
> Since code already has an explicit barrier call, changing writel() to
> writel_relaxed().
>
> Signed-off-by: Sinan Kaya <okaya@xxxxxxxxxxxxxx>
> drivers/infiniband/hw/i40iw/i40iw_ctrl.c | 6 ++++--
> drivers/infiniband/hw/i40iw/i40iw_osdep.h | 1 +
> drivers/infiniband/hw/i40iw/i40iw_uk.c | 2 +-
> drivers/infiniband/hw/i40iw/i40iw_utils.c | 11 +++++++++++
> 4 files changed, 17 insertions(+), 3 deletions(-)

The one looks fine

Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx>

Jason