OpenCloudOS-Kernel/net/9p
Venkateswararao Jujjuri (JV) 68da9ba4ee [net/9p]: Introduce basic flow-control for VirtIO transport.
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 <jvrao@linux.vnet.ibm.com>
Reviewed-by: Badari Pulavarty <pbadari@us.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
2011-03-22 16:32:50 -05:00
..
Kconfig 9p: disallow RDMA if RDMA CM isn't available 2009-01-15 16:39:42 -08:00
Makefile [net/9p] Preparation and helper functions for zero copy 2011-03-15 09:57:34 -05:00
client.c net/9p: Convert the in the 9p rpc call path to GFP_NOFS 2011-03-22 15:43:35 -05:00
error.c net/9p: insulate the client against an invalid error code sent by a 9p server 2009-08-17 16:39:54 -05:00
mod.c 9p: consolidate transport structure 2008-10-17 11:04:41 -05:00
protocol.c net/9p: Convert the in the 9p rpc call path to GFP_NOFS 2011-03-22 15:43:35 -05:00
protocol.h 9P2010.L handshake: Remove "dotu" variable 2010-03-05 15:04:42 -06:00
trans_common.c net/9p: Fix compile warning 2011-03-22 15:43:35 -05:00
trans_common.h [net/9p] Add gup/zero_copy support to VirtIO transport layer. 2011-03-15 09:57:35 -05:00
trans_fd.c net/9p: Convert the in the 9p rpc call path to GFP_NOFS 2011-03-22 15:43:35 -05:00
trans_rdma.c net/9p: Convert the in the 9p rpc call path to GFP_NOFS 2011-03-22 15:43:35 -05:00
trans_virtio.c [net/9p]: Introduce basic flow-control for VirtIO transport. 2011-03-22 16:32:50 -05:00
util.c net/9p: Convert the in the 9p rpc call path to GFP_NOFS 2011-03-22 15:43:35 -05:00