mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 06:07:59 +00:00
8ecc258d3f
This patch adds 4 priority levels to the runtime subsystem. The highest priority is used for components that are critical for the operation of Sculpt, in particular the Leitzentrale GUI. All regularly deployed components are assigned the lowest priority by default. With priorities available in the runtime subsystem, this patch flattens the priority levels at the top-level init to only two levels and overlays the priority bands of the drivers, leitzentrale, and runtime subsystems into one priority band. This has three benenfits: - This change prevents the starvation of the Leitzentrale GUI from a spinning high-priority driver (issue #3997). - The change will also ease the hosting of latency-critical components in the runtime subsystem that are prioritized higher than regular components, the storage stack, and the network stack. - The Leitzentrale GUI remains always perfectly responsive regardless of the workloads deployed from packages. In the previous version, the runtime graph was sometimes stuttering on high system load. Issue #4045
274 lines
11 KiB
Plaintext
274 lines
11 KiB
Plaintext
<config>
|
|
|
|
<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"/>
|
|
<service name="Timer"/>
|
|
<service name="Report"/>
|
|
<service name="Capture"/>
|
|
<service name="Event"/>
|
|
</parent-provides>
|
|
|
|
<report child_caps="true" child_ram="true" init_caps="true" init_ram="true" delay_ms="5000"/>
|
|
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<default caps="100"/>
|
|
|
|
<service name="Block">
|
|
<default-policy> <child name="dynamic"/> </default-policy> </service>
|
|
|
|
<service name="Usb">
|
|
<default-policy> <child name="usb_drv"/> </default-policy> </service>
|
|
|
|
<service name="Platform">
|
|
<default-policy> <child name="platform_drv"/> </default-policy> </service>
|
|
|
|
<service name="Rtc">
|
|
<default-policy> <child name="rtc_drv"/> </default-policy> </service>
|
|
|
|
<start name="report_rom">
|
|
<resource name="RAM" quantum="2M"/>
|
|
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
|
<config verbose="no">
|
|
<policy label="platform_drv -> acpi" report="acpi_drv -> acpi"/>
|
|
<policy label="driver_manager -> pci_devices" report="platform_drv -> pci"/>
|
|
<policy label="usb_drv -> config" report="driver_manager -> usb_drv.config"/>
|
|
<policy label="driver_manager -> usb_devices" report="usb_drv -> devices"/>
|
|
<policy label="driver_manager -> dynamic_state" report="dynamic -> state"/>
|
|
<policy label="dynamic -> config" report="driver_manager -> init.config"/>
|
|
<policy label="driver_manager -> ahci_ports" report="dynamic -> ahci_ports"/>
|
|
<policy label="driver_manager -> nvme_ns" report="dynamic -> nvme_ns"/>
|
|
<policy label="rom_reporter -> acpi" report="acpi_drv -> acpi"/>
|
|
<policy label="rom_reporter -> pci_devices" report="platform_drv -> pci"/>
|
|
<policy label="rom_reporter -> usb_devices" report="usb_drv -> devices"/>
|
|
<policy label="rom_reporter -> dynamic_state" report="dynamic -> state"/>
|
|
<policy label="usb_hid_drv -> report" report="usb_drv -> devices"/>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="rom_reporter">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<config>
|
|
<rom label="acpi"/>
|
|
<rom label="pci_devices"/>
|
|
<rom label="usb_devices"/>
|
|
<rom label="dynamic_state"/>
|
|
</config>
|
|
<route>
|
|
<service name="ROM" label="acpi"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="pci_devices"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="usb_devices"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="dynamic_state"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="acpi"> <parent label="acpi"/> </service>
|
|
<service name="Report" label="pci_devices"> <parent label="pci_devices"/> </service>
|
|
<service name="Report" label="usb_devices"> <parent label="usb_devices"/> </service>
|
|
<service name="Report" label="dynamic_state"> <parent label="dynamic -> state"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="acpi_drv" caps="350">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<route>
|
|
<service name="Report" label="acpi"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="smbios_table"> <parent label="smbios_table"/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="platform_drv" caps="400" managing_system="yes">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides>
|
|
<service name="Platform"/>
|
|
<service name="Acpi"/>
|
|
</provides>
|
|
<route>
|
|
<service name="ROM" label="system"> <parent label="system"/> </service>
|
|
<service name="ROM" label="acpi"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="pci"> <child name="report_rom"/> </service>
|
|
<service name="IRQ"> <parent/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="IO_PORT"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
</route>
|
|
<config system="yes">
|
|
<report pci="yes"/>
|
|
<policy label_prefix="ps2_drv"> <device name="PS2"/> </policy>
|
|
<policy label_prefix="dynamic -> vesa_fb_drv"> <pci class="VGA"/> </policy>
|
|
<policy label_prefix="dynamic -> ahci_drv"> <pci class="AHCI"/> </policy>
|
|
<policy label_prefix="dynamic -> nvme_drv"> <pci class="NVME"/> </policy>
|
|
<policy label_prefix="usb_drv"> <pci class="USB"/> </policy>
|
|
<policy label_prefix="dynamic -> intel_fb_drv">
|
|
<pci class="VGA"/>
|
|
<pci bus="0" device="0" function="0"/>
|
|
<pci class="ISABRIDGE"/>
|
|
</policy>
|
|
<policy label_suffix="-> wifi"> <pci class="WIFI"/> </policy>
|
|
<policy label_suffix="-> nic"> <pci class="ETHERNET"/> </policy>
|
|
<policy label_suffix="-> audio"> <pci class="AUDIO"/> <pci class="HDAUDIO"/> </policy>
|
|
<policy label="acpica"> </policy>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="usb_drv" caps="200">
|
|
<binary name="x86_pc_usb_host_drv"/>
|
|
<resource name="RAM" quantum="16M"/>
|
|
<provides> <service name="Usb"/> </provides>
|
|
<route>
|
|
<service name="Platform"> <child name="platform_drv"/> </service>
|
|
<service name="ROM" label="config">
|
|
<child name="report_rom"/> </service>
|
|
<service name="Report" label="devices"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="config"> <parent label="usb_active_config"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="usb_hid_drv" caps="140">
|
|
<resource name="RAM" quantum="11M"/>
|
|
<config use_report="yes" capslock_led="rom" numlock_led="rom"/>
|
|
<route>
|
|
<service name="ROM" label="report"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="capslock"> <parent label="capslock"/> </service>
|
|
<service name="ROM" label="numlock"> <parent label="numlock"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
<service name="Event"> <child name="event_filter" label="usb"/> </service>
|
|
<service name="Usb"> <child name="usb_drv"/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="ps2_drv">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<config capslock_led="rom" numlock_led="rom"/>
|
|
<route>
|
|
<service name="Platform"> <child name="platform_drv"/> </service>
|
|
<service name="Event"> <child name="event_filter" label="ps2"/> </service>
|
|
<service name="ROM" label="capslock"> <parent label="capslock"/> </service>
|
|
<service name="ROM" label="numlock"> <parent label="numlock"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="rtc_drv">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Rtc"/> </provides>
|
|
<route>
|
|
<service name="IO_PORT"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<!-- toggle key mappings depending on the numlock state -->
|
|
<start name="numlock_remap_rom">
|
|
<binary name="rom_filter"/>
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="ROM"/> </provides>
|
|
<route>
|
|
<service name="ROM" label="config"> <parent label="numlock_remap.config"/> </service>
|
|
<service name="ROM" label="numlock"> <parent label="numlock"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="event_filter" caps="90">
|
|
<resource name="RAM" quantum="2M"/>
|
|
<provides> <service name="Event"/> </provides>
|
|
<route>
|
|
<service name="ROM" label="config"> <parent label="event_filter.config"/> </service>
|
|
<service name="ROM" label="numlock.remap"> <child name="numlock_remap_rom"/> </service>
|
|
<service name="ROM" label="capslock"> <parent label="capslock"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
<service name="Event"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="driver_manager">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<route>
|
|
<service name="Report" label="init.config"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="usb_drv.config"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="block_devices"> <parent label="block_devices"/> </service>
|
|
<service name="ROM" label="usb_devices"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="pci_devices"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="ahci_ports"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="nvme_ns"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="dynamic_state"> <child name="report_rom"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="dynamic" caps="1400">
|
|
<binary name="init"/>
|
|
<resource name="RAM" quantum="1G"/>
|
|
<provides>
|
|
<service name="Framebuffer"/>
|
|
<service name="Block"/>
|
|
</provides>
|
|
<route>
|
|
<service name="Platform"> <child name="platform_drv"/> </service>
|
|
<service name="Report" label="ahci_ports"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="nvme_ns"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="state"> <child name="report_rom"/> </service>
|
|
<service name="Report"> <parent/> </service>
|
|
<service name="Usb"> <child name="usb_drv"/> </service>
|
|
<service name="ROM" label="config"> <child name="report_rom"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="IO_PORT"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
<service name="Capture"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
</config>
|