Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jun 2012 10:22:31 +0100
From:      "Robert N. M. Watson" <rwatson@freebsd.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        arch@freebsd.org
Subject:   Re: Fast gettimeofday(2) and clock_gettime(2)
Message-ID:  <E316FFF8-7718-45C8-88F7-3A725B54E976@freebsd.org>
In-Reply-To: <20120611091811.GA2337@deviant.kiev.zoral.com.ua>
References:  <20120606165115.GQ85127@deviant.kiev.zoral.com.ua> <alpine.BSF.2.00.1206110952570.78881@fledge.watson.org> <20120611091811.GA2337@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

On 11 Jun 2012, at 10:18, Konstantin Belousov wrote:

>> 3) For the purposes of adaptive mutexes in userspace, it really would =
be=20
>> quite
>>   nice to know whether remote threads are running or not, in the same =
way
>>   that cheap access to remote thread run state in the kernel makes =
for much
>>   more efficient adaptive spinning.  I wonder if we could use this=20
>>   mechanism
>>   for that purpose as well.  I guess for now, at least, you're using =
a=20
>>   single
>>   global page, but in the future, per-process pages might be quite
>>   beneficial.
>=20
> The per-process page looks almost undoable. I think that what could be
> made working, although with some hacks, is per-CPU page, and the page
> content update on context switch. This could benefit trivial system =
calls
> like getpid(), getppid() and others, but obviously cause increased =
context
> switch latency.
>=20
> Per-CPU page would then solve the proposal of having an indicator of
> other threads running. I am not sure how much do we care of the =
potential
> information leak there.

FYI, the FreeBSD/MIPS kernel already makes use of an MD per-thread page =
using a reserved TLB entry switched on each kernel context switch. =
Interestingly, this model effectively conflicts (semantically) with the =
higher-level MI per-CPU mechanism. It would be nice to unify across the =
layers within the kernel, even if not all the way to userspace.

Robert=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E316FFF8-7718-45C8-88F7-3A725B54E976>