• Rusty Russell's avatar
    virtio: Recycle unused recv buffer pages for large skbs in net driver · fb6813f4
    Rusty Russell authored
    If we hack the virtio_net driver to always allocate full-sized (64k+)
    skbuffs, the driver slows down (lguest numbers):
    
      Time to receive 1GB (small buffers): 10.85 seconds
      Time to receive 1GB (64k+ buffers): 24.75 seconds
    
    Of course, large buffers use up more space in the ring, so we increase
    that from 128 to 2048:
    
      Time to receive 1GB (64k+ buffers, 2k ring): 16.61 seconds
    
    If we recycle pages rather than using alloc_page/free_page:
    
      Time to receive 1GB (64k+ buffers, 2k ring, recycle pages): 10.81 seconds
    
    This demonstrates that with efficient allocation, we don't need to
    have a separate "small buffer" queue.
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    fb6813f4
virtio_net.c 17.1 KB