From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932205AbcHOPGc (ORCPT ); Mon, 15 Aug 2016 11:06:32 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:62030 "EHLO SMTP02.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753181AbcHOPGb (ORCPT ); Mon, 15 Aug 2016 11:06:31 -0400 X-IronPort-AV: E=Sophos;i="5.28,525,1464652800"; d="scan'208";a="380183205" Subject: Re: [Xen-devel] [PATCH 2/2] xen/events: Convert to hotplug state machine To: Boris Ostrovsky , , References: <1471272407-4292-1-git-send-email-boris.ostrovsky@oracle.com> <1471272407-4292-3-git-send-email-boris.ostrovsky@oracle.com> CC: , , From: David Vrabel X-Enigmail-Draft-Status: N1110 Message-ID: <57B1DA71.3020806@citrix.com> Date: Mon, 15 Aug 2016 16:06:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.5.0 MIME-Version: 1.0 In-Reply-To: <1471272407-4292-3-git-send-email-boris.ostrovsky@oracle.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-DLP: MIA2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 15/08/16 15:46, Boris Ostrovsky wrote: > From: Sebastian Andrzej Siewior > > 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, >