Re: [RFC] Reentrant clock sources

From: Ingo Molnar
Date: Tue Nov 25 2008 - 22:53:21 EST



* john stultz <johnstul@xxxxxxxxxx> wrote:

> On Wed, 2008-11-26 at 04:07 +0100, Ingo Molnar wrote:
> > * Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> >
> > > > + cycle_t (*vread)(struct clocksource *cs);
> > >
> > > This is crap. vread can not access the clocksource.
> >
> > i think 'reentrant' in the sense of creating self-sufficient driver
> > entities. vread wont (and shouldnt) call ->vread() recursively - but
> > it might want to access fields on the clocksource.
>
> I think Thomas' issue is that vread() *cannot* access fields on the
> clocksource (since vread has to be careful not to access any
> non-vsyscall mapped memory).

ah, yeah - i was thinking about ->read().

in a more dynamic driver model the clocksource driver could store
dynamic data like target port/memory address next to the clocksource
driver, and access that - if the driver pointer is passed in.

> However not all clocksources use vread(), but really I'm not quite
> clear on what one would want to access in the clocksource structure
> when making a ->read() call.
>
> So maybe a further description of what specific need motivates this
> change would be helpful? The brief description of power management
> doesn't quite click in my head yet.

yeah, that would be nice.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/