I investigated further and found that a program in guest (jusched.exe Java Updater) is simultaneously sending and receiving network packets rapidly. This is what exacerbates the memory leak.
When the mmap breakpoint triggers, I now set additional breakpoints in m_get() and m_free() and found that the number of calls to these functions do not balance, hence making the leak evident.
Breakpoint 1, mmap64 () at ../sysdeps/unix/syscall-template.S:81
81 in ../sysdeps/unix/syscall-template.S
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x00007ffff0edbfb0 ../sysdeps/unix/syscall-template.S:81
breakpoint already hit 6 times
2 breakpoint keep y 0x0000555555848dfa in m_get at /src/qemu/slirp/mbuf.c:66
breakpoint already hit 645487 times
ignore next 354513 hits
3 breakpoint keep y 0x0000555555848eff in m_free at /src/qemu/slirp/mbuf.c:103
breakpoint already hit 484477 times
ignore next 515523 hits
I investigated further and found that a program in guest (jusched.exe Java Updater) is simultaneously sending and receiving network packets rapidly. This is what exacerbates the memory leak.
When the mmap breakpoint triggers, I now set additional breakpoints in m_get() and m_free() and found that the number of calls to these functions do not balance, hence making the leak evident.
Breakpoint 1, mmap64 () at ../sysdeps/ unix/syscall- template. S:81 unix/syscall- template. S unix/syscall- template. S:81
at /src/qemu/ slirp/mbuf. c:66
at /src/qemu/ slirp/mbuf. c:103
81 in ../sysdeps/
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x00007ffff0edbfb0 ../sysdeps/
breakpoint already hit 6 times
2 breakpoint keep y 0x0000555555848dfa in m_get
breakpoint already hit 645487 times
ignore next 354513 hits
3 breakpoint keep y 0x0000555555848eff in m_free
breakpoint already hit 484477 times
ignore next 515523 hits
About 25% of the m_get() do not get m_free()'d.
liulk