[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Multiple issues with event channel on Xen on ARM
On 04/02/14 23:18, Julien Grall wrote: > Hello David, > > I'm currently trying to use Linux 3.14-rc1 as Linux guest on Xen on ARM (Xen > 4.4-rc3). > > I have multiple issues with your event channel patch series on Linux and Xen > side. > I tried to use Linux 3.14-rc1 as dom0 but it was worst (unable to create > guests). I think there must be two issues here as both 2-level and FIFO events are broken. > I'm using a simple guest config: > kernel="/root/zImage" > memory=32 > name="test" > vcpus=1 > autoballon="off" > extra="console=hvc0" > > If everything is ok, I should see that Linux is unable to find the root > filesystem. > But here, Linux is stucked. > >>From Linux side, after bisecting, I found that the offending commit is: > xen/events: remove unnecessary init_evtchn_cpu_bindings() > > Because the guest-side binding of an event to a VCPU (i.e., setting > the local per-cpu masks) is always explicitly done after an event > channel is bound to a port, there is no need to initialize all > possible events as bound to VCPU 0 at start of day or after a resume. > > Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> > Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > Reviewed-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> > > With this patch, the function __xen_evtchn_do_upcall won't be able > to find an events (pendings_bits == 0 every time). > It seems the second part of init_evtchn_cpu_bindings is necessary on ARM. I think this is because binding an interdomain or allocating an unbound event channel does call bind_evtchn_to_cpu(evtchn, 0) which is required to set the local VCPU masks. I think this happened to work on x86 because during the generic irq setup, the irq affinity is always set which then binds the event channel to the right VCPU. I guess ARM's irq setup misses this step. This shouldn't affect the FIFO-based events though since evtchn_fifo_bind_to_cpu() is a no-op. David _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |