Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Dec 2010 14:01:15 -0500
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        Andriy Gapon <avg@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: non-invariant tsc and cputicker
Message-ID:  <201012061401.17904.jkim@FreeBSD.org>
In-Reply-To: <4CFD2E1E.2080604@freebsd.org>
References:  <4CF92852.20705@freebsd.org> <201012061334.22475.jkim@FreeBSD.org> <4CFD2E1E.2080604@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 06 December 2010 01:40 pm, Andriy Gapon wrote:
> 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=15544
> >>>4
> >>> http://svn.freebsd.org/viewvc/base?view=revision&revision=15553
> >>>4
> >>>
> >>> 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!

:-) Don't get me wrong, I generally agree with you *iff* it does not 
hurt too much.  Anyway, this issue should be resolved from the root, 
i.e., kern_resouce.c, if possible.

> >> 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?

The latter, kinda.

Jung-uk Kim



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