From c02f04da762f425acc01558075fbb89cc97d69cb Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Mon, 4 Jun 2012 16:48:11 +0200 Subject: [PATCH] Fiasco.OC: raise sigma0's priority to maximum. When sigma0 runs on a lower priority than the rest of the threads in the system it might come to the point that while answering a page fault or I/O memory area request the timeslice of the caller (core-pager) gets fully consumed. As long as other threads are still executable and don't block sigma0 won't do progress anymore, because it runs at the lowest priority. This commit simply sets sigma0's priority to the highest in the system. --- base-foc/patches/sigma0_prio.patch | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 base-foc/patches/sigma0_prio.patch diff --git a/base-foc/patches/sigma0_prio.patch b/base-foc/patches/sigma0_prio.patch new file mode 100644 index 000000000..d260c2c09 --- /dev/null +++ b/base-foc/patches/sigma0_prio.patch @@ -0,0 +1,23 @@ +Index: l4/pkg/sigma0/server/src/init.cc +=================================================================== +--- l4/pkg/sigma0/server/src/init.cc (revision 38) ++++ l4/pkg/sigma0/server/src/init.cc (working copy) +@@ -27,6 +27,7 @@ + #include "ioports.h" + #include "mem_man_test.h" + #include ++#include + + /* started as the L4 sigma0 task from crt0.S */ + +@@ -61,6 +62,10 @@ + l4_debugger_set_object_name(L4_BASE_FACTORY_CAP, "root factory"); + l4_debugger_set_object_name(L4_BASE_THREAD_CAP, "sigma0"); + ++ l4_sched_param_t params = l4_sched_param(255); ++ l4_scheduler_run_thread(L4_BASE_SCHEDULER_CAP, L4_BASE_THREAD_CAP, ¶ms); ++ ++ + Page_alloc_base::init(); + + init_memory(info);