Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Dec 2012 20:27:31 +0100
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        Davide Italiano <davide@freebsd.org>
Cc:        freebsd-current <freebsd-current@freebsd.org>, freebsd-arch@freebsd.org
Subject:   regarding r242905 ('us' argument to some callout functions) was Re: [RFC/RFT] calloutng
Message-ID:  <20121217192731.GA83405@onelab2.iet.unipi.it>
In-Reply-To: <CACYV=-G9sG1Oo%2Bgz3kXmdeK85P7%2BZZg1CnAPLvwCuAbNftmv6A@mail.gmail.com>
References:  <CACYV=-F7_imU-JsPfeOZEyEPGKO2PVm1w1W3VdsH3jGiDvnmBg@mail.gmail.com> <CA%2BhQ2%2BgyhRHkB9Y%2BeGADvbjvJxSNSjYC%2BTQX8-0mf9LUD1V2HA@mail.gmail.com> <CACYV=-G9sG1Oo%2Bgz3kXmdeK85P7%2BZZg1CnAPLvwCuAbNftmv6A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[addressing the various items separately]

On Fri, Dec 14, 2012 at 01:57:36PM +0100, Davide Italiano wrote:
> On Fri, Dec 14, 2012 at 7:41 AM, Luigi Rizzo <rizzo@iet.unipi.it> wrote:
...
> > - for several functions the only change is the name of an argument
> >   from "busy" to "us". Can you elaborate the reason for the change,
> >   and whether "us" means microseconds or the pronoun ?)
> >
> 
> Please see r242905 by mav@.

i see the goal of this patch is to pass along the amount of
time till the next timer.

I wonder why the choice is to use (actually, call) the value
"microseconds" rather use a bintime or something scaled and with a
well defined resolution.

In fact looking at the relevant diff

http://svnweb.freebsd.org/base/projects/calloutng/sys/kern/kern_clocksource.c?r1=242905&r2=242904&pathrev=242905

cpu_idleclock() actually returns a value that is not even microseconds
but 1/(2^20) seconds. The value seems to be ignored right now
so it would be a good time to discuss the resolution.

I am concerned that at some point (5 years from now perhaps ?)
microseconds might start to become too coarse and we would like
something with a more fine-grained resolution. On the
other hand, for the purposes of this change, we can probably
live with an upper limit of some seconds (waking up the machine
once per second is not going to kill performance).

So i would suggest to make the argument to these functions
uint_32 or uint_64 (preferably the same for 32- and 64-bit machines),
rename it to something different from 'us'
and have at least 28-30 fractional bits to represent a bintime.

Right now you are using a bintime with 20 fractional and 11 or 43
bits for the integer part.


cheers
luigi



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