Dataspace Allocation Size and Quota

Georg Guba georg.guba at ...256...
Tue Dec 22 14:00:06 CET 2015

Hi all,

I'm trying to allocate a dataspace dynamically at runtime and transfer
quota accordingly. However, it seems the allocation always requires more
quota than the actual allocation size.


Genode::Ram_connection ram;
Genode::Ram_dataspace_capability ds;
Genode::env()->ram_session()->transfer_quota(ram.cap(), 32*1024);
PDBG("Quota: %d/%d\n", ram.used(), ram.quota());
ds = ram.alloc(28*1024);
PDBG("Quota: %d/%d\n", ram.used(), ram.quota());

This shows 0/32769 on the first print and 28672/32769 on the second which
is exactly what you'd expect. Allocating 29 KiB with a 32 KiB quota,
however, will throw a Quota_exceeded exception, still printing 0/32769 on
the first print.

It seems you need about 4 KiB of spare quota but I can't seem to find any
doc on this. How much quota should I actually reserve for simple
allocations like this and why isn't it simply the same as the actual
allocation size? I'd like to avoid magic numbers and wasteful allocation if

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the users mailing list