<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/vhost, branch v3.0.87</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/vhost?h=v3.0.87</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/vhost?h=v3.0.87'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-03-03T22:09:05Z</updated>
<entry>
<title>vhost: fix length for cross region descriptor</title>
<updated>2013-03-03T22:09:05Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2012-11-26T05:57:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=603b86549a4d6928d1059b19df2dfc5d61070533'/>
<id>urn:sha1:603b86549a4d6928d1059b19df2dfc5d61070533</id>
<content type='text'>
commit bd97120fc3d1a11f3124c7c9ba1d91f51829eb85 upstream.

If a single descriptor crosses a region, the
second chunk length should be decremented
by size translated so far, instead it includes
the full descriptor length.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Acked-by: Jason Wang &lt;jasowang@redhat.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>vhost: fix mergeable bufs on BE hosts</title>
<updated>2012-10-31T16:51:36Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2012-10-24T18:37:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=83dab4684482147564c9f3219f58e45d11765875'/>
<id>urn:sha1:83dab4684482147564c9f3219f58e45d11765875</id>
<content type='text'>
commit 910a578f7e9400a78a3b13aba0b4d2df16a2cb05 upstream.

We copy head count to a 16 bit field, this works by chance on LE but on
BE guest gets 0. Fix it up.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Tested-by: Alexander Graf &lt;agraf@suse.de&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>vhost: don't forget to schedule()</title>
<updated>2012-07-16T15:47:51Z</updated>
<author>
<name>Nadav Har'El</name>
<email>nyh@math.technion.ac.il</email>
</author>
<published>2012-02-27T13:07:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=df5d64692d422f7df2e3221a95408b4ccf520fd0'/>
<id>urn:sha1:df5d64692d422f7df2e3221a95408b4ccf520fd0</id>
<content type='text'>
commit d550dda192c1bd039afb774b99485e88b70d7cb8 upstream.

This is a tiny, but important, patch to vhost.

Vhost's worker thread only called schedule() when it had no work to do, and
it wanted to go to sleep. But if there's always work to do, e.g., the guest
is running a network-intensive program like netperf with small message sizes,
schedule() was *never* called. This had several negative implications (on
non-preemptive kernels):

 1. Passing time was not properly accounted to the "vhost" process (ps and
    top would wrongly show it using zero CPU time).

 2. Sometimes error messages about RCU timeouts would be printed, if the
    core running the vhost thread didn't schedule() for a very long time.

 3. Worst of all, a vhost thread would "hog" the core. If several vhost
    threads need to share the same core, typically one would get most of the
    CPU time (and its associated guest most of the performance), while the
    others hardly get any work done.

The trivial solution is to add

	if (need_resched())
		schedule();

After doing every piece of work. This will not do the heavy schedule() all
the time, just when the timer interrupt decided a reschedule is warranted
(so need_resched returns true).

Thanks to Abel Gordon for this patch.

Signed-off-by: Nadav Har'El &lt;nyh@il.ibm.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Cc: Jean Delvare &lt;jdelvare@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>vhost: support event index</title>
<updated>2011-05-30T01:44:15Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2011-05-19T23:10:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8ea8cf89e19aeb596b818ee5f2bec8a8b0586b60'/>
<id>urn:sha1:8ea8cf89e19aeb596b818ee5f2bec8a8b0586b60</id>
<content type='text'>
Support the new event index feature. When acked,
utilize it to reduce the # of interrupts sent to the guest.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>Correct occurrences of</title>
<updated>2011-05-06T16:27:55Z</updated>
<author>
<name>Rob Landley</name>
<email>rob@landley.net</email>
</author>
<published>2011-05-06T16:27:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=61516587513c84ac26e68e3ab008dc6e965d0378'/>
<id>urn:sha1:61516587513c84ac26e68e3ab008dc6e965d0378</id>
<content type='text'>
- Documentation/kvm/ to Documentation/virtual/kvm
- Documentation/uml/ to Documentation/virtual/uml
- Documentation/lguest/ to Documentation/virtual/lguest
throughout the kernel source tree.

Signed-off-by: Rob Landley &lt;rob@landley.net&gt;
Signed-off-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
</content>
</entry>
<entry>
<title>vhost-net: remove unlocked use of receive_queue</title>
<updated>2011-03-13T21:08:19Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2011-03-13T21:00:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=de4d768a428d9de943dd6dc82bcd61742955cb6e'/>
<id>urn:sha1:de4d768a428d9de943dd6dc82bcd61742955cb6e</id>
<content type='text'>
Use of skb_queue_empty(&amp;sock-&gt;sk-&gt;sk_receive_queue)
without taking the sk_receive_queue.lock is unsafe
or useless. Take it out.

Reported-by:  Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>vhost: lock receive queue, not the socket</title>
<updated>2011-03-13T21:08:04Z</updated>
<author>
<name>Jason Wang</name>
<email>jasowang@redhat.com</email>
</author>
<published>2011-01-17T08:11:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=783e3988544b94ff3918666b9f36866ac547fba1'/>
<id>urn:sha1:783e3988544b94ff3918666b9f36866ac547fba1</id>
<content type='text'>
vhost takes a sock lock to try and prevent
the skb from being pulled from the receive queue
after skb_peek.  However this is not the right lock to use for that,
sk_receive_queue.lock is. Fix that up.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>vhost-net: Unify the code of mergeable and big buffer handling</title>
<updated>2011-03-13T15:00:10Z</updated>
<author>
<name>Jason Wang</name>
<email>jasowang@redhat.com</email>
</author>
<published>2011-01-17T08:11:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=94249369e9930276e30087da205349a55478cbb5'/>
<id>urn:sha1:94249369e9930276e30087da205349a55478cbb5</id>
<content type='text'>
Codes duplication were found between the handling of mergeable and big
buffers, so this patch tries to unify them. This could be easily done
by adding a quota to the get_rx_bufs() which is used to limit the
number of buffers it returns (for mergeable buffer, the quota is
simply UIO_MAXIOV, for big buffers, the quota is just 1), and then the
previous handle_rx_mergeable() could be resued also for big buffers.

Signed-off-by: Jason Wang &lt;jasowang@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>vhost-net: check the support of mergeable buffer outside the receive loop</title>
<updated>2011-03-13T14:57:30Z</updated>
<author>
<name>Jason Wang</name>
<email>jasowang@redhat.com</email>
</author>
<published>2011-01-17T08:10:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cfbdab951369f15de890597530076bf0119361be'/>
<id>urn:sha1:cfbdab951369f15de890597530076bf0119361be</id>
<content type='text'>
No need to check the support of mergeable buffer inside the recevie
loop as the whole handle_rx()_xx is in the read critical region.  So
this patch move it ahead of the receiving loop.

Signed-off-by: Jason Wang &lt;jasowang@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>vhost: copy_from_user -&gt; __copy_from_user</title>
<updated>2011-03-08T16:03:05Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2011-03-06T11:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fcc042a2806064ffcaed7a0c5cb710eca0e99108'/>
<id>urn:sha1:fcc042a2806064ffcaed7a0c5cb710eca0e99108</id>
<content type='text'>
copy_from_user is pretty high on perf top profile,
replacing it with __copy_from_user helps.
It's also safe because we do access_ok checks during setup.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
</feed>
