Hello Sid, welcome to the list!
On Thu, Sep 23, 2021 at 01:04:28 CEST, Sid Agrawal wrote:
- *Running the hello_tutorial*: the hello_tutorial job on qemu does not
finish to completing and times out. Below are my steps on ubuntu 20.04.1. I am using the Genode development container https://genodians.org/skalk/2020-09-29-docker-devel, so the tools should not an issue. I also tried it outside the container.
git clone git://github.com/genodelabs/genode.git cd genode tool/ports/prepare_port sel4 tool/ports/prepare_port grub2 tool/create_builddir x86_64
cd x86_64/build/ # Change build/x86_64/etc/build.conf. # Change kernel to sel4 and add hello_tutorial diff etc/build.conf.old etc/build.conf
20c20
< #KERNEL ?= nova
KERNEL ?= sel4
85a86
REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial
make make hello make run/hello # This times out as shown below.
[init -> hello_server] creating root component [0m [0m [init -> hello_client] upgrading quota donation for PD session (0 bytes, 4 caps) [0m [0m [init] child "hello_server" requests resources: cap_quota=3 [0m [0m [init] child "hello_client" requests resources: ram_quota=0, cap_quota=4 [0m [0m Error: Test execution timed out
Any comments on what I am doing wrong would be very helpful. Secondly, what would be the best way to go about debugging an issue like this.
I suppose you succeded in running the scenario on Linux and NOVA like follows.
make run/hello KERNEL=linux BOARD=linux make run/hello KERNEL=nova
For seL4 I can reproduce what you pasted above, so the issue is related to the used platform. As the log output states "hello_server" is requesting more resources and requires cap_quota (capability quota) increased during an operation that requires 3 caps. A look into the init configuration (see hello.run) reveals the following.
<!-- all components get 50 capabilities per default --> <default caps="50"/>
Now you may grant the component some more caps to make it run successully by changing
<start name="hello_server" caps="54">
to the hello_server start node and running
make run/hello KERNEL=sel4
This results in additional resource requests
[init] child "hello_server" requests resources: ram_quota=0, cap_quota=4
The reason is that the seL4 platforms works quite different from NOVA and expectedly Linux, which results in a higher capability consumption of the used software stack.
The following start nodes render the scenario working again.
<start name="hello_server" caps="58"> ... <start name="hello_client" caps="51">
Please see Chapters "Resource trading" [1] and "Resource assignment" [2] in the Genode Foundations book for a thorough explanation.
[1] https://genode.org/documentation/genode-foundations/21.05/architecture/Resou... [2] https://genode.org/documentation/genode-foundations/21.05/system_configurati...
Regards