Re: Optional MPSAFE syscalls aren't

John Baldwin <[email protected]>
Newsgroups gmane.os.freebsd.current,gmane.os.freebsd.devel.smp
Message-ID <[email protected]>
On Sunday 11 June 2006 16:41, Kris Kennaway wrote:
> rwatson, pjd and I tracked down the following problem when looking at
> postgresql profiling traces:
> 
> For syscalls that are part of subsystems that may be loaded from kld,
> the SYSCALL_MODULE_HELPER() spams the copy of the sysent from
> syscalls.master - and it never sets the SYF_MPSAFE flag.  This means
> that regardless of what syscalls.master says about mpsafety, such
> syscalls always acquire Giant.
> 
> One sad consequence of this is that when I removed the
> SYSCALL_MODULE_HELPERs from sysv_sem.c to get rid of the bogus Giant
> locking that seems to be hurting performance, postgresql hangs when
> trying to start; possibly the locking in sysv_sem.c is just broken
> since it was always implicitly serialized by Giant, so never in fact
> tested at all.
> 
> Apart from the SYSV IPC syscalls, this also affects the AIO and mqueue
> code.

I actually plan to just remove the SYF_MPSAFE flag soon anyways and just push 
Giant down manually into the handful of syscalls that still need it.

-- 
John Baldwin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.