mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 13:47:56 +00:00
c7b739cc61
This patch increases init's preserved RAM and capability quota to account for a current limitation of init with respect to the creation of sessions to parent services: In contrast to regular routed services, sessions to parent services are created via 'Env::session'. The implementation of 'Env::session' automatically upgrades session quotas on demand, which is the desired behavior for regular 'Connection' objects. However, for sessions established on the behalf of init's children, we would need to reflect the error condition to the child instead of resolving it locally within init (by subsidizing the session with init's quota). This patch leaves this issue unresolved but fixes the symptom for the bomb test. It is meant as an interim solution until the handling of parent sessions is revised.
65 lines
1.6 KiB
Plaintext
65 lines
1.6 KiB
Plaintext
build "core init test/bomb drivers/timer"
|
|
|
|
set timeout 240
|
|
set rounds 20
|
|
set generations 6
|
|
set children 2
|
|
set sleep 1500
|
|
set demand [expr 1*1024*1024]
|
|
|
|
if {[have_include "power_on/qemu"]} {
|
|
append qemu_args "-nographic "
|
|
} else {
|
|
# foc is really slow on native hardware executing this test - limit rounds
|
|
if {[have_spec foc]} {
|
|
if {[have_spec x86_32]} { set rounds 6 }
|
|
if {[have_spec x86_64]} { set rounds 6 }
|
|
}
|
|
}
|
|
|
|
# prevent hitting the socket-descriptor limit on Linux
|
|
if {[have_spec linux]} { set generations 4 }
|
|
|
|
set config {
|
|
<config prio_levels="2">
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
<resource name="RAM" preserve="2M"/>
|
|
<resource name="CAP" preserve="100"/>
|
|
<start name="timer" caps="100">
|
|
<resource name="CPU" quantum="10"/>
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>
|
|
<start name="bomb-master" priority="-1" caps="100000">
|
|
<binary name="bomb"/>
|
|
<resource name="CPU" quantum="90"/>
|
|
<resource name="RAM" quantum="2G"/>}
|
|
|
|
append config "
|
|
<config rounds=\"$rounds\" generations=\"$generations\"
|
|
children=\"$children\" sleep=\"$sleep\" demand=\"$demand\"/>"
|
|
|
|
append config {
|
|
</start>
|
|
</config>}
|
|
|
|
create_boot_directory
|
|
|
|
install_config $config
|
|
|
|
build_boot_image "core ld.lib.so init bomb timer"
|
|
|
|
run_genode_until {.*Done\. Going to sleep.*} $timeout
|