Re: [PATCH] sched: Support current clocksource handling in fallback sched_clock().

From: Paul Mundt
Date: Thu May 28 2009 - 12:58:53 EST


On Thu, May 28, 2009 at 09:52:27AM -0700, Daniel Walker wrote:
> On Fri, 2009-05-29 at 01:40 +0900, Paul Mundt wrote:
> > On Thu, May 28, 2009 at 06:32:09PM +0200, Peter Zijlstra wrote:
> > > On Thu, 2009-05-28 at 09:13 -0700, Daniel Walker wrote:
> > > > On Thu, 2009-05-28 at 14:59 +0200, Peter Zijlstra wrote:
> > > > > CPU0 CPU1
> > > > >
> > > > > clock = ACCESS_ONCE(sched_clocksource);
> > > > >
> > > > > unload module
> > > > > clocksource_unregister()
> > > > > sched_clocksource = jiffies
> > > > > unmap data/text
> > > > >
> > > > > cyc2ns(clock, clocksource_read(clock)) <--- fireworks
> > > > >
> > > > >
> > > >
> > > > Do any module based clocksources even exist right now?
> > > > clocksource_unregister only seems to be used 3 times..
> > >
> > > Good point, it appears its not even exported.
> > >
> > > Thomas mentioned modules, I assumed.
> > >
> > The drivers/clocksource/ drivers in theory could be modular anyways.
> > Handling this transition properly is at least one less barrier to modular
> > clocksources, so I think it's progress regardless. I don't remember what
> > all of the other issues were though, John probably remembers.
>
> I don't think it's an important case to consider right now ..
> clocksources are usually so integral to the system putting one in a
> module seems counterintuitive.
>
I would not have mentioned it if it weren't something we already had use
cases for. For the SH timers alone we have 3 that can be used as
clocksources in any combination, excluding the differences in timer
channels per block. These tend to have different implications for
performance, power management, etc.

The only reason they are not modular today is because more work needs to
be done to handle clocksources going away, or at least there was the last
time we tried it.
--
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/