<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/9p/trans_virtio.c, branch v3.2.33</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>fs/9p: Update zero-copy implementation in 9p</title>
<updated>2011-10-24T16:13:11+00:00</updated>
<author>
<name>Aneesh Kumar K.V</name>
<email>aneesh.kumar@linux.vnet.ibm.com</email>
</author>
<published>2011-08-16T05:20:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=abfa034e4b8ed0046fa589769e9840af645bc4ba'/>
<id>abfa034e4b8ed0046fa589769e9840af645bc4ba</id>
<content type='text'>
* remove lot of update to different data structure
* add a seperate callback for zero copy request.
* above makes non zero copy code path simpler
* remove conditionalizing TREAD/TREADDIR/TWRITE in the zero copy path
* Fix the dotu p9_check_errors with zero copy. Add sufficient doc around
* Add support for both in and output buffers in zero copy callback
* pin and unpin pages in the same context
* use helpers instead of defining page offset and rest of page ourself
* Fix mem leak in p9_check_errors
* Remove 'E' and 'F' in p9pdu_vwritef

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* remove lot of update to different data structure
* add a seperate callback for zero copy request.
* above makes non zero copy code path simpler
* remove conditionalizing TREAD/TREADDIR/TWRITE in the zero copy path
* Fix the dotu p9_check_errors with zero copy. Add sufficient doc around
* Add support for both in and output buffers in zero copy callback
* pin and unpin pages in the same context
* use helpers instead of defining page offset and rest of page ourself
* Fix mem leak in p9_check_errors
* Remove 'E' and 'F' in p9pdu_vwritef

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net/9p: Fix kernel crash with msize 512K</title>
<updated>2011-09-06T13:17:15+00:00</updated>
<author>
<name>Aneesh Kumar K.V</name>
<email>aneesh.kumar@linux.vnet.ibm.com</email>
</author>
<published>2011-08-17T16:56:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b49d8b5d7007a673796f3f99688b46931293873e'/>
<id>b49d8b5d7007a673796f3f99688b46931293873e</id>
<content type='text'>
With msize equal to 512K (PAGE_SIZE * VIRTQUEUE_NUM), we hit multiple
crashes. This patch fix those.

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With msize equal to 512K (PAGE_SIZE * VIRTQUEUE_NUM), we hit multiple
crashes. This patch fix those.

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>VirtIO can transfer VIRTQUEUE_NUM of pages.</title>
<updated>2011-07-23T14:32:48+00:00</updated>
<author>
<name>jvrao</name>
<email>jvrao@linux.vnet.ibm.com</email>
</author>
<published>2011-06-30T23:18:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7f781679dd596c8abde8336b4d0d166d6a4aad04'/>
<id>7f781679dd596c8abde8336b4d0d166d6a4aad04</id>
<content type='text'>
Signed-off-by: Venkateswararao Jujjuri "&lt;jvrao@linux.vnet.ibm.com&gt;
Reviewed-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Venkateswararao Jujjuri "&lt;jvrao@linux.vnet.ibm.com&gt;
Reviewed-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix the size of receive buffer packing onto VirtIO ring.</title>
<updated>2011-07-23T14:32:47+00:00</updated>
<author>
<name>jvrao</name>
<email>jvrao@linux.vnet.ibm.com</email>
</author>
<published>2011-06-30T23:18:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=114e6f3a5ede73d5b56e145f04680c61c3dd67c4'/>
<id>114e6f3a5ede73d5b56e145f04680c61c3dd67c4</id>
<content type='text'>
Signed-off-by: Venkateswararao Jujjuri "&lt;jvrao@linux.vnet.ibm.com&gt;
Reviewed-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Venkateswararao Jujjuri "&lt;jvrao@linux.vnet.ibm.com&gt;
Reviewed-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>9p: Fix sparse error</title>
<updated>2011-04-15T20:26:14+00:00</updated>
<author>
<name>Aneesh Kumar K.V</name>
<email>aneesh.kumar@linux.vnet.ibm.com</email>
</author>
<published>2011-03-24T17:44:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bd8c8ade6b6f109bc3dce14a8d12013f27f2a590'/>
<id>bd8c8ade6b6f109bc3dce14a8d12013f27f2a590</id>
<content type='text'>
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[net/9p]: Introduce basic flow-control for VirtIO transport.</title>
<updated>2011-03-22T21:32:50+00:00</updated>
<author>
<name>Venkateswararao Jujjuri (JV)</name>
<email>jvrao@linux.vnet.ibm.com</email>
</author>
<published>2011-03-18T22:49:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=68da9ba4eeadae86ad42e52b80822fbd56971267'/>
<id>68da9ba4eeadae86ad42e52b80822fbd56971267</id>
<content type='text'>
Recent zerocopy work in the 9P VirtIO transport maps and pins
user buffers into kernel memory for the server to work on them.
Since the user process can initiate this kind of pinning with a simple
read/write call, thousands of IO threads initiated by the user process can
hog the system resources and could result into denial of service.

This patch introduces flow control to avoid that extreme scenario.

The ceiling limit to avoid denial of service attacks is set to relatively
high (nr_free_pagecache_pages()/4) so that it won't interfere with
regular usage, but can step in extreme cases to limit the total system
hang. Since we don't have a global structure to accommodate this variable,
I choose the virtio_chan as the home for this.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Reviewed-by: Badari Pulavarty &lt;pbadari@us.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent zerocopy work in the 9P VirtIO transport maps and pins
user buffers into kernel memory for the server to work on them.
Since the user process can initiate this kind of pinning with a simple
read/write call, thousands of IO threads initiated by the user process can
hog the system resources and could result into denial of service.

This patch introduces flow control to avoid that extreme scenario.

The ceiling limit to avoid denial of service attacks is set to relatively
high (nr_free_pagecache_pages()/4) so that it won't interfere with
regular usage, but can step in extreme cases to limit the total system
hang. Since we don't have a global structure to accommodate this variable,
I choose the virtio_chan as the home for this.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Reviewed-by: Badari Pulavarty &lt;pbadari@us.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[net/9p] Don't re-pin pages on retrying virtqueue_add_buf().</title>
<updated>2011-03-22T21:32:48+00:00</updated>
<author>
<name>Venkateswararao Jujjuri (JV)</name>
<email>jvrao@linux.vnet.ibm.com</email>
</author>
<published>2011-03-14T21:22:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=316ad5501c2098cb2a2a25ed77a0421f1671411c'/>
<id>316ad5501c2098cb2a2a25ed77a0421f1671411c</id>
<content type='text'>
Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[net/9p] Set the condition just before waking up.</title>
<updated>2011-03-22T21:32:47+00:00</updated>
<author>
<name>Venkateswararao Jujjuri (JV)</name>
<email>jvrao@linux.vnet.ibm.com</email>
</author>
<published>2011-03-14T21:12:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a01a984035ea799b14aa5e874dcaeb122f09c4b4'/>
<id>a01a984035ea799b14aa5e874dcaeb122f09c4b4</id>
<content type='text'>
Given that the sprious wake-ups are common, we need to move the
condition setting right next to the wake_up().  After setting the condition
to req-&gt;status = REQ_STATUS_RCVD, sprious wakeups may cause the
virtqueue back on the free list for someone else to use.
This may result in kernel panic while relasing the pinned pages
in p9_release_req_pages().

Also rearranged the while loop in req_done() for better redability.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Given that the sprious wake-ups are common, we need to move the
condition setting right next to the wake_up().  After setting the condition
to req-&gt;status = REQ_STATUS_RCVD, sprious wakeups may cause the
virtqueue back on the free list for someone else to use.
This may result in kernel panic while relasing the pinned pages
in p9_release_req_pages().

Also rearranged the while loop in req_done() for better redability.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[net/9p] unconditional wake_up to proc waiting for space on VirtIO ring</title>
<updated>2011-03-22T21:32:19+00:00</updated>
<author>
<name>Venkateswararao Jujjuri (JV)</name>
<email>jvrao@linux.vnet.ibm.com</email>
</author>
<published>2011-03-08T23:34:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=53bda3e5b4e91763224ecb7d05dab94d281fd41d'/>
<id>53bda3e5b4e91763224ecb7d05dab94d281fd41d</id>
<content type='text'>
Process may wait to get space on VirtIO ring to send a transaction to
VirtFS server. Current code just does a conditional wake_up() which
means only one process will be woken up even if multiple processes
are waiting.

This fix makes the wake_up unconditional. Hence we won't have any
processes waiting for-ever.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Process may wait to get space on VirtIO ring to send a transaction to
VirtFS server. Current code just does a conditional wake_up() which
means only one process will be woken up even if multiple processes
are waiting.

This fix makes the wake_up unconditional. Hence we won't have any
processes waiting for-ever.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[net/9p] Add preferences to transport layer.</title>
<updated>2011-03-15T14:57:35+00:00</updated>
<author>
<name>Venkateswararao Jujjuri (JV)</name>
<email>jvrao@linux.vnet.ibm.com</email>
</author>
<published>2011-02-06T20:08:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6f69c395cefb26ebba2c9bb725296a3a4a9200ec'/>
<id>6f69c395cefb26ebba2c9bb725296a3a4a9200ec</id>
<content type='text'>
This patch adds preferences field to the p9_trans_module.
Through this, now transport layer can express its preference about the
payload. i.e if payload neds to be part of the PDU or it prefers it
to be sent sepearetly so that the transport layer can handle it in
a better way.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds preferences field to the p9_trans_module.
Through this, now transport layer can express its preference about the
payload. i.e if payload neds to be part of the PDU or it prefers it
to be sent sepearetly so that the transport layer can handle it in
a better way.

Signed-off-by: Venkateswararao Jujjuri &lt;jvrao@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
