1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 13:27:35 +00:00

Kernel: Mark sys$madvise as not needing the big lock

All accesses to shared mutable data are already serialized behind the
process address space spinlock.
This commit is contained in:
Idan Horowitz 2023-04-04 14:00:38 +03:00
parent cb62ffbb8a
commit 0e564240a6
2 changed files with 2 additions and 2 deletions

View file

@ -121,7 +121,7 @@ enum class NeedsBigProcessLock {
S(link, NeedsBigProcessLock::No) \ S(link, NeedsBigProcessLock::No) \
S(listen, NeedsBigProcessLock::No) \ S(listen, NeedsBigProcessLock::No) \
S(lseek, NeedsBigProcessLock::No) \ S(lseek, NeedsBigProcessLock::No) \
S(madvise, NeedsBigProcessLock::Yes) \ S(madvise, NeedsBigProcessLock::No) \
S(map_time_page, NeedsBigProcessLock::Yes) \ S(map_time_page, NeedsBigProcessLock::Yes) \
S(mkdir, NeedsBigProcessLock::No) \ S(mkdir, NeedsBigProcessLock::No) \
S(mknod, NeedsBigProcessLock::No) \ S(mknod, NeedsBigProcessLock::No) \

View file

@ -407,7 +407,7 @@ ErrorOr<FlatPtr> Process::sys$mprotect(Userspace<void*> addr, size_t size, int p
ErrorOr<FlatPtr> Process::sys$madvise(Userspace<void*> address, size_t size, int advice) ErrorOr<FlatPtr> Process::sys$madvise(Userspace<void*> address, size_t size, int advice)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::stdio)); TRY(require_promise(Pledge::stdio));
auto range_to_madvise = TRY(Memory::expand_range_to_page_boundaries(address.ptr(), size)); auto range_to_madvise = TRY(Memory::expand_range_to_page_boundaries(address.ptr(), size));