From 2840ba6b1f8c5760f871cb7215dde5e0e9349aca Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 14 Apr 2021 12:00:50 +0200 Subject: [PATCH] Patch sources to honor priority settings --- packages/genodelabs/patches/sources.patch | 108 +++++++++++++++------- 1 file changed, 76 insertions(+), 32 deletions(-) diff --git a/packages/genodelabs/patches/sources.patch b/packages/genodelabs/patches/sources.patch index e332a61..866e06f 100644 --- a/packages/genodelabs/patches/sources.patch +++ b/packages/genodelabs/patches/sources.patch @@ -1,7 +1,7 @@ From bf2613eb22091125c0aff894e580063dac5e2bff Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Mon, 6 Apr 2020 16:32:13 +0530 -Subject: [PATCH 01/16] ld: support for loading read-only segments +Subject: [PATCH 01/17] ld: support for loading read-only segments --- repos/base/src/lib/ldso/include/file.h | 24 ++++++++++++++++++-- @@ -86,13 +86,13 @@ index 78d2c7033d..f17d6dfec0 100644 }; -- -2.30.0 +2.31.0 From 525ab24c481acdf9bb784cac36e663a20084b55b Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 25 Apr 2020 17:10:03 +0530 -Subject: [PATCH 02/16] init/sandbox: support +Subject: [PATCH 02/17] init/sandbox: support Apply routing rules to a child from a node at the top-level of a sandbox config, unless the corresponding start node has as @@ -271,13 +271,13 @@ index 7afcaebf00..36aab737f2 100644 if (!scoped_label) return false; -- -2.30.0 +2.31.0 From 16106e96b1cf7639b050097b131b3be3cdbcf739 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Fri, 29 May 2020 18:42:57 +0530 -Subject: [PATCH 03/16] Use 128-byte strings for session labels +Subject: [PATCH 03/17] Use 128-byte strings for session labels Sixty-four bytes is insufficient for Nix store paths. --- @@ -380,13 +380,13 @@ index 81836a2045..f7b41ddd5b 100644 static Binary_name _binary_from_xml(Xml_node start_node, -- -2.30.0 +2.31.0 From 3f38eacb25348a811f37ce267323253b1941cad2 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 4 Nov 2020 11:03:49 +0100 -Subject: [PATCH 04/16] init/sandbox: do not parse if +Subject: [PATCH 04/17] init/sandbox: do not parse if is present --- @@ -531,13 +531,13 @@ index 30d0f2dfc1..caa9840ea6 100644 -- -2.30.0 +2.31.0 From ef28369a1e6ba0f8910da3a6cb757f9e5ec334ad Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 4 Nov 2020 20:02:03 +0100 -Subject: [PATCH 05/16] init/sandbox: simplify routing +Subject: [PATCH 05/17] init/sandbox: simplify routing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -897,13 +897,13 @@ index 36aab737f2..639a4be4dd 100644 * Find service with certain values in given registry * -- -2.30.0 +2.31.0 From 79ae552230809f62e1717a08f5ce9a63c044abf9 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 7 Nov 2020 08:37:29 +0100 -Subject: [PATCH 06/16] core: log ROM requests with affirmative "diag" flag +Subject: [PATCH 06/17] core: log ROM requests with affirmative "diag" flag --- repos/base/src/core/include/rom_session_component.h | 12 ++++++++++-- @@ -937,13 +937,13 @@ index c584701f5f..2c93302e14 100644 } -- -2.30.0 +2.31.0 From 0e1ea49ea6ce4f85e2e30a01aa5ace7928b20267 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 7 Nov 2020 11:23:03 +0100 -Subject: [PATCH 07/16] base: fail on label truncation +Subject: [PATCH 07/17] base: fail on label truncation --- repos/base/include/base/session_label.h | 27 ++++++++++++++++++++++--- @@ -1038,13 +1038,13 @@ index 610fbb16b3..48777e0c2a 100644 { unsigned long value = 0; -- -2.30.0 +2.31.0 From 2c193324a6702e123c8cafabda45c30c7ca09257 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 7 Nov 2020 13:49:41 +0100 -Subject: [PATCH 08/16] init: log error when configuration cannot be parsed +Subject: [PATCH 08/17] init: log error when configuration cannot be parsed --- repos/os/src/init/main.cc | 4 ++++ @@ -1066,13 +1066,13 @@ index 7b69c95721..f1c1a1435a 100644 bool reporter_enabled = false; config.with_sub_node("report", [&] (Xml_node report) { -- -2.30.0 +2.31.0 From 5d07e900e3c7f0fe507844bccc5f168bad046a3c Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 28 Nov 2020 14:00:49 +0100 -Subject: [PATCH 09/16] Do not default Child::binary_name() to Child::name() +Subject: [PATCH 09/17] Do not default Child::binary_name() to Child::name() --- repos/base/include/base/child.h | 2 +- @@ -1119,13 +1119,13 @@ index fd254d7f49..036e7f8fc2 100644 Pd_session &ref_pd() override { return _env.pd(); } Pd_session_capability ref_pd_cap() const override { return _env.pd_session_cap(); } -- -2.30.0 +2.31.0 From 0ac7fd14676b451e11b74c9e66f7de265b3ee4e6 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 3 Dec 2020 12:19:10 +0100 -Subject: [PATCH 10/16] vfs: create missing root directories for writeable +Subject: [PATCH 10/17] vfs: create missing root directories for writeable sessions This is the expected behavior. @@ -1199,13 +1199,13 @@ index b780b1fdd7..358afd28a9 100644 Session_component *session = new (md_alloc()) -- -2.30.0 +2.31.0 From 6842e2d0c2c784d224a9d7bc100e491545b8e5e6 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 28 Jan 2021 13:39:29 +0100 -Subject: [PATCH 11/16] genode_dyn.ld: do not emit PHDR segment +Subject: [PATCH 11/17] genode_dyn.ld: do not emit PHDR segment Recent version of binutils check that PHDR segments are covered by a LOAD segment. In this case the unloaded PHDR segment can be @@ -1227,13 +1227,13 @@ index 5fa6ddc29e..57ec92f0f6 100644 ro PT_LOAD; rw PT_LOAD; -- -2.30.0 +2.31.0 From ff8ffb77ccf4238001abd7253c45dece86fe8983 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 3 Feb 2021 15:20:39 +0100 -Subject: [PATCH 12/16] vfs: support for loading plugins by label +Subject: [PATCH 12/17] vfs: support for loading plugins by label MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1298,13 +1298,13 @@ index 5cdf20e8e3..1cf5d587ea 100644 -- -2.30.0 +2.31.0 From 490fb611ceaad9ae67af35c22ac40dd65ddd7a42 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 3 Feb 2021 17:33:24 +0100 -Subject: [PATCH 13/16] vfs: increase the capacity of tar ROM labels to 128 +Subject: [PATCH 13/17] vfs: increase the capacity of tar ROM labels to 128 --- repos/os/src/lib/vfs/tar_file_system.h | 2 +- @@ -1324,13 +1324,13 @@ index d9941deb5f..fcb06a1459 100644 Genode::Attached_rom_dataspace _tar_ds { _env, _rom_name.string() }; -- -2.30.0 +2.31.0 From a9900477faf8d9d41dbe3fa59a0b40ce5cab037f Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 10 Feb 2021 13:32:42 +0100 -Subject: [PATCH 14/16] Detect destroyed argument buffers at Env::session +Subject: [PATCH 14/17] Detect destroyed argument buffers at Env::session Session request arguments are silently zeroed when their length exceedes some buffer size. @@ -1354,13 +1354,13 @@ index 568be31efb..913687ea7f 100644 /* * Since we account for the backing store for session meta data on -- -2.30.0 +2.31.0 From d2da7f94d328336ab6ac618ff5779ae8093c5e9d Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 11 Feb 2021 14:10:50 +0100 -Subject: [PATCH 15/16] Increase session arguments buffer size to 240 bytes +Subject: [PATCH 15/17] Increase session arguments buffer size to 240 bytes --- repos/base/include/parent/parent.h | 2 +- @@ -1408,13 +1408,13 @@ index 3cfbdd7466..d7603e8ca4 100644 _ZThn8_N6Genode17Timeout_schedulerD0Ev T _ZThn8_N6Genode17Timeout_schedulerD1Ev T -- -2.30.0 +2.31.0 From 9b1a5e00ba1fc7fccfec5ba6671c6e80e428f129 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Fri, 19 Feb 2021 16:09:23 +0100 -Subject: [PATCH 16/16] ldso: increase size of library names +Subject: [PATCH 16/17] ldso: increase size of library names --- repos/base/src/lib/ldso/include/config.h | 2 +- @@ -1434,5 +1434,49 @@ index 5708df0930..db9014a95b 100644 /** * Call fn for each library specified in the configuration -- -2.30.0 +2.31.0 + + +From 01efe5a758792c513fa69b3f6acdca081cb153f3 Mon Sep 17 00:00:00 2001 +From: Emery Hemingway +Date: Wed, 14 Apr 2021 10:43:21 +0200 +Subject: [PATCH 17/17] sandbox: round up priority levels to a power of two + +The requirement that priority levels be a power of two is an +implementation artifact, honor the value set in configuration +rather refuse lesser values. +--- + repos/os/src/lib/sandbox/utils.h | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/repos/os/src/lib/sandbox/utils.h b/repos/os/src/lib/sandbox/utils.h +index 639a4be4dd..5c09c5e596 100644 +--- a/repos/os/src/lib/sandbox/utils.h ++++ b/repos/os/src/lib/sandbox/utils.h +@@ -188,13 +188,19 @@ namespace Sandbox { + */ + inline Prio_levels prio_levels_from_xml(Xml_node config) + { +- long const prio_levels = config.attribute_value("prio_levels", 0UL); ++ long prio_levels = config.attribute_value("prio_levels", 0UL); + +- if (prio_levels && ((prio_levels >= (long)sizeof(prio_levels)*8) || +- (prio_levels != (1L << log2(prio_levels))))) { +- warning("prio levels is not power of two, priorities are disabled"); ++ if (prio_levels && (prio_levels >= (long)sizeof(prio_levels)*8)) { ++ warning("invalid prio_levels ", prio_levels, " priorities are disabled"); + return Prio_levels { 0 }; + } ++ ++ long const prio_log2 = log2(prio_levels); ++ if (prio_levels != (1L << prio_log2)) { ++ prio_levels = 1L << (prio_log2+1); ++ log("priority levels increased to ", prio_levels); ++ } ++ + return Prio_levels { prio_levels }; + } + +-- +2.31.0