All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: john stultz <johnstul@us.ibm.com>
Cc: lkml <linux-kernel@vger.kernel.org>,
	Tim Schmielau <tim@physik3.uni-rostock.de>,
	George Anzinger <george@mvista.com>,
	albert@users.sourceforge.net,
	Ulrich Windl <ulrich.windl@rz.uni-regensburg.de>,
	Christoph Lameter <clameter@sgi.com>,
	Dominik Brodowski <linux@dominikbrodowski.de>,
	David Mosberger <davidm@hpl.hp.com>, Andi Kleen <ak@suse.de>,
	paulus@samba.org, schwidefsky@de.ibm.com,
	keith maanthey <kmannth@us.ibm.com>,
	Patricia Gaughen <gone@us.ibm.com>,
	Chris McDermott <lcm@us.ibm.com>, Max Asbock <masbock@us.ibm.com>,
	mahuja@us.ibm.com, Nishanth Aravamudan <nacc@us.ibm.com>,
	Darren Hart <darren@dvhart.com>,
	"Darrick J. Wong" <djwong@us.ibm.com>,
	Anton Blanchard <anton@samba.org>,
	donf@us.ibm.com
Subject: Re: [RFC][PATCH] new timeofday core subsystem (v. A3)
Date: Mon, 14 Mar 2005 11:29:18 -0800	[thread overview]
Message-ID: <20050314192918.GC32638@waste.org> (raw)
In-Reply-To: <1110825765.30498.370.camel@cog.beaverton.ibm.com>

On Mon, Mar 14, 2005 at 10:42:45AM -0800, john stultz wrote:
> 
> > > +static inline cycle_t read_timesource(struct timesource_t* ts)
> > > +{
> > > +	switch (ts->type) {
> > > +	case TIMESOURCE_MMIO_32:
> > > +		return (cycle_t)readl(ts->mmio_ptr);
> > > +	case TIMESOURCE_MMIO_64:
> > > +		return (cycle_t)readq(ts->mmio_ptr);
> > > +	case TIMESOURCE_CYCLES:
> > > +		return (cycle_t)get_cycles();
> > > +	default:/* case: TIMESOURCE_FUNCTION */
> > > +		return ts->read_fnct();
> > > +	}
> > > +}
> > 
> > Wouldn't it be better to change read_fnct to take a timesource * and
> > then change all the other guys to generic_timesource_<foo> helper
> > functions? This does away with the switch and makes it trivial to add
> > new generic sources. Change mmio_ptr to void *private.
> 
> Not sure if I totally understand this, but originally I just had a read
> function, but to allow this framework to function w/ ia64 fsyscalls (and
> likely other arches vsyscalls) we need to pass the raw mmio pointers.
> Thus the timesource type and switch idea was taken from the time
> interpolator code.

Well for vsyscall, we can leave the mmio_ptr and type. But in-kernel,
I think we'd rather always call read_fnct with generic helpers than hit this
switch every time.

> > > +	if (time_suspend_state != TIME_RUNNING) {
> > > +		printk(KERN_INFO "timeofday_suspend_hook: ACK! called while we're suspended!");
> > 
> > Line length. Perhaps BUG_ON instead.
> 
> Eh, its not fatal to BUG_ON seems a bit harsh. I'll fix the line length
> though. 

Well there's a trade-off here. If it's something that should never
happen and you only printk, you may never get a failure report
(especially at KERN_INFO). It's good to be accomodating of external
errors, but catching internal should-never-happen errors is important.

> > Excellent question. 
> 
> Indeed.  Currently jiffies is used as both a interrupt counter and a
> time unit, and I'm trying make it just the former. If I emulate it then
> it stops functioning as a interrupt counter, and if I don't then I'll
> probably break assumptions about jiffies being a time unit. So I'm not
> sure which is the easiest path to go until all the users of jiffies are
> audited for intent. 

Post this as a separate thread. There are various thoughts floating
around on this already.

-- 
Mathematics is the supreme nostalgia of our time.

  reply	other threads:[~2005-03-14 19:31 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-12  1:24 [RFC][PATCH] new timeofday core subsystem (v. A3) john stultz
2005-03-12  1:25 ` [RFC][PATCH] new timeofday arch specific hooks " john stultz
2005-03-12  1:26   ` [RFC][PATCH] new timeofday arch specific timesource drivers " john stultz
2005-03-12  5:52   ` [RFC][PATCH] new timeofday arch specific hooks " Benjamin Herrenschmidt
2005-03-14 18:09     ` john stultz
2005-03-15 22:59   ` Pavel Machek
2005-03-15 23:42     ` john stultz
2005-03-15 23:44       ` Pavel Machek
2005-03-16  1:44         ` john stultz
2005-03-16 10:53           ` Pavel Machek
2005-03-13  0:49 ` [RFC][PATCH] new timeofday core subsystem " Matt Mackall
2005-03-13  1:46   ` Andreas Schwab
2005-03-14 18:42   ` john stultz
2005-03-14 19:29     ` Matt Mackall [this message]
2005-03-14 19:43       ` john stultz
2005-03-14 19:51         ` Matt Mackall
2005-03-14 20:04           ` john stultz
2005-03-14 20:27             ` Matt Mackall
2005-03-15  0:01               ` Christoph Lameter
2005-03-15  2:16               ` Albert Cahalan
2005-03-15  3:22                 ` Christoph Lameter
2005-03-15 15:23                   ` Albert Cahalan
2005-03-15 15:52                     ` Chris Friesen
2005-03-17 16:55                     ` Russell King
2005-03-17 19:44                       ` Albert Cahalan
2005-03-17 20:28                         ` Russell King
2005-03-15  0:28         ` Christoph Lameter
2005-03-15  0:43           ` john stultz
2005-03-14 23:40     ` George Anzinger
2005-03-15  1:11       ` [topic change] jiffies as a time value john stultz
2005-03-15 23:01         ` George Anzinger
2005-03-16  3:57           ` john stultz
2005-03-15  0:07 ` [RFC][PATCH] new timeofday core subsystem (v. A3) Christoph Lameter
2005-03-15  5:37 ` Christoph Lameter
2005-03-15 18:25   ` john stultz
2005-03-15 22:08     ` George Anzinger
2005-03-17  8:15     ` Ulrich Windl
2005-03-15  6:09 ` Christoph Lameter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050314192918.GC32638@waste.org \
    --to=mpm@selenic.com \
    --cc=ak@suse.de \
    --cc=albert@users.sourceforge.net \
    --cc=anton@samba.org \
    --cc=clameter@sgi.com \
    --cc=darren@dvhart.com \
    --cc=davidm@hpl.hp.com \
    --cc=djwong@us.ibm.com \
    --cc=donf@us.ibm.com \
    --cc=george@mvista.com \
    --cc=gone@us.ibm.com \
    --cc=johnstul@us.ibm.com \
    --cc=kmannth@us.ibm.com \
    --cc=lcm@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@dominikbrodowski.de \
    --cc=mahuja@us.ibm.com \
    --cc=masbock@us.ibm.com \
    --cc=nacc@us.ibm.com \
    --cc=paulus@samba.org \
    --cc=schwidefsky@de.ibm.com \
    --cc=tim@physik3.uni-rostock.de \
    --cc=ulrich.windl@rz.uni-regensburg.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.