<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/hyperv, branch v4.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-02-13T11:04:44Z</updated>
<entry>
<title>hv_netvsc: Restore needed_headroom request</title>
<updated>2016-02-13T11:04:44Z</updated>
<author>
<name>Vitaly Kuznetsov</name>
<email>vkuznets@redhat.com</email>
</author>
<published>2016-02-05T16:29:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=14a03cf80edf3e19953bb744938e48bc9d496d30'/>
<id>urn:sha1:14a03cf80edf3e19953bb744938e48bc9d496d30</id>
<content type='text'>
Commit c0eb454034aa ("hv_netvsc: Don't ask for additional head room in the
skb") got rid of needed_headroom setting for the driver. With the change I
hit the following issue trying to use ptkgen module:

[   57.522021] kernel BUG at net/core/skbuff.c:1128!
[   57.522021] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC
...
[   58.721068] Call Trace:
[   58.721068]  [&lt;ffffffffa0144e86&gt;] netvsc_start_xmit+0x4c6/0x8e0 [hv_netvsc]
...
[   58.721068]  [&lt;ffffffffa02f87fc&gt;] ? pktgen_finalize_skb+0x25c/0x2a0 [pktgen]
[   58.721068]  [&lt;ffffffff814f5760&gt;] ? __netdev_alloc_skb+0xc0/0x100
[   58.721068]  [&lt;ffffffffa02f9907&gt;] pktgen_thread_worker+0x257/0x1920 [pktgen]

Basically, we're calling skb_cow_head(skb, RNDIS_AND_PPI_SIZE) and crash on
    if (skb_shared(skb))
        BUG();

We probably need to restore needed_headroom setting (but shrunk to
RNDIS_AND_PPI_SIZE as we don't need more) to request the required headroom
space. In theory, it should not give us performance penalty.

Signed-off-by: Vitaly Kuznetsov &lt;vkuznets@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Fix book keeping of skb during batching process</title>
<updated>2016-01-25T18:51:53Z</updated>
<author>
<name>Haiyang Zhang</name>
<email>haiyangz@microsoft.com</email>
</author>
<published>2016-01-25T17:49:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c85e4924452ae8225c8829f3fa8a2f7baa34bc5c'/>
<id>urn:sha1:c85e4924452ae8225c8829f3fa8a2f7baa34bc5c</id>
<content type='text'>
Since eliminating send_completion_tid from struct hv_netvsc_packet, we
haven't add proper book keeping for the skb of the batched packet. This
patch fixes this issue and allows the previous skb is properly freed.
Otherwise, a panic may happen.
Thanks to Simon Xiao &lt;sixiao@microsoft.com&gt; for bisecting and analysis.

Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;
Reviewed-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: use skb_get_hash() instead of a homegrown implementation</title>
<updated>2016-01-25T18:51:53Z</updated>
<author>
<name>Vitaly Kuznetsov</name>
<email>vkuznets@redhat.com</email>
</author>
<published>2016-01-25T15:00:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=757647e10e55c01fb7a9c4356529442e316a7c72'/>
<id>urn:sha1:757647e10e55c01fb7a9c4356529442e316a7c72</id>
<content type='text'>
Recent changes to 'struct flow_keys' (e.g commit d34af823ff40 ("net: Add
VLAN ID to flow_keys")) introduced a performance regression in netvsc
driver. Is problem is, however, not the above mentioned commit but the
fact that netvsc_set_hash() function did some assumptions on the struct
flow_keys data layout and this is wrong.

Get rid of netvsc_set_hash() by switching to skb_get_hash(). This change
will also imply switching to Jenkins hash from the currently used Toeplitz
but it seems there is no good excuse for Toeplitz to stay.

Signed-off-by: Vitaly Kuznetsov &lt;vkuznets@redhat.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Fix race condition on Multi-Send Data field</title>
<updated>2015-12-14T05:02:06Z</updated>
<author>
<name>Haiyang Zhang</name>
<email>haiyangz@microsoft.com</email>
</author>
<published>2015-12-10T20:19:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=cf8190e4c26c8ccf87d80793f8f1f7fe150cdf8c'/>
<id>urn:sha1:cf8190e4c26c8ccf87d80793f8f1f7fe150cdf8c</id>
<content type='text'>
In commit 2a04ae8acb14 ("hv_netvsc: remove locking in netvsc_send()"), the
locking for MSD (Multi-Send Data) field was removed. This could cause a
race condition between RNDIS control messages and data packets processing,
because these two types of traffic are not synchronized.
This patch fixes this issue by sending control messages out directly
without reading MSD field.

Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;
Reviewed-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Eliminate vlan_tci from struct hv_netvsc_packet</title>
<updated>2015-12-03T04:43:25Z</updated>
<author>
<name>KY Srinivasan</name>
<email>kys@microsoft.com</email>
</author>
<published>2015-12-02T00:43:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=760d1e36cc16fa6444dd2000ac645455de1ecd51'/>
<id>urn:sha1:760d1e36cc16fa6444dd2000ac645455de1ecd51</id>
<content type='text'>
Eliminate vlan_tci from struct hv_netvsc_packet.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Eliminate status from struct hv_netvsc_packet</title>
<updated>2015-12-03T04:43:25Z</updated>
<author>
<name>KY Srinivasan</name>
<email>kys@microsoft.com</email>
</author>
<published>2015-12-02T00:43:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=10082f98878a9dff1563745f9f1dd9d1ff142700'/>
<id>urn:sha1:10082f98878a9dff1563745f9f1dd9d1ff142700</id>
<content type='text'>
Eliminate status from struct hv_netvsc_packet.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Eliminate xmit_more from struct hv_netvsc_packet</title>
<updated>2015-12-03T04:43:25Z</updated>
<author>
<name>KY Srinivasan</name>
<email>kys@microsoft.com</email>
</author>
<published>2015-12-02T00:43:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bde79be529c43b5a5a877b3e0b93607d22a8b01e'/>
<id>urn:sha1:bde79be529c43b5a5a877b3e0b93607d22a8b01e</id>
<content type='text'>
Eliminate xmit_more from struct hv_netvsc_packet.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Eliminate completion_func from struct hv_netvsc_packet</title>
<updated>2015-12-03T04:43:25Z</updated>
<author>
<name>KY Srinivasan</name>
<email>kys@microsoft.com</email>
</author>
<published>2015-12-02T00:43:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a429bda374a640b05a8f949fed080af7512be49a'/>
<id>urn:sha1:a429bda374a640b05a8f949fed080af7512be49a</id>
<content type='text'>
Eliminate completion_func from struct hv_netvsc_packet.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Eliminate is_data_pkt from struct hv_netvsc_packet</title>
<updated>2015-12-03T04:43:25Z</updated>
<author>
<name>KY Srinivasan</name>
<email>kys@microsoft.com</email>
</author>
<published>2015-12-02T00:43:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=694a9fb0263dddfb07bc490a02e59d6962602fe8'/>
<id>urn:sha1:694a9fb0263dddfb07bc490a02e59d6962602fe8</id>
<content type='text'>
Eliminate is_data_pkt from struct hv_netvsc_packet.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>hv_netvsc: Eliminate send_completion_tid from struct hv_netvsc_packet</title>
<updated>2015-12-03T04:43:25Z</updated>
<author>
<name>KY Srinivasan</name>
<email>kys@microsoft.com</email>
</author>
<published>2015-12-02T00:43:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3a3d9a0a731add5afaafd9c714e7efe11820fe5b'/>
<id>urn:sha1:3a3d9a0a731add5afaafd9c714e7efe11820fe5b</id>
<content type='text'>
Eliminate send_completion_tid from struct hv_netvsc_packet.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
