lguest: Tell Guest net not to notify us on every packet xmit
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 29 Jul 2008 14:58:35 +0000 (09:58 -0500)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 28 Jul 2008 23:58:36 +0000 (09:58 +1000)
commita161883a29bf6100efe7b5346bec274e5023c29c
tree5d5b65172a64789eada0e3b824564a793033d0ad
parent5dae785a82c1a8c05b5b4f9709bd9ce658dcf1b6
lguest: Tell Guest net not to notify us on every packet xmit

virtio_ring has the ability to suppress notifications.  This prevents
a guest exit for every packet, but we need to set a timer on packet
receipt to re-check if there were any remaining packets.

Here are the times for 1G TCP Guest->Host with different timeout
settings (it matters because the TCP window doesn't grow big enough to
fill the entire buffer):

Timeout value Seconds Xmit/Recv/Timeout
None (before) 25.3784 xmit 7750233 recv 1
2500 usec 62.5119 xmit 207020 recv 2 timeout 207020
1000 usec 34.5379 xmit 207003 recv 2 timeout 207003
750 usec 29.2305 xmit 207002 recv 1 timeout 207002
500 usec 19.1887 xmit 561141 recv 1 timeout 559657
250 usec 20.0465 xmit 214128 recv 2 timeout 214110
100 usec 19.2583 xmit 561621 recv 1 timeout 560153

(Note that these values are sensitive to the GSO patches which come
 later, and probably other traffic-related variables, so take with a
 large grain of salt).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Documentation/lguest/lguest.c