* [Qemu-devel] memory leak in user mode network stack
@ 2004-09-13 16:46 Juergen Keil
2004-09-13 20:40 ` Darryl Dixon
0 siblings, 1 reply; 2+ messages in thread
From: Juergen Keil @ 2004-09-13 16:46 UTC (permalink / raw)
To: qemu-devel
Hi,
apparently there is a qemu memory leak when -user-net is used. ftp'ing a
~500Mbyte file from the host os to the guest os increases memory usage for
the "qemu -m 256" process from ~280mb to almost 2gb.
It seems the problem is in slirp/if.c, if_start(). If fetches queued mbuf's,
sends them, but does not return the mbufs to the free mbuf pool.
Shouldn't if_start() return mbufs to the free mbuf pool after transmitting
the data, like this?
Index: if.c
===================================================================
RCS file: /cvsroot/qemu/qemu/slirp/if.c,v
retrieving revision 1.1
diff -u -B -c -8 -r1.1 if.c
cvs diff: conflicting specifications of output style
*** if.c 22 Apr 2004 00:10:47 -0000 1.1
--- if.c 13 Sep 2004 16:29:32 -0000
***************
*** 310,320 ****
--- 310,322 ----
if (--ifm->ifq_so->so_queued == 0)
/* If there's no more queued, reset nqueued */
ifm->ifq_so->so_nqueued = 0;
}
/* Encapsulate the packet for sending */
if_encap(ifm->m_data, ifm->m_len);
+ m_free(ifm);
+
if (if_queued)
goto again;
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] memory leak in user mode network stack
2004-09-13 16:46 [Qemu-devel] memory leak in user mode network stack Juergen Keil
@ 2004-09-13 20:40 ` Darryl Dixon
0 siblings, 0 replies; 2+ messages in thread
From: Darryl Dixon @ 2004-09-13 20:40 UTC (permalink / raw)
To: Juergen Keil, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1594 bytes --]
I can verify this behaviour; I have a bug filed on the savannah site.
D
On Tue, 2004-09-14 at 04:46, Juergen Keil wrote:
> Hi,
>
> apparently there is a qemu memory leak when -user-net is used. ftp'ing a
> ~500Mbyte file from the host os to the guest os increases memory usage for
> the "qemu -m 256" process from ~280mb to almost 2gb.
>
> It seems the problem is in slirp/if.c, if_start(). If fetches queued mbuf's,
> sends them, but does not return the mbufs to the free mbuf pool.
>
>
> Shouldn't if_start() return mbufs to the free mbuf pool after transmitting
> the data, like this?
>
> Index: if.c
> ===================================================================
> RCS file: /cvsroot/qemu/qemu/slirp/if.c,v
> retrieving revision 1.1
> diff -u -B -c -8 -r1.1 if.c
> cvs diff: conflicting specifications of output style
> *** if.c 22 Apr 2004 00:10:47 -0000 1.1
> --- if.c 13 Sep 2004 16:29:32 -0000
> ***************
> *** 310,320 ****
> --- 310,322 ----
> if (--ifm->ifq_so->so_queued == 0)
> /* If there's no more queued, reset nqueued */
> ifm->ifq_so->so_nqueued = 0;
> }
>
> /* Encapsulate the packet for sending */
> if_encap(ifm->m_data, ifm->m_len);
>
> + m_free(ifm);
> +
> if (if_queued)
> goto again;
> }
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
--
Darryl Dixon <esrever_otua@pythonhacker.is-a-geek.net>
[-- Attachment #2: Type: text/html, Size: 2116 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-09-13 20:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-13 16:46 [Qemu-devel] memory leak in user mode network stack Juergen Keil
2004-09-13 20:40 ` Darryl Dixon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).