• Venkateswararao Jujjuri (JV)'s avatar
    [net/9p]: Introduce basic flow-control for VirtIO transport. · 68da9ba4
    Venkateswararao Jujjuri (JV) authored
    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: default avatarVenkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
    Reviewed-by: default avatarBadari Pulavarty <pbadari@us.ibm.com>
    Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
    68da9ba4
trans_virtio.c 15.7 KB