From 67702cf706bce7adef472f0caa48d81ddfaeb33a Mon Sep 17 00:00:00 2001 From: Frans Kaashoek Date: Tue, 2 Jul 2019 09:14:47 -0400 Subject: Checkpoint switching to per-process locks, in attempt clarify xv6's locking plan, which is a difficult to understand because ptable lock protects many invariants. This implementation has a bug: once in a while xv6 unlocks a proc lock that is locked by another core. --- kernel/syscall.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'kernel/syscall.c') diff --git a/kernel/syscall.c b/kernel/syscall.c index ca34f2c..8e9d51c 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -2,6 +2,7 @@ #include "param.h" #include "memlayout.h" #include "riscv.h" +#include "spinlock.h" #include "proc.h" #include "syscall.h" #include "defs.h" @@ -170,7 +171,9 @@ dosyscall(void) num = p->tf->a7; if(num > 0 && num < NELEM(syscalls) && syscalls[num]) { + //printf("%d: syscall %d\n", p->pid, num); p->tf->a0 = syscalls[num](); + //printf("%d: syscall %d -> %d\n", p->pid, num, p->tf->a0); } else { printf("%d %s: unknown sys call %d\n", p->pid, p->name, num); -- cgit v1.2.3