Store debug info for likely blocking syscalls These calls block all the time and weren't easily visible in "db sem". Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/kern/src/syscall.c b/kern/src/syscall.c index 2673eb5..43ce692 100644 --- a/kern/src/syscall.c +++ b/kern/src/syscall.c
@@ -467,6 +467,7 @@ * async I/O handling. */ static int sys_block(struct proc *p, unsigned int usec) { + sysc_save_str("block for %d usec", usec); /* Note printing takes a few ms, so your printds won't be perfect. */ printd("[kernel] sys_block(), sleeping at %llu\n", read_tsc()); kthread_usleep(usec); @@ -521,6 +522,7 @@ poperror(); return -1; } + sysc_save_str("nanosleep for %d usec", usec); kthread_usleep(usec); poperror(); return 0; @@ -1189,6 +1191,7 @@ pid_t retval = 0; int ret_status = 0; + sysc_save_str("waitpid on %d", pid); /* -1 is the signal for 'any child' */ if (pid == -1) { retval = wait_any(parent, &ret_status, options);