genode/repos/gems/recipes/raw/wm/wm.config
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

99 lines
3.9 KiB
Plaintext

<config>
<parent-provides>
<service name="ROM"/>
<service name="PD"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="Gui"/>
<service name="Timer"/>
<service name="Report"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<default caps="100"/>
<service name="Gui">
<default-policy> <child name="wm"/> </default-policy>
</service>
<service name="ROM">
<policy label_suffix=" -> window_list">
<child name="report_rom" label="layouter -> window_list"/> </policy>
<policy label_suffix=" -> focus_request">
<child name="report_rom" label="layouter -> focus_request"/> </policy>
<policy label_suffix=" -> hover">
<child name="report_rom" label="layouter -> hover"/> </policy>
<policy label_suffix=" -> decorator_margins">
<child name="report_rom" label="layouter -> decorator_margins"/> </policy>
<policy label_suffix=" -> rules">
<child name="report_rom" label="layouter -> rules"/> </policy>
<policy label_suffix=" -> window_layout">
<child name="report_rom" label="decorator -> window_layout"/> </policy>
<policy label_suffix=" -> pointer">
<child name="report_rom" label="decorator -> pointer"/> </policy>
<policy label_suffix=" -> clipboard">
<child name="wm"/> </policy>
</service>
<service name="Report">
<policy label_suffix=" -> window_layout">
<child name="report_rom" label="layouter -> window_layout"/> </policy>
<policy label_suffix=" -> resize_request">
<child name="report_rom" label="layouter -> resize_request"/> </policy>
<policy label_suffix=" -> focus">
<child name="report_rom" label="layouter -> focus"/> </policy>
<policy label_suffix=" -> rules">
<child name="report_rom" label="layouter -> rules"/> </policy>
<policy label_suffix=" -> hover">
<child name="report_rom" label="decorator -> hover"/> </policy>
<policy label_suffix=" -> decorator_margins">
<child name="report_rom" label="decorator -> decorator_margins"/> </policy>
<policy label_suffix=" -> shape"> <child name="wm"/> </policy>
<policy label_suffix=" -> clipboard"> <child name="wm"/> </policy>
</service>
<start name="report_rom">
<resource name="RAM" quantum="4M"/>
<provides>
<service name="Report"/>
<service name="ROM"/>
</provides>
<config>
<policy label="layouter -> window_list" report="wm -> window_list"/>
<policy label="layouter -> focus_request" report="wm -> focus_request"/>
<policy label="layouter -> hover" report="decorator -> hover"/>
<policy label="layouter -> decorator_margins" report="decorator -> decorator_margins"/>
<policy label="layouter -> rules" report="layouter -> rules"/>
<policy label="decorator -> window_layout" report="layouter -> window_layout"/>
<policy label="decorator -> pointer" report="wm -> pointer"/>
<policy label="wm -> resize_request" report="layouter -> resize_request"/>
<policy label="wm -> focus" report="layouter -> focus"/>
</config>
</start>
<start name="wm" caps="150">
<resource name="RAM" quantum="2M"/>
<provides>
<service name="Gui"/> <service name="Report"/> <service name="ROM"/>
</provides>
<config>
<policy label_suffix="decorator -> " role="decorator"/>
<policy label_suffix="layouter -> " role="layouter"/>
<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="ROM" label_last="clipboard"> <parent/> </service>
<service name="Report" label_last="clipboard"> <parent/> </service>
<service name="Report" label_last="shape"> <parent/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<service name="Gui" label=""> <parent label="focus"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</config>