diff options
author | Simon Horman <horms@verge.net.au> | 2008-09-10 09:14:52 +1000 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2008-09-10 09:14:52 +1000 |
commit | c051a0a2c9e283c1123ed3ce65e66e41d2ce5e24 (patch) | |
tree | 1202d018129ca5538cd98b1e4542b239045c1a2d /Documentation/lguest | |
parent | e9c0ce232e7a36daae1ca08282609d7f0c57c567 (diff) | |
parent | 28faa979746b2352cd78a376bf9f52db953bda46 (diff) | |
download | kernel_samsung_aries-c051a0a2c9e283c1123ed3ce65e66e41d2ce5e24.zip kernel_samsung_aries-c051a0a2c9e283c1123ed3ce65e66e41d2ce5e24.tar.gz kernel_samsung_aries-c051a0a2c9e283c1123ed3ce65e66e41d2ce5e24.tar.bz2 |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 into lvs-next-2.6
Diffstat (limited to 'Documentation/lguest')
-rw-r--r-- | Documentation/lguest/lguest.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index 6554148..7228369 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c @@ -895,6 +895,9 @@ static void handle_console_output(int fd, struct virtqueue *vq, bool timeout) } } +/* This is called when we no longer want to hear about Guest changes to a + * virtqueue. This is more efficient in high-traffic cases, but it means we + * have to set a timer to check if any more changes have occurred. */ static void block_vq(struct virtqueue *vq) { struct itimerval itm; @@ -939,6 +942,11 @@ static void handle_net_output(int fd, struct virtqueue *vq, bool timeout) if (!timeout && num) block_vq(vq); + /* We never quite know how long should we wait before we check the + * queue again for more packets. We start at 500 microseconds, and if + * we get fewer packets than last time, we assume we made the timeout + * too small and increase it by 10 microseconds. Otherwise, we drop it + * by one microsecond every time. It seems to work well enough. */ if (timeout) { if (num < last_timeout_num) timeout_usec += 10; |