svn commit: r273785 - head/sys/kern

Konstantin Belousov kostikbel at gmail.com
Tue Oct 28 15:40:15 UTC 2014


On Tue, Oct 28, 2014 at 03:30:34PM +0000, Konstantin Belousov wrote:
> Author: kib
> Date: Tue Oct 28 15:30:33 2014
> New Revision: 273785
> URL: https://svnweb.freebsd.org/changeset/base/273785
> 
> Log:
>   Convert kern_umtx.c to use fueword() and casueword().
>   
>   Also fix some mishandling of suword(9) errors as errno, which resulted
>   in spurious ERESTART.
>   
>   Sponsored by:	The FreeBSD Foundation
>   Tested by:	pho
>   MFC after:	3 weeks
> 
> Modified:
>   head/sys/kern/kern_umtx.c

Some explanation which I did not want to put into commit message.

The kern_umtx.c commit is split from the other conversion commit
for ease of reversal.  The most tricky part of the work for fueword()
was to preserve the logic of locking loops which rely on the suspension
check functions errors preserved for next iteration.  Another cause
of troubles if kern_umtx.c were incomplete cleanups in case of
userspace access errors, which left umtx sleepchains locked.

The only consumers of fuword() left in tree are solaris compat layer/dtrace.

Architectures which lack proper fueword() implementations are arm,
mips and sparc64. I already forgot enough of sparc64 assembly, and do
not know mips and arm. These arches currently should run with compat
shims in subr_uio.c, but hopefully maintaners will plug the missed
implementations.


More information about the svn-src-head mailing list