Thread (28 messages) 28 messages, 4 authors, 2018-03-16

[PATCH 7/7] ixgbevf: eliminate duplicate barriers on weakly-ordered archs

flat view

From: Alexander Duyck <hidden>
Date: 2018-03-14 21:49:04
Also in: intel-wired-lan, linux-arm-msm, lkml, netdev

On Wed, Mar 14, 2018 at 5:13 AM,  [off-list ref] wrote:
On 2018-03-14 01:08, Timur Tabi wrote:
quoted
On 3/13/18 10:20 PM, Sinan Kaya wrote:
quoted
+/* Assumes caller has executed a write barrier to order memory and
device
+ * requests.
+ */
  static inline void ixgbevf_write_tail(struct ixgbevf_ring *ring, u32
value)
  {
-       writel(value, ring->tail);
+       writel_relaxed(value, ring->tail);
  }

Why not put the wmb() in this function, or just get rid of the wmb()
in the rest of the file and keep this as writel?  That way, you can
avoid the comment and the risk that comes with it.


Sure, both solutions will work. I want to see what the maintainer prefers. I
can repost accordingly.
Actually I would argue this whole patch set is pointless. For starters
why is it we are only updating the Intel Ethernet drivers here? This
seems like something that is going to impact the whole kernel tree
since many of us have been writing drivers for some time assuming x86
style behavior.

It doesn't make sense to be optimizing the drivers for one subset of
architectures. The scope of the work needed to update the drivers for
this would be ridiculous. Also I don't see how this could be expected
to work on any other architecture when we pretty much need to have a
wmb() before calling the writel on x86 to deal with accesses between
coherent and non-coherent memory. It seems to me more like somebody
added what they considered to be an optimization somewhere that is a
workaround for a poorly written driver. Either that or the barrier is
serving a different purpose then the one we were using.

It would make more sense to put in the effort making writel and
writel_relaxed consistent between architectures before we go through
and start modifying driver code to support different architectures.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help