Date: Tue, 28 Oct 2014 17:40:06 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Konstantin Belousov <kib@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r273785 - head/sys/kern Message-ID: <20141028154006.GG1877@kib.kiev.ua> In-Reply-To: <201410281530.s9SFUYBd015691@svn.freebsd.org> References: <201410281530.s9SFUYBd015691@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141028154006.GG1877>