Hi Ben,
On 11.03.2018 04:06, Nobody III wrote:
Thanks. How about CAP quotas? What happens when a component runs out of CAPs? And init doesn't seem to indicate the number or CAPs each child is using. Shouldn't CAPs be added to the report?
you can add this information to init's state report via the 'child_caps="yes"' attribute. Currently, unlike RAM, init does not support the dynamic adjustment of cap quota. This is not an inherent limitation but just not implemented.
Also, how can a process determine how much RAM quota is required to start a process? Is there a good heuristic at least, perhaps in noux?
This information should be covered by the 'runtime' file of a pkg archive. For an example, have a look at the pkg/noux-system as used by Sculpt:
https://github.com/genodelabs/genode/blob/master/repos/ports/recipes/pkg/nou...
When thinking of building blocks, we should start thinking about depot pkgs, not ELF executables. E.g., one ELF executable may be referred to by several pkgs (with different configurations). The RAM and caps demands may very well vary depending on the configuration. By introducing a pkg for each flavor, we can nicely capture this. E.g., the pkg/nic_router-nat runtime employs the NIC router in one particular flavour.
https://github.com/genodelabs/genode/blob/master/repos/os/recipes/pkg/nic_ro...
The same NIC router could be used as an ingredient of many other building blocks.
Cheers Norman