From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49469) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUdlU-000128-MY for qemu-devel@nongnu.org; Thu, 18 Sep 2014 11:37:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XUdlM-00037o-Cz for qemu-devel@nongnu.org; Thu, 18 Sep 2014 11:37:00 -0400 Received: from e06smtp17.uk.ibm.com ([195.75.94.113]:40853) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUdlM-00035w-4u for qemu-devel@nongnu.org; Thu, 18 Sep 2014 11:36:52 -0400 Received: from /spool/local by e06smtp17.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 18 Sep 2014 16:36:45 +0100 Date: Thu, 18 Sep 2014 17:36:39 +0200 From: Greg Kurz Message-ID: <20140918173639.28c2a52a@bahia.local> In-Reply-To: <20140828143930.21832.36114@loki> References: <1409160982-16389-1-git-send-email-mdroth@linux.vnet.ibm.com> <1409160982-16389-7-git-send-email-mdroth@linux.vnet.ibm.com> <20140828121806.34259981@bahia.local> <20140828143930.21832.36114@loki> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Qemu-stable] [PATCH 06/25] pci: Use bus master address space for delivering MSI/MSI-X messages List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Roth Cc: Alexander Graf , qemu-devel@nongnu.org, qemu-stable@nongnu.org On Thu, 28 Aug 2014 09:39:30 -0500 Michael Roth wrote: > Quoting Greg Kurz (2014-08-28 05:18:06) > > On Wed, 27 Aug 2014 12:36:03 -0500 > > Michael Roth wrote: > > > From: Jan Kiszka > > > > > > The spec says (and real HW confirms this) that, if the bus master bit > > > is 0, the device will not generate any PCI accesses. MSI and MSI-X > > > messages fall among these, so we should use the corresponding address > > > space to deliver them. This will prevent delivery if bus master support > > > is disabled. > > > > > > Cc: qemu-stable@nongnu.org > > > Signed-off-by: Jan Kiszka > > > Reviewed-by: Michael S. Tsirkin > > > Signed-off-by: Michael S. Tsirkin > > > (cherry picked from commit cc943c36faa192cd4b32af8fe5edb31894017d35) > > > Signed-off-by: Michael Roth > > > --- > > > > Hi Michael, > > > > This commit breaks virtio for spapr. A fix is available in Alex's ppc-next: > > > > From: Greg Kurz > > spapr_pci: map the MSI window in each PHB > > > > https://github.com/agraf/qemu/commit/7af2868fc76857e19c232bbe9e99a95d61138213 > > Thanks, I've gone ahead and applied it. Tested virtio + pseries before/after > and it seems to fix the issue. > Michael, We have a problem again with pseries guests... Since commit cc943c36faa192cd4b32af8fe5edb31894017d35 was not applied to stable, virtio PCI devices notify through the global address space. Unfortunately, commit 7af2868fc76857e19c232bbe9e99a95d61138213 removes the MSI window from the global address space... The result is that 2.1.1 is broken for pseries using virtio... Reverting 0824ca6bd126b97fac18d12d514823463f415bec from stable fixes the issue. I guess we should do that and try again when we have it all fixed in master. Sorry for not having anticipated that for 2.1.1... :-\ Cheers. -- Greg > > > > Cheers. > > > > -- > > Greg > > > > > hw/pci/msi.c | 2 +- > > > hw/pci/msix.c | 2 +- > > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/hw/pci/msi.c b/hw/pci/msi.c > > > index a4a3040..52d2313 100644 > > > --- a/hw/pci/msi.c > > > +++ b/hw/pci/msi.c > > > @@ -291,7 +291,7 @@ void msi_notify(PCIDevice *dev, unsigned int vector) > > > "notify vector 0x%x" > > > " address: 0x%"PRIx64" data: 0x%"PRIx32"\n", > > > vector, msg.address, msg.data); > > > - stl_le_phys(&address_space_memory, msg.address, msg.data); > > > + stl_le_phys(&dev->bus_master_as, msg.address, msg.data); > > > } > > > > > > /* Normally called by pci_default_write_config(). */ > > > diff --git a/hw/pci/msix.c b/hw/pci/msix.c > > > index 5c49bfc..20ae476 100644 > > > --- a/hw/pci/msix.c > > > +++ b/hw/pci/msix.c > > > @@ -439,7 +439,7 @@ void msix_notify(PCIDevice *dev, unsigned vector) > > > > > > msg = msix_get_message(dev, vector); > > > > > > - stl_le_phys(&address_space_memory, msg.address, msg.data); > > > + stl_le_phys(&dev->bus_master_as, msg.address, msg.data); > > > } > > > > > > void msix_reset(PCIDevice *dev) > > > > > > > > -- > > Gregory Kurz kurzgreg@fr.ibm.com > > gkurz@linux.vnet.ibm.com > > Software Engineer @ IBM/Meiosys http://www.ibm.com > > Tel +33 (0)562 165 496 > > > > "Anarchy is about taking complete responsibility for yourself." > > Alan Moore.