Re: [PATCH] sched: sched_clock() clocksource handling.

Daniel Walker
2009-06-03T14:58:22Z

On Wed, 2009-06-03 at 12:36 +0900, Paul Mundt wrote:
> On Tue, Jun 02, 2009 at 04:49:26AM -0700, Daniel Walker wrote:
> > On Tue, 2009-06-02 at 16:54 +0900, Paul Mundt wrote:
> > > unsigned long long __attribute__((weak)) sched_clock(void)
> > > {
> > > - return (unsigned long long)(jiffies - INITIAL_JIFFIES)
> > > - * (NSEC_PER_SEC / HZ);
> > > + unsigned long long time;
> > > + struct clocksource *clock;
> > > +
> > > + rcu_read_lock();
> > > + clock = rcu_dereference(sched_clocksource);
> > > + time = cyc2ns(clock, clocksource_read(clock));
> > > + rcu_read_unlock();
> > > +
> > > + return time;
> > > }
> >
> > My concerns with the locking here still stand. Nothing you've said or
> > done bolsters the clocksource in modules argument. I think what your
> > planning for sh clocksources seems very inelegant. I would imagine a
> > better solution is out there. I'd prefer if you just leave sched_clock
> > alone.
> >
> This is the first I've heard you mention locking concerns, and as usual
> there is not enough technical content (or any, really) to go on to even
> reply to this. Whether you consider my solution for sh clocksources
> elegant or not is irrelevant, as I wasn't soliciting feedback, and it's a
> problem that has to be dealt with regardless of whether it's a pretty one
> or not.

I think maybe your not reading my emails .. I said there is unnessesary
locking in sched_clock, and that it's fixing a problem that doesn't
exist (i.e. clocksources in modules) .. You claim you want clocksources
in modules because you have a useful case in sh, which I consider not
very useful .. And your refusing to remove the locking, or that's how it
seems. So I'd prefer you don't submit this code any longer. I don't
think you know what your doing in this case.

This is not hand waving, and it is technical.

Daniel