aboutsummaryrefslogtreecommitdiff
path: root/net/tap.c
diff options
context:
space:
mode:
authorLuigi Rizzo <rizzo@iet.unipi.it>2013-02-05 18:29:09 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2013-02-27 16:10:39 +0100
commit7d91ddd25e3a4e5008a2ac16127d51a34fd56bf1 (patch)
tree56a3faab8f037bb90724dd20d75a18c33b47fd25 /net/tap.c
parent199ee608f0d08510b5c6c37f31a7fbff211d63c4 (diff)
net: fix unbounded NetQueue
In the current implementation of qemu, running without a network backend will cause the queue to grow unbounded when the guest is transmitting traffic. This patch fixes the problem by implementing bounded size NetQueue, used with an arbitrary limit of 10000 packets, and dropping packets when the queue is full _and_ the sender does not pass a callback. The second condition makes sure that we never drop packets that contains a callback (which would be tricky, because the producer expects the callback to be run when all previous packets have been consumed; so we cannot run it when the packet is dropped). If documentation is correct, producers that submit a callback should stop sending when their packet is queued, so there is no real risk that the queue exceeds the max size by large values. Signed-off-by: Luigi Rizzo <rizzo@iet.unipi.it> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'net/tap.c')
0 files changed, 0 insertions, 0 deletions