From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: Re: [RFC PATCH V2 06/10] Qemu/PCI: Add macros for faked PCI migration capability Date: Wed, 02 Dec 2015 15:25:20 -0700 Message-ID: <1449095120.15753.146.camel@redhat.com> References: <1448372127-28115-1-git-send-email-tianyu.lan@intel.com> <1448372127-28115-7-git-send-email-tianyu.lan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: aik@ozlabs.ru, amit.shah@redhat.com, anthony@codemonkey.ws, ard.biesheuvel@linaro.org, blauwirbel@gmail.com, cornelia.huck@de.ibm.com, eddie.dong@intel.com, nrupal.jani@intel.com, agraf@suse.de, kvm@vger.kernel.org, pbonzini@redhat.com, qemu-devel@nongnu.org, emil.s.tantilov@intel.com, gerlitz.or@gmail.com, donald.c.skidmore@intel.com, mark.d.rustad@intel.com, mst@redhat.com, kraxel@redhat.com, lcapitulino@redhat.com, quintela@redhat.com To: Lan Tianyu Return-path: Received: from mx1.redhat.com ([209.132.183.28]:38692 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757096AbbLBWZW (ORCPT ); Wed, 2 Dec 2015 17:25:22 -0500 In-Reply-To: <1448372127-28115-7-git-send-email-tianyu.lan@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, 2015-11-24 at 21:35 +0800, Lan Tianyu wrote: > This patch is to extend PCI CAP id for migration cap and > add reg macros. The CAP ID is trial and we may find better one if the > solution is feasible. > > *PCI_VF_MIGRATION_CAP > For VF driver to control that triggers mailbox irq or not during migration. > > *PCI_VF_MIGRATION_VMM_STATUS > Qemu stores migration status in the reg > > *PCI_VF_MIGRATION_VF_STATUS > VF driver tells Qemu ready for migration > > *PCI_VF_MIGRATION_IRQ > VF driver stores mailbox interrupt vector in the reg for Qemu to trigger during migration. > > Signed-off-by: Lan Tianyu > --- > include/hw/pci/pci_regs.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/include/hw/pci/pci_regs.h b/include/hw/pci/pci_regs.h > index 57e8c80..0dcaf7e 100644 > --- a/include/hw/pci/pci_regs.h > +++ b/include/hw/pci/pci_regs.h > @@ -213,6 +213,7 @@ > #define PCI_CAP_ID_MSIX 0x11 /* MSI-X */ > #define PCI_CAP_ID_SATA 0x12 /* Serial ATA */ > #define PCI_CAP_ID_AF 0x13 /* PCI Advanced Features */ > +#define PCI_CAP_ID_MIGRATION 0x14 > #define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */ > #define PCI_CAP_FLAGS 2 /* Capability defined flags (16 bits) */ > #define PCI_CAP_SIZEOF 4 > @@ -716,4 +717,22 @@ > #define PCI_ACS_CTRL 0x06 /* ACS Control Register */ > #define PCI_ACS_EGRESS_CTL_V 0x08 /* ACS Egress Control Vector */ > > +/* Migration*/ > +#define PCI_VF_MIGRATION_CAP 0x04 > +#define PCI_VF_MIGRATION_VMM_STATUS 0x05 > +#define PCI_VF_MIGRATION_VF_STATUS 0x06 > +#define PCI_VF_MIGRATION_IRQ 0x07 > + > +#define PCI_VF_MIGRATION_CAP_SIZE 0x08 > + > +#define VMM_MIGRATION_END 0x00 > +#define VMM_MIGRATION_START 0x01 > + > +#define PCI_VF_WAIT_FOR_MIGRATION 0x00 > +#define PCI_VF_READY_FOR_MIGRATION 0x01 > + > +#define PCI_VF_MIGRATION_DISABLE 0x00 > +#define PCI_VF_MIGRATION_ENABLE 0x01 > + > + > #endif /* LINUX_PCI_REGS_H */ This will of course break if the PCI SIG defines that capability index. Couldn't this be done within a vendor defined capability? Thanks, Alex