Prechádzať zdrojové kódy

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.
Idan Horowitz 4 rokov pred
rodič
commit
00818b8447
2 zmenil súbory, kde vykonal 2 pridanie a 2 odobranie
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/debug.cpp

+ 1 - 1
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)       \

+ 1 - 1
Kernel/Syscalls/debug.cpp

@@ -13,7 +13,7 @@ namespace Kernel {
 
 KResultOr<FlatPtr> Process::sys$dump_backtrace()
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+    VERIFY_NO_PROCESS_BIG_LOCK(this);
     dump_backtrace();
     return 0;
 }