[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 0/9] xen/arm: Support SPIs routing
Hello all, Currently, Xen does not route SPIs to DOM0 when ACPI is inuse after the functionality has been reverted in Xen 4.7 by commit 909bd14. In the previous approach, the SPIs was routed when DOM0 was writing into ISENABLER. However, this has resulted to deadlock (see more details in [1]) as soon as the IRQ was enabled by DOM0. We have multiple solutions to route the IRQ: 1) Rework route_irq_to_guest to avoid the deadlock 2) Route and enable the IRQ outside of the emulation of ISENABLER 3) Remove the dependency on the IRQ type in the routing function and route all the unused IRQs during domain building 4) Add a new hypercall to let DOM0 routing the IRQ I think that 1) and 2) are not resilient because route_irq_to_guest may fail and there is no way to report this error to the guest (except by killing it). Furthermore, in solution 2) enabling the interrupt would need to be defer until the routing has been done. This would require a lot of code duplication. Which leave solution 3) and 4). The solution 4) requires to introduce a new (or re-use one) stable hypercall. I am not sure why we ruled out this solution when we reviewed the ACPI design document. This patch series is implementing the 3rd solution which defer the IRQ type configuration for DOM0 IRQ when ACPI is inuse. However, this will slightly increase the memory usage of Xen (54KB). I am happy to consider any other solutions. This series has been tested with ACPI by Shanker on QDF2XXXX server and I tested it on Juno r2 with DT. A branch with all the patches can be found here: git://xenbits.xen.org/people/julieng/xen-unstable.git branch irq-routing-acpi-v3 All the patches but #7 have been reviewed/acked by Stefano. Yours sincerely, [1] http://lists.xenproject.org/archives/html/xen-devel/2016-05/msg02633.html Julien Grall (9): xen/arm: gic: Consolidate the IRQ affinity set in a single place xen/arm: gic: Do not configure affinity during routing xen/arm: gic: split set_irq_properties xen/arm: gic: set_type: Pass the type in parameter rather than in desc->arch.type xen/arm: gic: Document how gic_set_irq_type should be called Revert "xen/arm: warn the user that we cannot route SPIs to Dom0 on ACPI" xen/arm: Allow DOM0 to set the IRQ type xen/arm: acpi: route all unused IRQs to DOM0 xen/arm: Fix coding style and update comment in acpi_route_spis xen/arch/arm/domain_build.c | 33 +++++++++++++++------------------ xen/arch/arm/gic-v2.c | 28 +++++++++++++--------------- xen/arch/arm/gic-v3.c | 22 ++++++++++------------ xen/arch/arm/gic.c | 36 ++++++++++++++++++++++-------------- xen/arch/arm/irq.c | 17 ++++++++++++++--- xen/arch/arm/vgic.c | 37 +++++++++++++++++++++++-------------- xen/include/asm-arm/gic.h | 14 ++++++++------ xen/include/asm-arm/irq.h | 6 ++++++ 8 files changed, 111 insertions(+), 82 deletions(-) -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |