sculpt: adjust leitzentrale priority

Since "sculpt: adjust nitpicker priority", the nitpicker GUI server no
longer runs at the highest priority, yet the runtime_view of the
leitzentrale UI continued to operate at the highest priority.
On slower machines, this results in a visible interference of the CPU-
heavy rendering of the runtime_view with the (now) lower-prioritized
nitpicker, in particular laggy pointer movements.

This commit subordinates the leitzentrale components below the priority
of nitpicker to prevent this interference.

It also simplifies the priority scheme at the static system init: The
timer has the highest priority whereas all other components use the
priority band -1.

Issue #5174
This commit is contained in:
Norman Feske 2024-04-02 18:15:17 +02:00 committed by Christian Helmuth
parent a1e3f9a73e
commit edaff9fb96
5 changed files with 23 additions and 20 deletions

View File

@ -201,7 +201,7 @@ proc log_core_start_node { } {
if {[have_board linux]} return
return {
<start name="log_core">
<start name="log_core" priority="-1">
<resource name="RAM" quantum="1M"/>
<config period_ms="2000"/>
<route>
@ -219,7 +219,7 @@ proc log_kernel_start_node { } {
if {![have_spec nova]} return
return {
<start name="log_kernel">
<start name="log_kernel" priority="-1">
<binary name="log_core"/>
<resource name="RAM" quantum="1M"/>
<config period_ms="2000"/>
@ -264,7 +264,7 @@ install_config {
<provides><service name="Timer"/></provides>
</start>
<start name="report_rom" priority="0">
<start name="report_rom" priority="-1">
<binary name="report_rom"/>
<resource name="RAM" quantum="2M"/>
<provides> <service name="Report"/> <service name="ROM"/> </provides>
@ -295,14 +295,14 @@ install_config {
</config>
</start>
<start name="report_logger" priority="0">
<start name="report_logger" priority="-1">
<binary name="report_rom"/>
<resource name="RAM" quantum="1M"/>
<provides> <service name="Report"/> <service name="ROM"/> </provides>
<config verbose="yes"/>
</start>
<start name="config_fs" caps="200" priority="0">
<start name="config_fs" caps="200" priority="-1">
<binary name="vfs"/>
<resource name="RAM" quantum="12M"/>
<provides> <service name="File_system"/> </provides>
@ -316,7 +316,7 @@ install_config {
</config>
</start>
<start name="config_fs_rom">
<start name="config_fs_rom" priority="-1">
<binary name="fs_rom"/>
<resource name="RAM" quantum="10M"/>
<provides> <service name="ROM"/> </provides>
@ -326,7 +326,7 @@ install_config {
</route>
</start>
<start name="report_fs_rom">
<start name="report_fs_rom" priority="-1">
<binary name="fs_rom"/>
<resource name="RAM" quantum="3M"/>
<provides> <service name="ROM"/> </provides>
@ -336,7 +336,7 @@ install_config {
</route>
</start>
<start name="report_fs">
<start name="report_fs" priority="-1">
<binary name="vfs"/>
<resource name="RAM" quantum="16M"/>
<provides> <service name="File_system"/> </provides>
@ -364,7 +364,7 @@ install_config {
</config>
</start>
<start name="log_terminal">
<start name="log_terminal" priority="-1">
<binary name="file_terminal"/>
<resource name="RAM" quantum="2M"/>
<provides> <service name="Terminal"/> </provides>
@ -379,7 +379,7 @@ install_config {
</route>
</start>
<start name="log">
<start name="log" priority="-1">
<binary name="terminal_log"/>
<resource name="RAM" quantum="1M"/>
<provides> <service name="LOG"/> </provides>
@ -393,7 +393,7 @@ install_config {
} [log_core_start_node] {
} [log_kernel_start_node] {
<start name="fs_report">
<start name="fs_report" priority="-1">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Report"/> </provides>
<config> <vfs> <fs/> </vfs> </config>
@ -453,7 +453,7 @@ install_config {
</start>
<!-- toggle key mappings depending on the numlock state -->
<start name="numlock_remap_rom">
<start name="numlock_remap_rom" priority="-1">
<binary name="rom_filter"/>
<resource name="RAM" quantum="1M"/>
<provides> <service name="ROM"/> </provides>
@ -465,7 +465,7 @@ install_config {
</route>
</start>
<start name="event_filter" caps="120">
<start name="event_filter" priority="-1" caps="120">
<resource name="RAM" quantum="2M"/>
<provides> <service name="Event"/> </provides>
<route>
@ -625,7 +625,7 @@ install_config {
</route>
</start>
<start name="terminal_monitor">
<start name="terminal_monitor" priority="-1">
<binary name="terminal_crosslink"/>
<resource name="RAM" quantum="2M"/>
<provides>

View File

@ -164,6 +164,7 @@ void Distant_runtime::gen_start_nodes(Xml_generator &xml) const
xml.attribute("name", _start_name);
xml.attribute("version", _version);
xml.attribute("priority", (int)Priority::LEITZENTRALE);
xml.attribute("caps", _caps.value);
xml.node("resource", [&] {

View File

@ -127,6 +127,7 @@ struct Sculpt::File_browser_state : Noncopyable
text_area->gen_start_node_version(xml);
xml.attribute("priority", (int)Priority::LEITZENTRALE);
xml.attribute("caps", 350);
gen_named_node(xml, "resource", "RAM", [&] {
xml.attribute("quantum", String<64>(22*1024*1024UL)); });

View File

@ -29,7 +29,7 @@ static void gen_terminal_start(Xml_generator &xml)
{
gen_common_start_content(xml, "terminal",
Cap_quota{110}, Ram_quota{18*1024*1024},
Priority::LEITZENTRALE);
Priority::NESTED_MAX);
gen_provides<Terminal::Session>(xml);
@ -53,7 +53,7 @@ static void gen_vfs_start(Xml_generator &xml,
{
gen_common_start_content(xml, "vfs",
Cap_quota{200}, Ram_quota{6*1024*1024},
Priority::LEITZENTRALE);
Priority::NESTED_MAX);
gen_provides<::File_system::Session>(xml);
@ -133,7 +133,7 @@ static void gen_fs_rom_start(Xml_generator &xml)
{
gen_common_start_content(xml, "vfs_rom",
Cap_quota{100}, Ram_quota{15*1024*1024},
Priority::LEITZENTRALE);
Priority::NESTED_MAX);
gen_named_node(xml, "binary", "cached_fs_rom", [&] { });
@ -154,7 +154,7 @@ static void gen_bash_start(Xml_generator &xml)
{
gen_common_start_content(xml, "bash",
Cap_quota{400}, Ram_quota{16*1024*1024},
Priority::LEITZENTRALE);
Priority::NESTED_MAX);
gen_named_node(xml, "binary", "/bin/bash", [&] { });

View File

@ -59,8 +59,9 @@ namespace Sculpt {
NETWORK = DEFAULT,
STORAGE = DEFAULT,
MULTIMEDIA = -1,
DRIVER = 0,
LEITZENTRALE = 0 /* only for latency-critical drivers */
DRIVER = 0, /* only for latency-critical drivers */
LEITZENTRALE = MULTIMEDIA,
NESTED_MAX = 0, /* within nested init (inspect) */
};
/**