diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2008-07-25 12:06:01 -0500 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2008-07-25 12:06:02 +1000 |
commit | fb6813f480806d62361719e84777c8e00d3e86a8 (patch) | |
tree | 800f68b515a39b554ed3a852ba36ea54c1beef8c /include/linux/dccp.h | |
parent | 97402b96f87c6e32f75f1bffdd91a5ee144b679d (diff) | |
download | op-kernel-dev-fb6813f480806d62361719e84777c8e00d3e86a8.zip op-kernel-dev-fb6813f480806d62361719e84777c8e00d3e86a8.tar.gz |
virtio: Recycle unused recv buffer pages for large skbs in net driver
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: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include/linux/dccp.h')
0 files changed, 0 insertions, 0 deletions