<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/hv/connection.c, branch linux-4.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-05-25T13:42:42Z</updated>
<entry>
<title>drivers: hv: vmbus: Increase the time between retries in vmbus_post_msg()</title>
<updated>2017-05-25T13:42:42Z</updated>
<author>
<name>K. Y. Srinivasan</name>
</author>
<published>2017-05-18T17:46:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e917a5e23a87e24931625c344daea834cd2d6f2f'/>
<id>urn:sha1:e917a5e23a87e24931625c344daea834cd2d6f2f</id>
<content type='text'>
Commit c0bb03924f1a ("Drivers: hv: vmbus: Raise retry/wait limits in
vmbus_post_msg()") increased the retry/wait limits of vmbus_post_msg()
to address the new DoS protection policies in WS2016.
Increase the time between retries to make the
code more robust.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Drivers: hv: vmbus: Fix rescind handling</title>
<updated>2017-05-18T14:55:28Z</updated>
<author>
<name>K. Y. Srinivasan</name>
</author>
<published>2017-04-30T23:21:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54a66265d6754b37fb4baf1d970ec88a6225a988'/>
<id>urn:sha1:54a66265d6754b37fb4baf1d970ec88a6225a988</id>
<content type='text'>
Fix the rescind handling. This patch addresses the following rescind
scenario that is currently not handled correctly:

If a rescind were to be received while the offer is still being
peocessed, we will be blocked indefinitely since the rescind message
is handled on the same work element as the offer message. Fix this
issue.

I would like to thank Dexuan Cui &lt;decui@microsoft.com&gt; and
Long Li &lt;longli@microsoft.com&gt; for working with me on this patch.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Drivers: hv: vmbus: Fix error code returned by vmbus_post_msg()</title>
<updated>2017-05-18T14:55:28Z</updated>
<author>
<name>K. Y. Srinivasan</name>
</author>
<published>2017-04-30T23:21:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48f4ccdfc46906627f77fda94d80f2db1bd23ba3'/>
<id>urn:sha1:48f4ccdfc46906627f77fda94d80f2db1bd23ba3</id>
<content type='text'>
ENOBUFS is a more approrpiate error code to be returned
when the hypervisor cannot post the message because of
insufficient buffers. Make the adjustment.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>vmbus: only reschedule tasklet if time limit exceeded</title>
<updated>2017-03-17T06:10:48Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2017-03-05T01:27:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ada6eb11137be0baf846e00fca40fc096ba85a28'/>
<id>urn:sha1:ada6eb11137be0baf846e00fca40fc096ba85a28</id>
<content type='text'>
The change to reschedule tasklet if more data arrives in ring buffer
can cause performance regression if host timing is such that the
next response happens in small window.

Go back to a modified version of the original looping behavior.
If the race occurs in a small time, then loop. But if the tasklet
has been running for a long interval due to flood, then reschedule
the tasklet to allow migration to ksoftirqd.

Signed-off-by: Stephen Hemminger &lt;sthemmin@microsoft.com&gt;
Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>vmbus: add direct isr callback mode</title>
<updated>2017-02-14T18:20:35Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2017-02-12T06:02:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b71e328297a3a578c482fb4814e737a0ec185839'/>
<id>urn:sha1:b71e328297a3a578c482fb4814e737a0ec185839</id>
<content type='text'>
Change the simple boolean batched_reading into a tri-value.
For future NAPI support in netvsc driver, the callback needs to
occur directly in interrupt handler.

Batched mode is also changed to disable host interrupts immediately
in interrupt routine (to avoid unnecessary host signals), and the
tasklet is rescheduled if more data is detected.

Signed-off-by: Stephen Hemminger &lt;sthemmin@microsoft.com&gt;
Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>vmbus: change to per channel tasklet</title>
<updated>2017-02-14T18:20:35Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2017-02-12T06:02:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=631e63a9f346cb657761ae22138f294718696501'/>
<id>urn:sha1:631e63a9f346cb657761ae22138f294718696501</id>
<content type='text'>
Make the event handling tasklet per channel rather than per-cpu.
This allows for better fairness when getting lots of data on the same
cpu.

Signed-off-by: Stephen Hemminger &lt;sthemmin@microsoft.com&gt;
Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>vmbus: put related per-cpu variable together</title>
<updated>2017-02-14T18:20:35Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2017-02-12T06:02:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=37cdd991fac810a727cd285629d1640fcf53cd19'/>
<id>urn:sha1:37cdd991fac810a727cd285629d1640fcf53cd19</id>
<content type='text'>
The hv_context structure had several arrays which were per-cpu
and was allocating small structures (tasklet_struct). Instead use
a single per-cpu array.

Signed-off-by: Stephen Hemminger &lt;sthemmin@microsoft.com&gt;
Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>vmbus: use kernel bitops for traversing interrupt mask</title>
<updated>2017-02-10T14:43:30Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2017-02-06T00:20:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c1bec61fdfcd056df909a712e2a86bbaeb0f942'/>
<id>urn:sha1:5c1bec61fdfcd056df909a712e2a86bbaeb0f942</id>
<content type='text'>
Use standard kernel operations for find first set bit to traverse
the channel bit array. This has added benefit of speeding up
lookup on 64 bit and because it uses find first set instruction.

Signed-off-by: Stephen Hemminger &lt;sthemmin@microsoft.com&gt;
Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Drivers: hv: vmbus: Move the extracting of Hypervisor version information</title>
<updated>2017-01-20T13:48:03Z</updated>
<author>
<name>K. Y. Srinivasan</name>
</author>
<published>2017-01-19T18:51:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8de8af7e0873c4fdac2205327dff922819e16657'/>
<id>urn:sha1:8de8af7e0873c4fdac2205327dff922819e16657</id>
<content type='text'>
As part of the effort to separate out architecture specific code,
extract hypervisor version information in an architecture specific
file.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Drivers: hv: vmbus: Raise retry/wait limits in vmbus_post_msg()</title>
<updated>2017-01-10T20:46:40Z</updated>
<author>
<name>Vitaly Kuznetsov</name>
</author>
<published>2016-12-07T09:16:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c0bb03924f1a80e7f65900e36c8e6b3dc167c5f8'/>
<id>urn:sha1:c0bb03924f1a80e7f65900e36c8e6b3dc167c5f8</id>
<content type='text'>
DoS protection conditions were altered in WS2016 and now it's easy to get
-EAGAIN returned from vmbus_post_msg() (e.g. when we try changing MTU on a
netvsc device in a loop). All vmbus_post_msg() callers don't retry the
operation and we usually end up with a non-functional device or crash.

While host's DoS protection conditions are unknown to me my tests show that
it can take up to 10 seconds before the message is sent so doing udelay()
is not an option, we really need to sleep. Almost all vmbus_post_msg()
callers are ready to sleep but there is one special case:
vmbus_initiate_unload() which can be called from interrupt/NMI context and
we can't sleep there. I'm also not sure about the lonely
vmbus_send_tl_connect_request() which has no in-tree users but its external
users are most likely waiting for the host to reply so sleeping there is
also appropriate.

Signed-off-by: Vitaly Kuznetsov &lt;vkuznets@redhat.com&gt;
Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
