<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/sfc/tx.c, branch linux-4.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2015-12-09T19:34:08Z</updated>
<entry>
<title>sfc: push partner queue for skb-&gt;xmit_more</title>
<updated>2015-12-09T19:34:08Z</updated>
<author>
<name>Martin Habets</name>
<email>mhabets@solarflare.com</email>
</author>
<published>2015-11-02T12:51:31Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c555478720e688d9b9fda6afb51253fc9d3f71c6'/>
<id>urn:sha1:c555478720e688d9b9fda6afb51253fc9d3f71c6</id>
<content type='text'>
[ Upstream commit b2663a4f30e85ec606b806f5135413e6d5c78d1e ]

When the IP stack passes SKBs the sfc driver puts them in 2 different TX
queues (called partners), one for checksummed and one for not checksummed.
If the SKB has xmit_more set the driver will delay pushing the work to the
NIC.

When later it does decide to push the buffers this patch ensures it also
pushes the partner queue, if that also has any delayed work. Before this
fix the work in the partner queue would be left for a long time and cause
a netdev watchdog.

Fixes: 70b33fb ("sfc: add support for skb-&gt;xmit_more")
Reported-by: Jianlin Shi &lt;jishi@redhat.com&gt;
Signed-off-by: Martin Habets &lt;mhabets@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sfc: Report TX completions to BQL after all TX events in interrupt</title>
<updated>2015-07-09T07:00:40Z</updated>
<author>
<name>Peter Dunning</name>
<email>pdunning@solarflare.com</email>
</author>
<published>2015-07-08T09:05:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c936835c1ec6f871f32c9b87a7708700320075b3'/>
<id>urn:sha1:c936835c1ec6f871f32c9b87a7708700320075b3</id>
<content type='text'>
The limit for BQL is updated each time we call
netdev_tx_completed_queue.
Without this patch the BQL limit was updated for every TX event we
see.
The issue was that this only updated the limit to handle the data
we complete in two events as the first event wouldn't show that
enough traffic had been processed between them.

This was OK when interrupt moderation was off but not when it was
on as more data had to be completed in a single interrupt.

The patch changes this so that we do report the completion to BQL
only when all the TX events in the interrupt have been processed.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: remove incorrect EFX_BUG_ON_PARANOID check</title>
<updated>2014-10-22T16:51:16Z</updated>
<author>
<name>Jon Cooper</name>
<email>jcooper@solarflare.com</email>
</author>
<published>2014-10-21T13:50:29Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8fc963515e893867330dec87464e9edc5204c024'/>
<id>urn:sha1:8fc963515e893867330dec87464e9edc5204c024</id>
<content type='text'>
write_count and insert_count can wrap around, making &gt; check invalid.

Fixes: 70b33fb0ddec827cbbd14cdc664fc27b2ef4a6b6 ("sfc: add support for
 skb-&gt;xmit_more").

Signed-off-by: Edward Cree &lt;ecree@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: add support for skb-&gt;xmit_more</title>
<updated>2014-10-18T03:47:32Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree@solarflare.com</email>
</author>
<published>2014-10-17T14:32:25Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=70b33fb0ddec827cbbd14cdc664fc27b2ef4a6b6'/>
<id>urn:sha1:70b33fb0ddec827cbbd14cdc664fc27b2ef4a6b6</id>
<content type='text'>
Don't ring the doorbell, and don't do PIO.  This will also prevent
 TX Push, because there will be more than one buffer waiting when
 the doorbell is rung.

Signed-off-by: Edward Cree &lt;ecree@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Convert the normal transmit complete path to dev_consume_skb_any()</title>
<updated>2014-09-10T00:33:56Z</updated>
<author>
<name>Rick Jones</name>
<email>rick.jones2@hp.com</email>
</author>
<published>2014-09-09T21:43:27Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4ef6dae4ba0fc074eca69157aa29fe59b22f812c'/>
<id>urn:sha1:4ef6dae4ba0fc074eca69157aa29fe59b22f812c</id>
<content type='text'>
Convert the normal transmit completion path from dev_kfree_skb_any()
to dev_consume_skb_any() to help keep dropped packet profiling
meaningful.

Signed-off-by: Rick Jones &lt;rick.jones2@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Use __iowrite64_copy instead of a slightly different local function</title>
<updated>2014-07-29T22:30:29Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2014-07-27T02:14:39Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4984c23735132790e8f2dfdd35849dba3bd7264f'/>
<id>urn:sha1:4984c23735132790e8f2dfdd35849dba3bd7264f</id>
<content type='text'>
__iowrite64_copy() isn't quite the same as efx_memcpy_64(), but
it looks close enough:

- The length is in units of qwords not bytes
- It never byte-swaps, but that doesn't make a difference now as PIO
  is only enabled for x86_64
- It doesn't include any memory barriers, but that's OK as there is a
  barrier just before pushing the doorbell
- mlx4_en uses it for the same purpose

Compile-tested only.

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Acked-by: Edward Cree &lt;ecree@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Add per-queue statistics in ethtool</title>
<updated>2014-07-17T23:48:36Z</updated>
<author>
<name>Andrew Rybchenko</name>
<email>Andrew.Rybchenko@oktetlabs.ru</email>
</author>
<published>2014-07-17T11:10:43Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8ccf3800dbdeaf26bcdefa471c9c8e0da7e6ec7a'/>
<id>urn:sha1:8ccf3800dbdeaf26bcdefa471c9c8e0da7e6ec7a</id>
<content type='text'>
Implement per channel software TX and RX packet counters
accessed as ethtool statistics.

This allows confirmation with MAC statistics.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: PIO:Restrict to 64bit arch and use 64-bit writes.</title>
<updated>2014-06-11T22:36:21Z</updated>
<author>
<name>Jon Cooper</name>
<email>jcooper@solarflare.com</email>
</author>
<published>2014-06-11T13:33:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=daf37b556e437ec1ea1a597dcfeff338068380e1'/>
<id>urn:sha1:daf37b556e437ec1ea1a597dcfeff338068380e1</id>
<content type='text'>
Fixes:ee45fd92c739
("sfc: Use TX PIO for sufficiently small packets")

The linux net driver uses memcpy_toio() in order to copy into
the PIO buffers.
Even on a 64bit machine this causes 32bit accesses to a write-
combined memory region.
There are hardware limitations that mean that only 64bit
naturally aligned accesses are safe in all cases.
Due to being write-combined memory region two 32bit accesses
may be coalesced to form a 64bit non 64bit aligned access.
Solution was to open-code the memory copy routines using pointers
and to only enable PIO for x86_64 machines.

Not tested on platforms other than x86_64 because this patch
disables the PIO feature on other platforms.
Compile-tested on x86 to ensure that works.

The WARN_ON_ONCE() code in the previous version of this patch
has been moved into the internal sfc debug driver as the
assertion was unnecessary in the upstream kernel code.

This bug fix applies to v3.13 and v3.14 stable branches.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Rename 'use_options' variable in tso_start() to clearer 'use_opt_desc'</title>
<updated>2014-02-12T22:53:35Z</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2014-02-12T18:59:41Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=93413f5058aa129bd6134b3176633a5ce198567b'/>
<id>urn:sha1:93413f5058aa129bd6134b3176633a5ce198567b</id>
<content type='text'>
Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Replace TSOH_OFFSET with the equivalent NET_IP_ALIGN</title>
<updated>2014-02-12T22:53:34Z</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2014-02-12T18:58:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0bdadad16608a69defe0b64745a0a6a2edc8e012'/>
<id>urn:sha1:0bdadad16608a69defe0b64745a0a6a2edc8e012</id>
<content type='text'>
If CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is defined then NET_IP_ALIGN
will be defined as 0, so this macro is redundant.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
