Norman Feske ec50c008bb wm: account session resources
With this patch, the wm accounts RAM and caps consumed on behalf of its
clients to the respective client's session quota instead of paying out
of its own pocket. This should make the wm resilient against resource
exhaustion and lowers the quota requirements.

Issue #5340
2024-10-07 15:54:59 +02:00

326 lines
13 KiB
Plaintext

<config>
<input name="leitzentrale_enabled" rom="leitzentrale" node="leitzentrale">
<attribute name="enabled" /> </input>
<output node="config">
<attribute name="prio_levels" value="4"/>
<inline>
<parent-provides>
<service name="ROM"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="Report"/>
<service name="Gui"/>
<service name="Timer"/>
<service name="File_system"/>
</parent-provides>
<default-route> <any-service> <parent/> </any-service> </default-route>
<default caps="100"/>
<service name="Gui">
<default-policy> <child name="wm"/> </default-policy> </service>
<service name="Capture">
<default-policy> <child name="nitpicker"/> </default-policy> </service>
<service name="Event">
<default-policy> <child name="nitpicker"/> </default-policy> </service>
<service name="File_system">
<default-policy> <child name="fonts_fs"/> </default-policy> </service>
<service name="ROM">
<default-policy> <child name="report_rom"/> </default-policy> </service>
<service name="Report">
<default-policy> <child name="report_rom"/> </default-policy> </service>
</inline>
<if>
<has_value input="leitzentrale_enabled" value="yes" />
<then>
<inline>
<start name="fader" priority="-1">
<binary name="gui_fader"/>
<resource name="RAM" quantum="100M"/>
<resource name="CPU" quantum="20"/>
<provides> <service name="Gui"/> </provides>
<config initial_fade_in_steps="100" fade_in_steps="20" alpha="210"/>
<route>
<service name="Gui"> <child name="manager"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</inline>
</then>
<else>
<inline>
<start name="fader" priority="-1">
<binary name="gui_fader"/>
<resource name="RAM" quantum="50M"/>
<resource name="CPU" quantum="20"/>
<provides> <service name="Gui"/> </provides>
<config fade_out_steps="30" alpha="0"/>
<route>
<service name="Gui"> <child name="manager"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</inline>
</else>
</if>
<inline>
<start name="gui_fb" priority="-1">
<resource name="RAM" quantum="33M"/>
<resource name="CPU" quantum="20"/>
<provides> <service name="Framebuffer"/> <service name="Input"/> </provides>
<config/>
<route>
<service name="Gui"> <child name="fader"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="nitpicker" caps="200" priority="-1">
<resource name="RAM" quantum="14M"/>
<resource name="CPU" quantum="40"/>
<provides>
<service name="Gui"/> <service name="Capture"/> <service name="Event"/>
</provides>
<config focus="rom" request_input="yes" request_framebuffer="yes">
<background color="#272f45"/>
<domain name="default" layer="1" content="client" label="no" hover="always" focus="click"/>
<default-policy domain="default"/>
<capture/>
<event/>
</config>
<route>
<service name="Input"> <child name="gui_fb"/> </service>
<service name="Framebuffer"> <child name="gui_fb"/> </service>
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="report_rom" caps="200" priority="-1">
<resource name="RAM" quantum="4M"/>
<provides>
<service name="Report"/>
<service name="ROM"/>
</provides>
<config verbose="no">
<policy label="decorator -> window_layout" report="manager -> window_layout"/>
<policy label="wm -> resize_request" report="manager -> window_layout"/>
<policy label="wm -> focus" report="manager -> wm_focus"/>
<policy label="decorator -> pointer" report="wm -> pointer"/>
<policy label="manager -> window_list" report="wm -> window_list"/>
<policy label="manager -> decorator_margins" report="decorator -> decorator_margins"/>
<policy label="nitpicker -> focus" report="manager -> focus"/>
<policy label="runtime -> leitzentrale -> diag_dialog"
report="manager -> diag_dialog"/>
<policy label="runtime -> leitzentrale -> network_dialog"
report="manager -> network_dialog"/>
<policy label="runtime -> leitzentrale -> settings_dialog"
report="manager -> settings_dialog"/>
<policy label="runtime -> leitzentrale -> system_dialog"
report="manager -> system_dialog"/>
<policy label="runtime -> leitzentrale -> file_browser_dialog"
report="manager -> file_browser_dialog"/>
<policy label="runtime -> leitzentrale -> popup_dialog"
report="manager -> popup_dialog"/>
<policy label="runtime -> leitzentrale -> panel_dialog"
report="manager -> panel_dialog"/>
<policy label="runtime -> leitzentrale -> runtime_dialog"
report="manager -> runtime_dialog"/>
<policy label="manager -> hover"
report="runtime -> leitzentrale -> runtime_view -> hover"/>
</config>
</start>
<start name="wm" caps="150" priority="-1">
<resource name="RAM" quantum="2M"/>
<provides>
<service name="Gui"/> <service name="Report"/> <service name="ROM"/>
</provides>
<config>
<policy label_prefix="decorator" role="decorator"/>
<default-policy/>
</config>
<route>
<service name="ROM" label="resize_request"> <child name="report_rom"/> </service>
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<service name="Gui"> <child name="nitpicker"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="decorator" caps="450" priority="-1">
<binary name="themed_decorator"/>
<resource name="RAM" quantum="20M"/>
<resource name="CPU" quantum="20"/>
<config>
<libc/>
<vfs>
<dir name="theme">
<inline name="metadata">
<theme>
<aura top="5" bottom="5" left="5" right="5"/>
<decor top="6" bottom="6" left="6" right="6"/>
</theme>
</inline>
<rom name="default.png"/>
</dir>
<dir name="dev"> <log/> </dir>
</vfs>
<policy label="log" decoration="yes" motion="20"/>
<policy label="runtime -> leitzentrale -> settings_dialog" decoration="no" motion="20"/>
<policy label="runtime -> leitzentrale -> system_dialog" decoration="no" motion="20"/>
<policy label="runtime -> leitzentrale -> file_browser_dialog" decoration="no" motion="30"/>
<policy label="runtime -> leitzentrale -> network_dialog" decoration="no" motion="20"/>
<policy label="runtime -> leitzentrale -> runtime_dialog" decoration="no" motion="30"/>
<policy label="runtime -> leitzentrale -> diag_dialog" decoration="no" motion="30"/>
<policy label="runtime -> leitzentrale -> popup_dialog" decoration="no" motion="20"/>
<policy label="runtime -> leitzentrale -> panel_dialog" decoration="no" motion="20"/>
<policy label_prefix="logo" decoration="no"/>
<default-policy/>
</config>
<route>
<service name="ROM" label="default.png"> <parent label="drop_shadow.png"/> </service>
<service name="ROM" label="window_layout"> <child name="report_rom"/> </service>
<service name="ROM" label="pointer"> <child name="report_rom"/> </service>
<service name="Report" label="decorator_margins"> <child name="report_rom"/> </service>
<service name="Report" label="hover"> <child name="report_rom"/> </service>
<service name="Gui"> <child name="wm"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="config_fs_report" priority="-1">
<binary name="fs_report"/>
<resource name="RAM" quantum="2M"/>
<provides> <service name="Report"/> </provides>
<config> <vfs> <fs/> </vfs> </config>
<route>
<service name="File_system"> <parent label="config"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="manager" caps="400" priority="-1">
<binary name="sculpt_manager"/>
<resource name="RAM" quantum="3M"/>
<provides> <service name="Gui"/> </provides>
<route>
<service name="ROM" label="config">
<parent label="config -> manager"/> </service>
<service name="Report" label="runtime_config">
<child name="config_fs_report" label="managed -> runtime"/> </service>
<service name="Report" label="deploy_config">
<child name="config_fs_report" label="managed -> deploy"/> </service>
<service name="Report" label="wifi_config">
<child name="config_fs_report" label="managed -> wifi"/> </service>
<service name="Report" label="fonts_config">
<child name="config_fs_report" label="managed -> fonts"/> </service>
<service name="Report" label="nic_router_config">
<child name="config_fs_report" label="managed -> nic_router"/> </service>
<service name="Report" label="fb_config">
<child name="config_fs_report" label="managed -> fb"/> </service>
<service name="Report" label="usb_config">
<child name="config_fs_report" label="managed -> usb"/> </service>
<service name="Report" label="system_config">
<child name="config_fs_report" label="managed -> system"/> </service>
<service name="Report" label="event_filter_config">
<child name="config_fs_report" label="managed -> event_filter"/> </service>
<service name="Report" label="installation_config">
<child name="config_fs_report" label="managed -> installation"/> </service>
<service name="Report" label="depot_query">
<child name="config_fs_report" label="managed -> depot_query"/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<service name="ROM" label_prefix="report ->"> <parent/> </service>
<service name="ROM" label="nitpicker_focus"> <parent/> </service>
<service name="ROM" label="nitpicker_hover"> <parent/> </service>
<service name="ROM" label="hover"> <child name="report_rom"/> </service>
<service name="ROM" label="window_list"> <child name="report_rom"/> </service>
<service name="ROM" label="decorator_margins"> <child name="report_rom"/> </service>
<service name="Gui"> <parent/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="fonts_fs" caps="100" priority="-1">
<binary name="vfs"/>
<resource name="RAM" quantum="4M"/>
<provides> <service name="File_system"/> </provides>
<route>
<service name="ROM" label="config">
<parent label="config -> managed/fonts"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="log_terminal" priority="-1" caps="120">
<binary name="terminal"/>
<resource name="RAM" quantum="8M"/>
<provides> <service name="Terminal"/> </provides>
<config>
<initial width="400"/>
<palette>
<color index="0" value="#2f3953"/>
<color index="8" value="#2f3953"/>
</palette>
<vfs>
<rom name="VeraMono.ttf"/>
<dir name="fonts">
<dir name="monospace">
<ttf name="regular" path="/VeraMono.ttf" size_px="10"/>
</dir>
</dir>
</vfs>
</config>
<route>
<service name="Gui"> <child name="wm" label="log"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="log" caps="100" priority="-1">
<binary name="stdin2out"/>
<resource name="RAM" quantum="2M" />
<config>
<libc stdin="/report/log" stdout="/dev/terminal"/>
<vfs>
<dir name="dev"> <terminal/> </dir>
<dir name="report"> <fs label="report"/> </dir>
</vfs>
</config>
<route>
<service name="File_system"> <parent label="report"/> </service>
<any-service> <child name="log_terminal"/> <parent/> </any-service>
</route>
</start>
<start name="backdrop" caps="150" priority="-1">
<resource name="RAM" quantum="4M" />
<config width="300" height="150">
<libc/>
<vfs> <rom name="genode_logo.png"/> </vfs>
<fill color="#272f45"/>
<image png="genode_logo.png" anchor="bottom_right" alpha="100"
xpos="-20" ypos="-20" />
</config>
<route>
<service name="Gui"> <child name="wm" label="logo"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</inline>
</output>
</config>