From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40700) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X7EDg-00032l-1N for qemu-devel@nongnu.org; Tue, 15 Jul 2014 21:41:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X7EDX-0007MQ-96 for qemu-devel@nongnu.org; Tue, 15 Jul 2014 21:41:19 -0400 Received: from e23smtp01.au.ibm.com ([202.81.31.143]:39900) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X7EDV-0007LJ-1q for qemu-devel@nongnu.org; Tue, 15 Jul 2014 21:41:11 -0400 Received: from /spool/local by e23smtp01.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 16 Jul 2014 11:41:05 +1000 Date: Wed, 16 Jul 2014 11:40:59 +1000 From: Gavin Shan Message-ID: <20140716014059.GA14362@shangw> References: <1405470005-9957-1-git-send-email-gwshan@linux.vnet.ibm.com> <1405470005-9957-4-git-send-email-gwshan@linux.vnet.ibm.com> <53C5D0D8.9000709@ozlabs.ru> <20140716011624.GB11978@shangw> <53C5D61D.6040508@ozlabs.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C5D61D.6040508@ozlabs.ru> Subject: Re: [Qemu-devel] [PATCH v12 3/4] headers: Update kernel header Reply-To: Gavin Shan List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy Cc: qemu-devel@nongnu.org, agraf@suse.de, Gavin Shan , alex.williamson@redhat.com, qemu-ppc@nongnu.org On Wed, Jul 16, 2014 at 11:32:13AM +1000, Alexey Kardashevskiy wrote: >On 07/16/2014 11:16 AM, Gavin Shan wrote: >> On Wed, Jul 16, 2014 at 11:09:44AM +1000, Alexey Kardashevskiy wrote: >>> On 07/16/2014 10:20 AM, Gavin Shan wrote: >>>> This updates kernel header (vfio.h) for EEH support on VFIO PCI >>>> devices. >>> >>> Has this reached kernel upstream? The way linux headers update normally >>> happens is you have to run scripts/update-linux-headers.sh against some >>> linux kernel tag which you know that it won't change (like v3.16-rc5) and >>> post all the changes as a single patch. It is never a header update for a >>> specific feature, it is just an update. >>> >> >> The kernel part isn't merged yet. I guess that's for 3.17 merge window. >> Ok, good to know scripts/update-linux-headers.sh. So this patch should >> be dropped and some one run the script to update QEMU (linux-headers >> directory) ? > > >Once your changes are in upstream kernel, you wait till kernel tree gets >new "v3.xx-rcX" tag, then you run the script and make a separate patch for >QEMU. Then you wait till it reaches QEMU upstream (because I do not know >who will pull it to what tree, look at git history) or ppc-next (if Alex >pulls it and you are basing your work on ppc-next) and then repost other >patches. > Thanks for detailed explaining, Alexey. I guess I have to suspend a bit until "v3.17.rc1" is coming out. Thanks, Gavin >>> >>>> >>>> Signed-off-by: Gavin Shan >>>> --- >>>> linux-headers/linux/vfio.h | 34 ++++++++++++++++++++++++++++++++++ >>>> 1 file changed, 34 insertions(+) >>>> >>>> diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h >>>> index 26c218e..95b591b 100644 >>>> --- a/linux-headers/linux/vfio.h >>>> +++ b/linux-headers/linux/vfio.h >>>> @@ -30,6 +30,9 @@ >>>> */ >>>> #define VFIO_DMA_CC_IOMMU 4 >>>> >>>> +/* Check if EEH is supported */ >>>> +#define VFIO_EEH 5 >>>> + >>>> /* >>>> * The IOCTL interface is designed for extensibility by embedding the >>>> * structure length (argsz) and flags into structures passed between >>>> @@ -455,6 +458,37 @@ struct vfio_iommu_spapr_tce_info { >>>> >>>> #define VFIO_IOMMU_SPAPR_TCE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) >>>> >>>> +/* >>>> + * EEH PE operation struct provides ways to: >>>> + * - enable/disable EEH functionality; >>>> + * - unfreeze IO/DMA for frozen PE; >>>> + * - read PE state; >>>> + * - reset PE; >>>> + * - configure PE. >>>> + */ >>>> +struct vfio_eeh_pe_op { >>>> + __u32 argsz; >>>> + __u32 flags; >>>> + __u32 op; >>>> +}; >>>> + >>>> +#define VFIO_EEH_PE_DISABLE 0 /* Disable EEH functionality */ >>>> +#define VFIO_EEH_PE_ENABLE 1 /* Enable EEH functionality */ >>>> +#define VFIO_EEH_PE_UNFREEZE_IO 2 /* Enable IO for frozen PE */ >>>> +#define VFIO_EEH_PE_UNFREEZE_DMA 3 /* Enable DMA for frozen PE */ >>>> +#define VFIO_EEH_PE_GET_STATE 4 /* PE state retrieval */ >>>> +#define VFIO_EEH_PE_STATE_NORMAL 0 /* PE in functional state */ >>>> +#define VFIO_EEH_PE_STATE_RESET 1 /* PE reset in progress */ >>>> +#define VFIO_EEH_PE_STATE_STOPPED 2 /* Stopped DMA and IO */ >>>> +#define VFIO_EEH_PE_STATE_STOPPED_DMA 4 /* Stopped DMA only */ >>>> +#define VFIO_EEH_PE_STATE_UNAVAIL 5 /* State unavailable */ >>>> +#define VFIO_EEH_PE_RESET_DEACTIVATE 5 /* Deassert PE reset */ >>>> +#define VFIO_EEH_PE_RESET_HOT 6 /* Assert hot reset */ >>>> +#define VFIO_EEH_PE_RESET_FUNDAMENTAL 7 /* Assert fundamental reset */ >>>> +#define VFIO_EEH_PE_CONFIGURE 8 /* PE configuration */ >>>> + >>>> +#define VFIO_EEH_PE_OP _IO(VFIO_TYPE, VFIO_BASE + 21) >>>> + >>>> /* ***************************************************************** */ >>>> >>>> #endif /* VFIO_H */ >>>> >>> >>> >>> -- >>> Alexey >>> >> > > >-- >Alexey >