[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <57B1DA71.3020806@citrix.com>
Date: Mon, 15 Aug 2016 16:06:25 +0100
From: David Vrabel <david.vrabel@...rix.com>
To: Boris Ostrovsky <boris.ostrovsky@...cle.com>,
<david.vrabel@...rix.com>, <jgross@...e.com>
CC: <xen-devel@...ts.xenproject.org>, <bigeasy@...utronix.de>,
<linux-kernel@...r.kernel.org>
Subject: Re: [Xen-devel] [PATCH 2/2] xen/events: Convert to hotplug state
machine
On 15/08/16 15:46, Boris Ostrovsky wrote:
> From: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
>
> 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,
>
Powered by blists - more mailing lists