stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Patch "net: qlge: Eliminate duplicate barriers on weakly-ordered archs" has been added to the 4.16-stable tree
       [not found] <15252139793450@kroah.com>
@ 2018-05-01 22:39 ` Sinan Kaya
  2018-05-01 23:03   ` Greg KH
  0 siblings, 1 reply; 2+ messages in thread
From: Sinan Kaya @ 2018-05-01 22:39 UTC (permalink / raw)
  To: gregkh, alexander.levin, davem; +Cc: stable-commits, stable

On 5/1/2018 6:32 PM, gregkh@linuxfoundation.org wrote:
> 
> This is a note to let you know that I've just added the patch titled
> 
>     net: qlge: Eliminate duplicate barriers on weakly-ordered archs
> 
> to the 4.16-stable tree which can be found at:
>     http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> 
> The filename of the patch is:
>      net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch
> and it can be found in the queue-4.16 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@vger.kernel.org> know about it.
> 

I don't think these should be pulled at this moment. There is still more barrier
work to be done and the patch below goes in the wrong direction after discussion
with Linus.

I'm waiting for all architectures to reach to functional parity at the end of 4.17
to pick up from where I left.

There are still few architectures still violating writel() guarantee.

> 
>>>From foo@baz Tue May  1 14:59:17 PDT 2018
> From: Sinan Kaya <okaya@codeaurora.org>
> Date: Sun, 25 Mar 2018 10:39:19 -0400
> Subject: net: qlge: Eliminate duplicate barriers on weakly-ordered archs
> 
> From: Sinan Kaya <okaya@codeaurora.org>
> 
> [ Upstream commit e42d8cee343a545ac2d9557a3b28708bbca2bd31 ]
> 
> 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().
> 
> Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>  drivers/net/ethernet/qlogic/qlge/qlge.h      |   16 ++++++++++++++++
>  drivers/net/ethernet/qlogic/qlge/qlge_main.c |    3 ++-
>  2 files changed, 18 insertions(+), 1 deletion(-)
> 
> --- a/drivers/net/ethernet/qlogic/qlge/qlge.h
> +++ b/drivers/net/ethernet/qlogic/qlge/qlge.h
> @@ -2185,6 +2185,22 @@ static inline void ql_write_db_reg(u32 v
>  }
>  
>  /*
> + * Doorbell Registers:
> + * Doorbell registers are virtual registers in the PCI memory space.
> + * The space is allocated by the chip during PCI initialization.  The
> + * device driver finds the doorbell address in BAR 3 in PCI config space.
> + * The registers are used to control outbound and inbound queues. For
> + * example, the producer index for an outbound queue.  Each queue uses
> + * 1 4k chunk of memory.  The lower half of the space is for outbound
> + * queues. The upper half is for inbound queues.
> + * Caller has to guarantee ordering.
> + */
> +static inline void ql_write_db_reg_relaxed(u32 val, void __iomem *addr)
> +{
> +	writel_relaxed(val, addr);
> +}
> +
> +/*
>   * Shadow Registers:
>   * Outbound queues have a consumer index that is maintained by the chip.
>   * Inbound queues have a producer index that is maintained by the chip.
> --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
> +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
> @@ -2700,7 +2700,8 @@ static netdev_tx_t qlge_send(struct sk_b
>  		tx_ring->prod_idx = 0;
>  	wmb();
>  
> -	ql_write_db_reg(tx_ring->prod_idx, tx_ring->prod_idx_db_reg);
> +	ql_write_db_reg_relaxed(tx_ring->prod_idx, tx_ring->prod_idx_db_reg);
> +	mmiowb();
>  	netif_printk(qdev, tx_queued, KERN_DEBUG, qdev->ndev,
>  		     "tx queued, slot %d, len %d\n",
>  		     tx_ring->prod_idx, skb->len);
> 
> 
> Patches currently in stable-queue which might be from okaya@codeaurora.org are
> 
> queue-4.16/net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch
> 


-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Patch "net: qlge: Eliminate duplicate barriers on weakly-ordered archs" has been added to the 4.16-stable tree
  2018-05-01 22:39 ` Patch "net: qlge: Eliminate duplicate barriers on weakly-ordered archs" has been added to the 4.16-stable tree Sinan Kaya
@ 2018-05-01 23:03   ` Greg KH
  0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2018-05-01 23:03 UTC (permalink / raw)
  To: Sinan Kaya; +Cc: alexander.levin, davem, stable-commits, stable

On Tue, May 01, 2018 at 06:39:06PM -0400, Sinan Kaya wrote:
> On 5/1/2018 6:32 PM, gregkh@linuxfoundation.org wrote:
> > 
> > This is a note to let you know that I've just added the patch titled
> > 
> >     net: qlge: Eliminate duplicate barriers on weakly-ordered archs
> > 
> > to the 4.16-stable tree which can be found at:
> >     http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> > 
> > The filename of the patch is:
> >      net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch
> > and it can be found in the queue-4.16 subdirectory.
> > 
> > If you, or anyone else, feels it should not be added to the stable tree,
> > please let <stable@vger.kernel.org> know about it.
> > 
> 
> I don't think these should be pulled at this moment. There is still more barrier
> work to be done and the patch below goes in the wrong direction after discussion
> with Linus.
> 
> I'm waiting for all architectures to reach to functional parity at the end of 4.17
> to pick up from where I left.
> 
> There are still few architectures still violating writel() guarantee.

Fair enough, thanks for the information, I'll drop this now.

greg k-h

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-05-01 23:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <15252139793450@kroah.com>
2018-05-01 22:39 ` Patch "net: qlge: Eliminate duplicate barriers on weakly-ordered archs" has been added to the 4.16-stable tree Sinan Kaya
2018-05-01 23:03   ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).