Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Dec 2010 20:40:30 +0200
From:      Andriy Gapon <avg@freebsd.org>
To:        Jung-uk Kim <jkim@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: non-invariant tsc and cputicker
Message-ID:  <4CFD2E1E.2080604@freebsd.org>
In-Reply-To: <201012061334.22475.jkim@FreeBSD.org>
References:  <4CF92852.20705@freebsd.org> <201012061243.08577.jkim@FreeBSD.org> <4CFD2441.5090408@freebsd.org> <201012061334.22475.jkim@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
on 06/12/2010 20:34 Jung-uk Kim said the following:
> On Monday 06 December 2010 12:58 pm, Andriy Gapon wrote:
>> on 06/12/2010 19:42 Jung-uk Kim said the following:
>>> Sigh...  Please see the history of calcru() in
>>> sys/kern/kern_resource.c.  Most important ones are:
>>>
>>> http://svn.freebsd.org/viewvc/base?view=revision&revision=155444
>>> http://svn.freebsd.org/viewvc/base?view=revision&revision=155534
>>>
>>> Basically, we chose efficiency over accuracy and you are
>>> suggesting going backwards.
>>
>> Well, I guess that it depends.
>>
>> Looking at r155444 - the time is still going to be accounted in
>> ticks (but timecounter ticks).  BTW, I think that this quote says
>> something: "On more modern hardware no change in performance is
>> seen." and that was ~5 years ago.
> 
> "On slower machines, the avoided multiplications to normalize 
> timestams at every context switch, comes out as a 5-7% better score 
> on the unixbench/context1 microbenchmark.  On more modern hardware no 
> change in performance is seen."
> 
> His performance measurement was done for "the avoided multiplications 
> to normalize timestamps at every context switch", not for "change CPU 
> ticker from tc_cpu_ticks() to cpu_ticks()", which actually happened 
> in r155534 later.

Right.  I was just pointing out a fact.
That change is not going to get undone anyways.

>> Looking at r155534 - the only change that is going to get undone is
>> using TSC for the accounting ticks, and that is only for machines
>> with non-invariant TSC.  And I think that all sufficiently modern
>> machines have invariant TSC and, in Intel's words, that's an
>> architectural path going forward.
> 
> I understand that.  However, it is not clear to me why you want to 
> pessimize performance of old hardware.  If you can convince me old 
> hardware with slow timecounter hardware (e.g., i8254) does not hurt 
> too much, maybe it's okay.

Well, weighing totally bogus stats vs slight stats collection pessimization, I
have a new proposal - why we don't just hardcode some stats values?  That would
give that code unbeatable performance!

>> So, I don't think that I propose a dramatic change.
> 
> Shrug...  Still I want to see some evidence.

Evidence of what?
That nothing is going to be changed for new hardware?
Or that older hardware won't be slowed down to a crawl?

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CFD2E1E.2080604>