1
linux/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
..
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
Kconfig
Makefile [net/9p] Preparation and helper functions for zero copy 2011-03-15 09:57:34 -05:00
mod.c
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
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