From edaff9fb96cd81a2274fbb81362bce16b8af6e11 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Tue, 2 Apr 2024 18:15:17 +0200 Subject: [PATCH] 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 --- repos/gems/run/sculpt.run | 28 +++++++++---------- .../sculpt_manager/dialog/distant_runtime.cc | 1 + .../sculpt_manager/model/file_browser_state.h | 1 + .../sculpt_manager/runtime/inspect_view.cc | 8 +++--- repos/gems/src/app/sculpt_manager/types.h | 5 ++-- 5 files changed, 23 insertions(+), 20 deletions(-) diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run index 66e6f19058..3b5a4bf92d 100644 --- a/repos/gems/run/sculpt.run +++ b/repos/gems/run/sculpt.run @@ -201,7 +201,7 @@ proc log_core_start_node { } { if {[have_board linux]} return return { - + @@ -219,7 +219,7 @@ proc log_kernel_start_node { } { if {![have_spec nova]} return return { - + @@ -264,7 +264,7 @@ install_config { - + @@ -295,14 +295,14 @@ install_config { - + - + @@ -316,7 +316,7 @@ install_config { - + @@ -326,7 +326,7 @@ install_config { - + @@ -336,7 +336,7 @@ install_config { - + @@ -364,7 +364,7 @@ install_config { - + @@ -379,7 +379,7 @@ install_config { - + @@ -393,7 +393,7 @@ install_config { } [log_core_start_node] { } [log_kernel_start_node] { - + @@ -453,7 +453,7 @@ install_config { - + @@ -465,7 +465,7 @@ install_config { - + @@ -625,7 +625,7 @@ install_config { - + diff --git a/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.cc b/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.cc index 375eae9d07..4899916087 100644 --- a/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.cc +++ b/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.cc @@ -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", [&] { diff --git a/repos/gems/src/app/sculpt_manager/model/file_browser_state.h b/repos/gems/src/app/sculpt_manager/model/file_browser_state.h index 05cbf77101..9d40c58f14 100644 --- a/repos/gems/src/app/sculpt_manager/model/file_browser_state.h +++ b/repos/gems/src/app/sculpt_manager/model/file_browser_state.h @@ -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)); }); diff --git a/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc b/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc index 71902369a1..498b422a6d 100644 --- a/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc +++ b/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc @@ -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(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", [&] { }); diff --git a/repos/gems/src/app/sculpt_manager/types.h b/repos/gems/src/app/sculpt_manager/types.h index 26ed2c424d..4df39205e5 100644 --- a/repos/gems/src/app/sculpt_manager/types.h +++ b/repos/gems/src/app/sculpt_manager/types.h @@ -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) */ }; /**