[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Answering ping requests make mirage allocate pages to the point it exhausts its memory.

On 22/08/2013 11:37, Vincent Bernardoff wrote:
I'm running mirage-www under Xen with 64M of memory. When ping flooding,
I don't loose packets but I have messages such that:

mm.c: Cannot handle page request order 1!
memalign(4096, 4096) failed.

repeating in a tight loop.

Looking at the code, it seems that Mirage tries to allocate memory to
the point when it exhausts its memory, at that point, Gc.compact () is
called and improve the situation, so that the unikernel never crashes
with Out_of_memory.

Answering ping requests should not lead to allocate pages to the point
it exhausts available memory, should it ?

We should fix that.


I submitted a PR that mitigates the problem concerning the partical case of ICMP but there is still a big problem in OS.Netif: A new page is allocated for every "buffer refill" for incoming packets.

I'm not very sure how we should fix that. I guess the answer is to implement an OCaml memory management instead of asking MiniOS to allocate memory for us. But what partical implementation of a MM, I don't know.

I think this problem should be addressed quickly. Is this a regression ?





Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.