From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Sander Eikelenboom <linux@eikelenboom.it>,
David Vrabel <david.vrabel@citrix.com>,
Thomas Gleixner <tglx@linutronix.de>,
Bjorn Helgaas <bhelgaas@google.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Len Brown <len.brown@intel.com>, Pavel Machek <pavel@ucw.cz>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, "Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Tony Luck <tony.luck@intel.com>,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
xen-devel@lists.xenproject.org, linux-pci@vger.kernel.org
Subject: Re: [Bugfix v4 1/2] xen/pci: Fix xen IRQ allocation failure caused by commit b81975eade8c
Date: Fri, 16 Jan 2015 13:13:18 -0500 [thread overview]
Message-ID: <20150116181318.GA22690@l.oracle.com> (raw)
In-Reply-To: <1421327077-19894-2-git-send-email-jiang.liu@linux.intel.com>
On Thu, Jan 15, 2015 at 09:04:35PM +0800, Jiang Liu wrote:
> Commit b81975eade8c ("x86, irq: Clean up irqdomain transition code")
> breaks xen IRQ allocation because xen_smp_prepare_cpus() doesn't invoke
> setup_IO_APIC(), so no irqdomains created for IOAPICs and
> mp_map_pin_to_irq() fails at the very beginning.
>
> Currently Xen Domain0 has special treatment for ACPI SCI interrupt,
> that is initialize irq for ACPI SCI at early stage in a special way as:
> xen_init_IRQ()
> ->pci_xen_initial_domain()
> ->xen_setup_acpi_sci()
> Allocate and initialize irq for ACPI SCI
>
> Function xen_setup_acpi_sci() calls acpi_gsi_to_irq() to get an irq
> number for ACPI SCI. But unfortunately acpi_gsi_to_irq() depends on
> IOAPIC irqdomains through following path
> acpi_gsi_to_irq()
> ->mp_map_gsi_to_irq()
> ->mp_map_pin_to_irq()
> ->check IOAPIC irqdomain
>
> For PV domains, it uses Xen event based interrupt manangement and
> doesn't make uses of native IOAPIC, so no irqdomains created for IOAPIC.
> This causes Xen domain0 fails to install interrupt handler for ACPI SCI
> and all ACPI events will be lost. Please refer to:
> https://lkml.org/lkml/2014/12/19/178
>
> So the fix is to get rid of special treatment for ACPI SCI, just treat
> ACPI SCI as normal GSI interrupt as:
> acpi_gsi_to_irq()
> ->acpi_register_gsi()
> ->acpi_register_gsi_xen()
> ->xen_register_gsi()
>
> With above change, there's no need for xen_setup_acpi_sci() anymore.
> The above change also works with bare metal kernel too.
>
> Note: we need to test this patch on those special AMD systems which
> override normal SCI GSI (9) with strange GSI (20).
[ 0.000000] DMI: Supermicro X8DTN/X8DTN, BIOS 2.1c 10/28/2011
..
0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 20 low level)
[ 0.000000] ACPI: IRQ0 used by override.
..
6.358737] xen: registering gsi 20 triggering 0 polarity 1
[ 6.358756] xen: --> pirq=20 -> irq=20 (gsi=20)
...
-bash-4.1# cat /proc/interrupts |grep acpi
20: 0 0 0 xen-pirq-ioapic-level acpi
next prev parent reply other threads:[~2015-01-16 18:13 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-07 6:13 [Bugfix] x86/apic: Fix xen IRQ allocation failure caused by commit b81975eade8c Jiang Liu
2015-01-07 6:13 ` Jiang Liu
2015-01-07 14:50 ` Konrad Rzeszutek Wilk
2015-01-07 14:50 ` Konrad Rzeszutek Wilk
2015-01-07 15:37 ` Jiang Liu
2015-01-07 15:37 ` Jiang Liu
2015-01-07 15:37 ` Jiang Liu
2015-01-07 15:44 ` Konrad Rzeszutek Wilk
2015-01-07 15:44 ` Konrad Rzeszutek Wilk
2015-01-07 15:44 ` Konrad Rzeszutek Wilk
2015-01-08 6:36 ` Jiang Liu
2015-01-08 6:36 ` Jiang Liu
2015-01-09 21:15 ` Konrad Rzeszutek Wilk
2015-01-09 21:15 ` Konrad Rzeszutek Wilk
2015-01-09 21:15 ` Konrad Rzeszutek Wilk
2015-01-08 6:36 ` Jiang Liu
2015-01-07 14:50 ` Konrad Rzeszutek Wilk
2015-01-10 19:12 ` Sander Eikelenboom
2015-01-10 19:12 ` Sander Eikelenboom
2015-01-12 13:39 ` [PATCH v2] " Jiang Liu
2015-01-12 15:01 ` David Vrabel
2015-01-12 15:01 ` [Xen-devel] " David Vrabel
2015-01-12 23:18 ` Sander Eikelenboom
2015-01-12 23:18 ` [Xen-devel] " Sander Eikelenboom
2015-01-13 9:01 ` Thomas Gleixner
2015-01-14 3:09 ` [PATCH v3] " Jiang Liu
2015-01-14 12:23 ` Sander Eikelenboom
2015-01-14 12:29 ` Jiang Liu
2015-01-15 13:04 ` [Bugfix v4 0/2] " Jiang Liu
2015-01-15 13:04 ` [Bugfix v4 1/2] xen/pci: " Jiang Liu
2015-01-16 18:13 ` Konrad Rzeszutek Wilk [this message]
2015-01-19 4:39 ` Jiang Liu
2015-01-19 4:39 ` Jiang Liu
2015-01-19 4:41 ` Jiang Liu
2015-01-19 4:41 ` Jiang Liu
2015-01-20 19:12 ` Konrad Rzeszutek Wilk
2015-01-20 19:12 ` Konrad Rzeszutek Wilk
2015-01-16 18:13 ` Konrad Rzeszutek Wilk
2015-01-15 13:04 ` Jiang Liu
2015-01-15 13:04 ` [Bugfix v4 2/2] xen/pci: Simplify x86/pci/xen.c by killing gsi_override related code Jiang Liu
2015-01-15 13:04 ` Jiang Liu
2015-01-15 13:11 ` [Bugfix v4 0/2] Fix xen IRQ allocation failure caused by commit b81975eade8c Sander Eikelenboom
2015-01-15 14:22 ` Sander Eikelenboom
2015-01-15 14:37 ` Jiang Liu
2015-01-13 9:01 ` [PATCH v2] [Bugfix] x86/apic: " Thomas Gleixner
2015-01-13 2:23 ` [Xen-devel] " Jiang Liu
2015-01-13 10:09 ` David Vrabel
2015-01-13 12:39 ` Jiang Liu
2015-01-13 12:39 ` [Xen-devel] " Jiang Liu
2015-01-13 10:09 ` David Vrabel
2015-01-13 2:23 ` Jiang Liu
2015-01-12 13:39 ` Jiang Liu
2015-01-10 19:12 ` Sander Eikelenboom
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=20150116181318.GA22690@l.oracle.com \
--to=konrad.wilk@oracle.com \
--cc=bhelgaas@google.com \
--cc=david.vrabel@citrix.com \
--cc=hpa@zytor.com \
--cc=jiang.liu@linux.intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux@eikelenboom.it \
--cc=mingo@redhat.com \
--cc=pavel@ucw.cz \
--cc=rafael.j.wysocki@intel.com \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.