New SCHED_SMP diff.

Ed Schouten ed at fxq.nl
Mon Jul 2 17:04:33 UTC 2007


* Jeff Roberson <jroberson at chesapeake.net> wrote:
> This diff also includes another patch that I intend to commit to current 
> which significantly improved write performance for mysql by removing all 
> use of Giant in fcntl().

Some time ago I filed a PR that F_DUPFD performs a lot of useless
locking. It first performs lookups of the descriptor to make sure it
exists, but afterwards it just calls do_dup(), which does the lookups
again. The patch shaves off a pair of FILEDESC_XLOCK/FILEDESC_XUNLOCK
and PROC_LOCK/PROC_UNLOCK calls.

	http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/105346
	http://g-rave.nl/junk/freebsd-kern_descrip.diff

The only reason why F_DUPFD performs these checks, is because it could
return EINVAL in some cases, while dup() and dup2() only return EMFILE
and EBADFD. This patch makes do_dup() return EINVAL when the offset is
invalid, so that's why the dup()/dup2() syscalls are changed as well.

Yours,
-- 
 Ed Schouten <ed at fxq.nl>
 WWW: http://g-rave.nl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070702/94c6cfaa/attachment.pgp


More information about the freebsd-current mailing list