These 3 syscalls should now be ready to run w/o KERNEL_LOCK().  This
will reduce contention a lot.  I'd be happy to hear from test reports
on many architectures and possible workloads.

Do not forget to run "make syscalls" before building the kernel.

Index: syscalls.master
===================================================================
RCS file: /cvs/src/sys/kern/syscalls.master,v
retrieving revision 1.234
diff -u -p -r1.234 syscalls.master
--- syscalls.master     25 Oct 2022 16:10:31 -0000      1.234
+++ syscalls.master     6 Nov 2022 10:50:45 -0000
@@ -126,7 +126,7 @@
                            struct sigaction *osa); }
 47     STD NOLOCK      { gid_t sys_getgid(void); }
 48     STD NOLOCK      { int sys_sigprocmask(int how, sigset_t mask); }
-49     STD             { void *sys_mmap(void *addr, size_t len, int prot, \
+49     STD NOLOCK      { void *sys_mmap(void *addr, size_t len, int prot, \
                            int flags, int fd, off_t pos); }
 50     STD             { int sys_setlogin(const char *namebuf); }
 #ifdef ACCOUNTING
@@ -171,8 +171,8 @@
                            const struct kevent *changelist, int nchanges, \
                            struct kevent *eventlist, int nevents, \
                            const struct timespec *timeout); }
-73     STD             { int sys_munmap(void *addr, size_t len); }
-74     STD             { int sys_mprotect(void *addr, size_t len, \
+73     STD NOLOCK      { int sys_munmap(void *addr, size_t len); }
+74     STD NOLOCK      { int sys_mprotect(void *addr, size_t len, \
                            int prot); }
 75     STD             { int sys_madvise(void *addr, size_t len, \
                            int behav); }

Reply via email to