• M
    vhost-net: extend device allocation to vmalloc · 23cc5a99
    Michael S. Tsirkin 提交于
    Michael Mueller provided a patch to reduce the size of
    vhost-net structure as some allocations could fail under
    memory pressure/fragmentation. We are still left with
    high order allocations though.
    
    This patch is handling the problem at the core level, allowing
    vhost structures to use vmalloc() if kmalloc() failed.
    
    As vmalloc() adds overhead on a critical network path, add __GFP_REPEAT
    to kzalloc() flags to do this fallback only when really needed.
    
    People are still looking at cleaner ways to handle the problem
    at the API level, probably passing in multiple iovecs.
    This hack seems consistent with approaches
    taken since then by drivers/vhost/scsi.c and net/core/dev.c
    
    Based on patch by Romain Francoise.
    
    Cc: Michael Mueller <mimu@linux.vnet.ibm.com>
    Signed-off-by: NRomain Francoise <romain@orebokech.com>
    Acked-by: NMichael S. Tsirkin <mst@redhat.com>
    23cc5a99
net.c 28.3 KB