xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@arm.com>
To: xen-devel@lists.xen.org
Cc: sstabellini@kernel.org, steve.capper@arm.com,
	Julien Grall <julien.grall@arm.com>,
	shannon.zhao@linaro.org, shankerd@codeaurora.org,
	wei.chen@linaro.org
Subject: [PATCH v3 0/9] xen/arm: Support SPIs routing
Date: Wed, 27 Jul 2016 14:58:21 +0100	[thread overview]
Message-ID: <1469627910-3902-1-git-send-email-julien.grall@arm.com> (raw)

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@lists.xen.org
https://lists.xen.org/xen-devel

             reply	other threads:[~2016-07-27 13:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-27 13:58 Julien Grall [this message]
2016-07-27 13:58 ` [PATCH v3 1/9] xen/arm: gic: Consolidate the IRQ affinity set in a single place Julien Grall
2016-07-27 13:58 ` [PATCH v3 2/9] xen/arm: gic: Do not configure affinity during routing Julien Grall
2016-07-27 13:58 ` [PATCH v3 3/9] xen/arm: gic: split set_irq_properties Julien Grall
2016-07-27 13:58 ` [PATCH v3 4/9] xen/arm: gic: set_type: Pass the type in parameter rather than in desc->arch.type Julien Grall
2016-07-27 13:58 ` [PATCH v3 5/9] xen/arm: gic: Document how gic_set_irq_type should be called Julien Grall
2016-07-27 13:58 ` [PATCH v3 6/9] Revert "xen/arm: warn the user that we cannot route SPIs to Dom0 on ACPI" Julien Grall
2016-07-27 13:58 ` [PATCH v3 7/9] xen/arm: Allow DOM0 to set the IRQ type Julien Grall
2016-07-27 19:22   ` Stefano Stabellini
2016-07-27 13:58 ` [PATCH v3 8/9] xen/arm: acpi: route all unused IRQs to DOM0 Julien Grall
2016-07-27 13:58 ` [PATCH v3 9/9] xen/arm: Fix coding style and update comment in acpi_route_spis Julien Grall
2016-07-27 19:27 ` [PATCH v3 0/9] xen/arm: Support SPIs routing Stefano Stabellini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1469627910-3902-1-git-send-email-julien.grall@arm.com \
    --to=julien.grall@arm.com \
    --cc=shankerd@codeaurora.org \
    --cc=shannon.zhao@linaro.org \
    --cc=sstabellini@kernel.org \
    --cc=steve.capper@arm.com \
    --cc=wei.chen@linaro.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).