aboutsummaryrefslogtreecommitdiff
path: root/src/dispatch.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-07-05 21:02:52 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-07-05 21:02:52 +0300
commit608f44306a6f0d5692f5c81bcbfe7a621ec254ba (patch)
tree72a9f917694be91e4795bd04fddabac8139e1059 /src/dispatch.c
parentbef6a76b602eee8f43c2e7dd65c5bd9cf5d909e4 (diff)
downloadkmi-608f44306a6f0d5692f5c81bcbfe7a621ec254ba.tar.gz
kmi-608f44306a6f0d5692f5c81bcbfe7a621ec254ba.zip
implement bkl
+ Start out using big kernel lock, apparently seL4 thinks its good enough. I might have a go at using a more fair lock, and possibly moving to more fine-grained locks if I really feel the need to get scalability up.
Diffstat (limited to 'src/dispatch.c')
-rw-r--r--src/dispatch.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dispatch.c b/src/dispatch.c
index 2786678..222611b 100644
--- a/src/dispatch.c
+++ b/src/dispatch.c
@@ -2,6 +2,7 @@
/* Copyright 2023 Kim Kuparinen < kimi.h.kuparinen@gmail.com > */
#include <kmi/uapi.h>
+#include <kmi/bkl.h>
#include <kmi/ipi.h>
/**
@@ -31,5 +32,7 @@
void dispatch(sys_arg_t a, sys_arg_t b, sys_arg_t c,
sys_arg_t d, sys_arg_t e, sys_arg_t f)
{
+ bkl_lock();
handle_syscall(a, b, c, d, e, f, cur_tcb());
+ bkl_unlock();
}