Hi Norman,
Am Freitag, 4. August 2017 11:56:38 CEST schrieb Norman Feske:
While giving the scenario a quick spin, I observed another cap-quota issue, which is caused by the too low default value of 50 - the value used for all <start> notes that lack an explicit 'caps' attribute. By setting this value to 100, the scenario starts up with NOVA on Qemu (tested on the current staging branch). However, apparently the launcher component also needs a few quota adjustments. I just fixed the corresponding parts in the commit [2] on the staging branch. May you give it a try?
[2] https://github.com/genodelabs/genode/commit/94ef138f223ce6d9ab4a2608bc7cc73a...
I have tested it quickly, I checkout staging (commit 005820bb7bf6cb8b833b4227b8377984df5f9ceb) and build the launcher scenario. Now the scenario is started. Thanks Norman for your quick fix.
The 'drivers' subsystem [5] is an init instance with 7 children (as of now). Hence, assigning 1000 caps to the subsystem seems to be reasonable.
[5] repos/os/recipes/raw/drivers_interactive-pc/drivers.config
Ok, drivers 'subsystem', that is what I missed. I haven't realized that the 'drivers.config' is a subsystem configuration.
The limit of a component decreases each time it creates a session to a service where it transfers some of its own quota limit to the server.
Initially, the limit of 'drivers' is 300. But as soon as 'drivers' creates sessions to the outside, its limit decreases step by step. You can think of the limit as the balance of a bank account. It you transfer money to another account, the balance decreases. The "used" value is the fraction of the quota that the component turned into actual resources (like RPC objects, dataspaces, signal handlers). To stay with the analogy, these are the purchased goods.
Ok, limit means also the 'free cap ressouces' for the component and this will be transfered to other 'server components'. 'used' is only showing the using of RPC objects, dataspaces, signal handlers of the actual/current component, not also from the other 'server component'. Now I got it.
I hope the above explanation sounds logical.
Yes, many thanks for your detailed explanation. I think, I understood now.
Thanks for bringing up this topic on the mailing list. You may not be the only one confused by the messages. Finally, let me compliment you for using the "diag" feature and for including all important details of your scenario at the start of your posting.
No, problem. I'm also a C++ developer in my company and I get sometimes 'problems/crash dumps' from my colleagues/customer to fix them without any infos (build/version number, etc) :-).
Cheers Jörg