Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 1273684 Details for
Bug 1433831
NVMe SSD fails to initialize on AWS i3.4xlarge instances
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh90 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
RHEL7 version of the patch
0001-xen-do-not-re-use-pirq-number-cached-in-pci-device-m.patch (text/plain), 3.56 KB, created by
Vitaly Kuznetsov
on 2017-04-24 18:03:44 UTC
(
hide
)
Description:
RHEL7 version of the patch
Filename:
MIME Type:
Creator:
Vitaly Kuznetsov
Created:
2017-04-24 18:03:44 UTC
Size:
3.56 KB
patch
obsolete
>From 5a2fae0c8f6525cd252494428866dc33c8ff3c98 Mon Sep 17 00:00:00 2001 >From: Dan Streetman <ddstreet@ieee.org> >Date: Fri, 13 Jan 2017 15:07:51 -0500 >Subject: [RHEL7.4 KERNEL PATCH] xen: do not re-use pirq number cached in pci > device msi msg data > >Revert the main part of commit: >af42b8d12f8a ("xen: fix MSI setup and teardown for PV on HVM guests") > >That commit introduced reading the pci device's msi message data to see >if a pirq was previously configured for the device's msi/msix, and re-use >that pirq. At the time, that was the correct behavior. However, a >later change to Qemu caused it to call into the Xen hypervisor to unmap >all pirqs for a pci device, when the pci device disables its MSI/MSIX >vectors; specifically the Qemu commit: >c976437c7dba9c7444fb41df45468968aaa326ad >("qemu-xen: free all the pirqs for msi/msix when driver unload") > >Once Qemu added this pirq unmapping, it was no longer correct for the >kernel to re-use the pirq number cached in the pci device msi message >data. All Qemu releases since 2.1.0 contain the patch that unmaps the >pirqs when the pci device disables its MSI/MSIX vectors. > >This bug is causing failures to initialize multiple NVMe controllers >under Xen, because the NVMe driver sets up a single MSIX vector for >each controller (concurrently), and then after using that to talk to >the controller for some configuration data, it disables the single MSIX >vector and re-configures all the MSIX vectors it needs. So the MSIX >setup code tries to re-use the cached pirq from the first vector >for each controller, but the hypervisor has already given away that >pirq to another controller, and its initialization fails. > >This is discussed in more detail at: >https://lists.xen.org/archives/html/xen-devel/2017-01/msg00447.html > >Fixes: af42b8d12f8a ("xen: fix MSI setup and teardown for PV on HVM guests") >Signed-off-by: Dan Streetman <dan.streetman@canonical.com> >Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> >Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> >Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> >(cherry picked from commit c74fd80f2f41d05f350bb478151021f88551afe8) > >Conflicts: > arch/x86/pci/xen.c (no 4892c9b4a in RHEL as we don't care about Dom0, > s,__pci_write_msi_msg,__write_msi_msg, context) >--- > arch/x86/pci/xen.c | 23 +++++++---------------- > 1 file changed, 7 insertions(+), 16 deletions(-) > >diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c >index 68537b8..e7a3db4 100644 >--- a/arch/x86/pci/xen.c >+++ b/arch/x86/pci/xen.c >@@ -228,23 +228,14 @@ static int xen_hvm_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) > return 1; > > list_for_each_entry(msidesc, &dev->msi_list, list) { >- __read_msi_msg(msidesc, &msg); >- pirq = MSI_ADDR_EXT_DEST_ID(msg.address_hi) | >- ((msg.address_lo >> MSI_ADDR_DEST_ID_SHIFT) & 0xff); >- if (msg.data != XEN_PIRQ_MSI_DATA || >- xen_irq_from_pirq(pirq) < 0) { >- pirq = xen_allocate_pirq_msi(dev, msidesc); >- if (pirq < 0) { >- irq = -ENODEV; >- goto error; >- } >- xen_msi_compose_msg(dev, pirq, &msg); >- __write_msi_msg(msidesc, &msg); >- dev_dbg(&dev->dev, "xen: msi bound to pirq=%d\n", pirq); >- } else { >- dev_dbg(&dev->dev, >- "xen: msi already bound to pirq=%d\n", pirq); >+ pirq = xen_allocate_pirq_msi(dev, msidesc); >+ if (pirq < 0) { >+ irq = -ENODEV; >+ goto error; > } >+ xen_msi_compose_msg(dev, pirq, &msg); >+ __write_msi_msg(msidesc, &msg); >+ dev_dbg(&dev->dev, "xen: msi bound to pirq=%d\n", pirq); > irq = xen_bind_pirq_msi_to_irq(dev, msidesc, pirq, > (type == PCI_CAP_ID_MSIX) ? > "msi-x" : "msi", >-- >2.9.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1433831
:
1265908
|
1265909
|
1267439
|
1269062
|
1272366
|
1272391
|
1272630
|
1272695
|
1273561
| 1273684