[GSoc] Timeconter Performance Improvements

Kostik Belousov kostikbel at gmail.com
Sat Mar 26 13:00:35 UTC 2011


On Sat, Mar 26, 2011 at 11:16:46PM +1100, Peter Jeremy wrote:
> On 2011-Mar-25 08:18:38 -0400, John Baldwin <jhb at freebsd.org> wrote:
> >For modern Intel CPUs you can just assume that the TSCs are in sync across 
> >packages.  They also have invariant TSC's meaning that the frequency doesn't 
> >change.
> 
> Synchronised P-state invariant TSCs vastly simplify the problem but
> not everyone has them.  Should the fallback be more complexity to
> support per-CPU TSC counts and varying frequencies or a fallback to
> reading the time via a syscall?
> 
> >I believe we already have a shared page (it holds the signal trampoline now)
> >for at least the x86 platform (probably some others as well).
> 
> r217151 for amd64 and r217400 for ppc.  It doesn't appear to be
> supported on other platforms.  My reading of the code is that there is
> a single shared page used by all processes/CPUs.  In order to support
> non-synchronised TSCs, this would need to be changed to per-CPU.
Not neccessary. If you have a reliable way to access proper private
per-CPU page from the array, then you could use the same method
to access the array in the single page.

IMO, per-cpu page in process address space at the same address
for all pages is too costly. I think we can target a modern hardware
for user-mode tsc, this is the kind of machines that are used for
benchmarks anyway.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20110326/2c8017bb/attachment.pgp


More information about the freebsd-hackers mailing list