From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36577) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WigPj-0007TY-T4 for qemu-devel@nongnu.org; Fri, 09 May 2014 04:44:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WigPd-0001at-6x for qemu-devel@nongnu.org; Fri, 09 May 2014 04:44:19 -0400 Received: from mail-pd0-f170.google.com ([209.85.192.170]:46849) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WigPd-0001ae-0S for qemu-devel@nongnu.org; Fri, 09 May 2014 04:44:13 -0400 Received: by mail-pd0-f170.google.com with SMTP id v10so3480938pde.15 for ; Fri, 09 May 2014 01:44:12 -0700 (PDT) Message-ID: <536C9558.2050600@ozlabs.ru> Date: Fri, 09 May 2014 18:44:08 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1399445471-23682-1-git-send-email-pingfank@linux.vnet.ibm.com> <5369DEBD.40306@ozlabs.ru> In-Reply-To: Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] spapr: pci: clean msi info when releasing it List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: liu ping fan Cc: qemu-devel@nongnu.org, Alexander Graf On 05/09/2014 05:04 PM, liu ping fan wrote: > On Wed, May 7, 2014 at 3:20 PM, Alexey Kardashevskiy wrote: >> On 05/07/2014 04:51 PM, Liu Ping Fan wrote: >>> In current code, we use phb->msi_table[ndev].nvec to indicate whether >>> this msi entries are used by a device or not. So when unplug a pci >>> device, we should reset nvec to zero. >>> >>> Signed-off-by: Liu Ping Fan >>> --- >>> hw/ppc/spapr_pci.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c >>> index cbef095..7b1dfe1 100644 >>> --- a/hw/ppc/spapr_pci.c >>> +++ b/hw/ppc/spapr_pci.c >>> @@ -316,6 +316,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPREnvironment *spapr, >>> rtas_st(rets, 0, RTAS_OUT_HW_ERROR); >>> return; >>> } >>> + phb->msi_table[ndev].nvec = 0; >>> trace_spapr_pci_msi("Released MSIs", ndev, config_addr); >>> rtas_st(rets, 0, RTAS_OUT_SUCCESS); >>> rtas_st(rets, 1, 0); >> >> >> ibm,change-msi is called with 0 to disable MSIs. If later the guest decides >> to reenable MSI on the same device (rmmod + modprobe in the guest can do >> that I suppose), new block will be allocated because of this patch which is >> bad. >> >> And there is no PCI hotplug for SPAPR in upstream QEMU so this patch cannot >> possibly fix it :) >> > I saw your patch [PATCH 0/6] move interrupts from spapr to xics. And > it is great to consider the reclaim of irq. So if I call something to > free the irq after "phb->msi_table[ndev].nvec = 0", can it work ? Yes, then it should work but I am actually planning more than just that so we will see how it goes. -- Alexey