Re: [PATCH v5 2/2] clocksource: add J-Core timer/clocksource driver

From: Rich Felker
Date: Thu Jul 28 2016 - 16:01:05 EST


On Thu, Jul 28, 2016 at 04:44:05PM +0200, Thomas Gleixner wrote:
> > +static int jcore_pit_cpu_notify(struct notifier_block *self,
> > + unsigned long action, void *hcpu)
> > +{
> > + struct jcore_pit_nb *nb = container_of(self, struct jcore_pit_nb, nb);
> > + switch (action & ~CPU_TASKS_FROZEN) {
> > + case CPU_STARTING:
> > + jcore_pit_local_init(this_cpu_ptr(nb->pit_percpu));
> > + break;
> > + }
> > + return NOTIFY_OK;
>
> Please convert this to the new state machine model of cpu
> hotplug. CPU_STARTING will be gone very soon. Here is an example:
>
> http://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit/?h=smp/hotplug&id=7e86e8bd8dd67649d176e08d8dfb90039f0a1e98

Trying this change now and I'm getting hangs inside
cpuhp_invoke_ap_callback between wake_up_process and
wait_for_completion. I suspect it's not possible to run a scheduled
task yet because there's no timer yet, or something like that. Do I
need further infrastructure from tip that's not upstream yet in order
to test this? I just rebased on linus/master and still have the same
problem, but none of the other driver changes are in Linus's tree yet.
Following the other drivers in tip (again, I don't have any of these
in my tree), I put the new state between CPUHP_AP_SCHED_STARTING and
CPUHP_AP_NOTIFY_STARTING; is this correct?

Rich