Re: [Xen-devel] [PATCH 2/2] xen/events: Convert to hotplug state machine
From: David Vrabel
Date: Mon Aug 15 2016 - 11:06:35 EST
On 15/08/16 15:46, Boris Ostrovsky wrote:
> From: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
>
> Install the callbacks via the state machine.
[...]
> +static int xen_evtchn_cpu_dead(unsigned int cpu)
> +{
> + __evtchn_fifo_handle_events(cpu, true);
> + return 0;
> +}
I'm not familiar with the new state machine. When this is called, what
state is the CPU in?
In particular, local interrupts must be disabled and all non-percpu irqs
must have been migrated to other CPUs.
> int __init xen_evtchn_fifo_init(void)
> {
> @@ -456,7 +444,9 @@ int __init xen_evtchn_fifo_init(void)
>
> evtchn_ops = &evtchn_ops_fifo;
>
> - register_cpu_notifier(&evtchn_fifo_cpu_notifier);
> + cpuhp_setup_state_nocalls(CPUHP_XEN_EVTCHN_PREPARE,
> + "CPUHP_XEN_EVTCHN_PREPARE",
> + xen_evtchn_cpu_prepare, xen_evtchn_cpu_dead);
> out:
> put_cpu();
> return ret;
> diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
> index d6beeb9..c60a17c 100644
> --- a/include/linux/cpuhotplug.h
> +++ b/include/linux/cpuhotplug.h
> @@ -22,6 +22,7 @@ enum cpuhp_state {
> CPUHP_SMPCFD_PREPARE,
> CPUHP_RCUTREE_PREP,
> CPUHP_XEN_PREPARE,
> + CPUHP_XEN_EVTCHN_PREPARE,
> CPUHP_NOTIFY_PREPARE,
> CPUHP_TIMERS_DEAD,
> CPUHP_BRINGUP_CPU,
>