From ad419a669d1fd71781680246463d9018814997e2 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 6 Aug 2021 15:27:03 +0300 Subject: [PATCH] Kernel: Disable big process lock for sys$sysconf This syscall only reads constant kernel globals, and as such does not need to hold the big lock. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/sysconf.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 0ee2f8a6dc..50f75daa06 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -181,7 +181,7 @@ enum class NeedsBigProcessLock { S(ptrace, NeedsBigProcessLock::Yes) \ S(sendfd, NeedsBigProcessLock::Yes) \ S(recvfd, NeedsBigProcessLock::Yes) \ - S(sysconf, NeedsBigProcessLock::Yes) \ + S(sysconf, NeedsBigProcessLock::No) \ S(set_process_name, NeedsBigProcessLock::Yes) \ S(disown, NeedsBigProcessLock::Yes) \ S(adjtime, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/sysconf.cpp b/Kernel/Syscalls/sysconf.cpp index 932d4ae4e3..e898d74dfd 100644 --- a/Kernel/Syscalls/sysconf.cpp +++ b/Kernel/Syscalls/sysconf.cpp @@ -11,7 +11,7 @@ namespace Kernel { KResultOr Process::sys$sysconf(int name) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) + VERIFY_NO_PROCESS_BIG_LOCK(this) switch (name) { case _SC_MONOTONIC_CLOCK: return 1;