Number of components per init
Roman Iten
roman.iten at ...453...
Wed Oct 5 16:48:18 CEST 2016
Hi Norman
>> - How big is the initial quota of init?
>
> init receives the quota for all the available physical memory from
> core.
> The amount depends on the physical memory of the machine. It is
> printed
> by core when init is started.
Thats what I thought. But I couldn't imagine how init's quota could
possibly exceed on a x86-64 machine with several GiB physical memory :)
> For each child started by init, init needs to create several
> capabilities (e.g., the parent capability presented to the child, or
> the
> capability for the local ROM session for providing the child's binary
> as
> "binary" ROM module). The allocation of those capabilities is
> performed
> via the 'Nova_native_pd::alloc_rpc_cap' RPC function. This function
> naturally consumes session quota of the corresponding PD session
> (init's
> PD session). At one point, the initial session quota (that was passed
> to
> core when init's PD session was created) is depleted. In this case,
> core
> prints the diagnostic message and returns an error to the client
> (init).
> Init responds to this error by upgrading the session quota of its PD
> session using the preserved slack memory. The session upgrading is
> handled at 'base-nova/src/lib/base/rpc_cap_alloc.cc'.
> In your case, the message you see is merely a diagnostic message. The
> condition is handled properly. In cases where proper error handing of
> the 'Out_of_metadata' condition is missing, the message used to be
> quite
> valuable to spot the problem. So we decided to kept it.
How can I distinguish if the condition is handled properly or not? Are
there any preceding or following log messages in either case?
>> - Does the size of the metadata allocation for a child depends on
>> whether I'm using a 32 or 64 bit system?
>
> Yes. I.e., your scenario produces the message only on 64 bit, not on
> 32 bit.
Is it worth thinking about calculating the slack memory size based on
Genode::addr_t? Or make the value even configurable?
> That said, the limit turned out not to be a problem in your case. The
> message is a false-positive warning. The default limit becomes a
> problem
> not before the PD-session upgrade fails. I can trigger the problem
> with
> your run script when configuring Qemu with 64 MiB of memory and
> starting
> 76 children. Sorry that my previous email pointed you to the wrong
> direction.
It didn't. I'm trying to improve my understanding of memory
configuration and allocation in Genode. So every hint helps ;)
Thanks,
Roman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20161005/02c4b68b/attachment.html>
More information about the users
mailing list