|
From: | Luigi Rizzo |
Subject: | Re: [Qemu-devel] unbounded qemu NetQue's ? |
Date: | Wed, 16 Jan 2013 13:57:26 -0800 |
On Sun, Jan 06, 2013 at 08:23:56PM +0100, Luigi Rizzo wrote:Hi Luigi,
> Hi,
> while testing the tx path in qemu without a network backend connected,
> i noticed that qemu_net_queue_send() builds up an unbounded
> queue, because QTAILQ* have no notion of a queue length.
>
> As a result, memory usage of a qemu instance can grow to extremely
> large values.
>
> I wonder if it makes sense to implement a hard limit on size of
> NetQue's. The patch below is only a partial implementation
> but probably sufficient for these purposes.
>
> cheers
> luigi
Good idea, we should bound the queues to prevent rare situations or bugs
from hogging memory.
> diff -urp qemu-1.3.0-orig/net/queue.c qemu-1.3.0/net/queue.cPlease also do it for qemu_net_queue_append_iov().
> --- qemu-1.3.0-orig/net/queue.c 2012-12-03 20:37:05.000000000 +0100
> +++ qemu-1.3.0/net/queue.c 2013-01-06 19:38:12.000000000 +0100
> @@ -92,6 +92,9 @@ static void qemu_net_queue_append(NetQue
sent_cb() must be invoked. It's best to do this in a QEMUBH in case the
> {
> NetPacket *packet;
>
> + if (queue->packets.tqh_count > 10000)
> + return; // XXX drop
> +
caller is not prepared for reentrancy.
[Prev in Thread] | Current Thread | [Next in Thread] |