diff --git a/repos/base-foc/src/core/include/rpc_cap_factory.h b/repos/base-foc/src/core/include/rpc_cap_factory.h
index 0d45757ee4..41df0c1ce6 100644
--- a/repos/base-foc/src/core/include/rpc_cap_factory.h
+++ b/repos/base-foc/src/core/include/rpc_cap_factory.h
@@ -16,9 +16,14 @@
/* Genode includes */
#include
-#include
+#include
+#include
#include
+/* base-internal includes */
+#include
+
+
namespace Genode { class Rpc_cap_factory; }
class Genode::Rpc_cap_factory
@@ -31,11 +36,22 @@ class Genode::Rpc_cap_factory
};
Object_pool _pool;
- Allocator &_md_alloc;
+
+ /*
+ * Dimension '_entry_slab' such that slab blocks (including the
+ * meta-data overhead of the sliced-heap blocks) are page sized.
+ */
+ static constexpr size_t SLAB_BLOCK_SIZE =
+ get_page_size() - Sliced_heap::meta_data_size();
+
+ uint8_t _initial_sb[SLAB_BLOCK_SIZE];
+
+ Tslab _entry_slab;
public:
- Rpc_cap_factory(Allocator &md_alloc) : _md_alloc(md_alloc) { }
+ Rpc_cap_factory(Allocator &md_alloc)
+ : _entry_slab(md_alloc, _initial_sb) { }
~Rpc_cap_factory();
diff --git a/repos/base-foc/src/core/rpc_cap_factory.cc b/repos/base-foc/src/core/rpc_cap_factory.cc
index fefc8001fa..c18f5e6cb3 100644
--- a/repos/base-foc/src/core/rpc_cap_factory.cc
+++ b/repos/base-foc/src/core/rpc_cap_factory.cc
@@ -144,7 +144,7 @@ Native_capability Rpc_cap_factory::alloc(Native_capability ep)
* so this is not an issue.
*/
if (cap.valid())
- _pool.insert(new (_md_alloc) Entry(cap));
+ _pool.insert(new (_entry_slab) Entry(cap));
return cap;
}
@@ -167,7 +167,7 @@ void Rpc_cap_factory::free(Native_capability cap)
} else
warning("Could not find capability to be deleted");
});
- if (entry) destroy(_md_alloc, entry);
+ if (entry) destroy(_entry_slab, entry);
}
@@ -175,7 +175,7 @@ Rpc_cap_factory::~Rpc_cap_factory()
{
_pool.remove_all([this] (Entry *e) {
if (!e) return;
- destroy(_md_alloc, e);
+ destroy(_entry_slab, e);
});
}
diff --git a/repos/os/run/timer.run b/repos/os/run/timer.run
index d7018e5c4b..9d3a9bce67 100644
--- a/repos/os/run/timer.run
+++ b/repos/os/run/timer.run
@@ -26,12 +26,11 @@ install_config {
-
-
+
-
+