From 00818b8447cfe3b87ba1d05a0741b8fc0eb94d8f Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 6 Aug 2021 14:27:26 +0300 Subject: [PATCH] Kernel: Disable big process lock for sys$dump_backtrace() This syscall only dumps the current thread's backtrace and as such doesn't touch any shared intra-process resources. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/debug.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 034e18122d..b6fce51ec0 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -144,7 +144,7 @@ enum class NeedsBigProcessLock { S(reboot, NeedsBigProcessLock::Yes) \ S(mount, NeedsBigProcessLock::Yes) \ S(umount, NeedsBigProcessLock::Yes) \ - S(dump_backtrace, NeedsBigProcessLock::Yes) \ + S(dump_backtrace, NeedsBigProcessLock::No) \ S(dbgputch, NeedsBigProcessLock::Yes) \ S(dbgputstr, NeedsBigProcessLock::Yes) \ S(create_inode_watcher, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/debug.cpp b/Kernel/Syscalls/debug.cpp index 5df37e9c03..fcc8165251 100644 --- a/Kernel/Syscalls/debug.cpp +++ b/Kernel/Syscalls/debug.cpp @@ -13,7 +13,7 @@ namespace Kernel { KResultOr Process::sys$dump_backtrace() { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); dump_backtrace(); return 0; }