I am trying to start Go application in genode/sel4, 19.08. Now it try to alloc 544Mb Ram (standard initialization approach for reservation via mmap - instead it really alloc space using libc malloc inside mmap() ). So, I have 3 gb ram VM, and ram quota for application is 2 gb.
I see that it just plain hangs on the response in void resource_request(Resource_args const &args), from expanding_parent_client.h
Any suggestions?
here it hang in _wait_for_resource_response: /* * Issue resource request */ Parent_client::resource_request(args);
/* * Block until we get a response for the outstanding resource * request. */ if (_state == BLOCKING_DEFAULT) _wait_for_resource_response(); }
My run script: build { core init timer lib/libc_noux test/go_app }
create_boot_directory
install_config { <config verbose="yes" ld_verbose="yes"> <parent-provides> <service name="ROM"/> <service name="LOG"/> <service name="RM"/> <service name="CPU"/> <service name="PD"/> <service name="IRQ"/> <service name="IO_MEM"/> <service name="IO_PORT"/> </parent-provides> <default-route> <any-service> <any-child/> <parent/> </any-service> </default-route> <default caps="2200"/> <start name="timer"> <resource name="RAM" quantum="1M"/> <provides><service name="Timer"/></provides> </start> <start name="test-go" caps="1500"> <resource name="RAM" quantum="2G"/> <config verbose="yes" ld_verbose="yes" stdin="/null" stdout="/log" stderr="/log"> </config> </start> </config> }
build_boot_image { core init timer ld.lib.so libc.lib.so libm.lib.so posix.lib.so libc_noux.lib.so vfs.lib.so test-go }
Log: ... 2747 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 [init] 0x40000000 .. 0x4fffffff: stack area [init] 0x30000 .. 0x197fff: ld.lib.so [init] parent provides [init] service "ROM" [init] service "LOG" [init] service "RM" [init] service "CPU" [init] service "PD" [init] service "IRQ" [init] service "IO_MEM" [init] service "IO_PORT" [init] child "timer" [init] RAM quota: 776K [init] cap quota: 2168 [init] ELF binary: timer [init] priority: 0 [init] provides service Timer [init] child "test-go" [init] RAM quota: 2096904K [init] cap quota: 1468 [init] ELF binary: test-go [init] priority: 0 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4
Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 [init -> timer] 0x40000000 .. 0x4fffffff: stack area [init -> timer] 0x30000 .. 0x197fff: ld.lib.so [init] child "timer" announces service "Timer" [init -> test-go] 0x40000000 .. 0x4fffffff: stack area [init -> test-go] 0x30000 .. 0x197fff: ld.lib.so [init -> test-go] 0x12f8000 .. 0x1492fff: libc.lib.so [init -> test-go] 0x1493000 .. 0x1503fff: vfs.lib.so [init -> test-go] 0x1504000 .. 0x153bfff: libm.lib.so [init -> test-go] mmap addr=0xc000000000 len =567472562176 prot=0 flags=4098 libc_fd=-1 offset=0 [init -> test-go] [init -> test-go] resource_request: ram_quota=567472578560