[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 02/13] xen/events: remove unnecessary init_evtchn_cpu_bindings()
On Fri, Sep 13, 2013 at 05:59:50PM +0100, David Vrabel wrote: > From: David Vrabel <david.vrabel@xxxxxxxxxx> > > Event channels are always explicitly bound to a specific VCPU before > they are first enabled. There is no need to initialize all possible > events as bound to VCPU 0 at start of day or after a resume. How long has this presumption about explicit bounding been in the hypervisor? Should there also be a patch in the Xen headers documenting this behavior? Looks good to me - thought I would add the comment mentioning how long this behavior has been with the hypervisor - as we still can run on Xen 4.0 hypervisors and should not break that (and perhaps they don't rebind there?). > > Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> > --- > drivers/xen/events.c | 22 ---------------------- > 1 files changed, 0 insertions(+), 22 deletions(-) > > diff --git a/drivers/xen/events.c b/drivers/xen/events.c > index ddcdbb5..1e2c74b 100644 > --- a/drivers/xen/events.c > +++ b/drivers/xen/events.c > @@ -334,24 +334,6 @@ static void bind_evtchn_to_cpu(unsigned int chn, > unsigned int cpu) > info_for_irq(irq)->cpu = cpu; > } > > -static void init_evtchn_cpu_bindings(void) > -{ > - int i; > -#ifdef CONFIG_SMP > - struct irq_info *info; > - > - /* By default all event channels notify CPU#0. */ > - list_for_each_entry(info, &xen_irq_list_head, list) { > - struct irq_desc *desc = irq_to_desc(info->irq); > - cpumask_copy(desc->irq_data.affinity, cpumask_of(0)); > - } > -#endif > - > - for_each_possible_cpu(i) > - memset(per_cpu(cpu_evtchn_mask, i), > - (i == 0) ? ~0 : 0, NR_EVENT_CHANNELS/8); > -} > - > static inline void clear_evtchn(int port) > { > struct shared_info *s = HYPERVISOR_shared_info; > @@ -1778,8 +1760,6 @@ void xen_irq_resume(void) > unsigned int cpu, evtchn; > struct irq_info *info; > > - init_evtchn_cpu_bindings(); > - > /* New event-channel space is not 'live' yet. */ > for (evtchn = 0; evtchn < NR_EVENT_CHANNELS; evtchn++) > mask_evtchn(evtchn); > @@ -1890,8 +1870,6 @@ void __init xen_init_IRQ(void) > for (i = 0; i < NR_EVENT_CHANNELS; i++) > evtchn_to_irq[i] = -1; > > - init_evtchn_cpu_bindings(); > - > /* No event channels are 'live' right now. */ > for (i = 0; i < NR_EVENT_CHANNELS; i++) > mask_evtchn(i); > -- > 1.7.2.5 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |