diff mbox

[v12,3/4] headers: Update kernel header

Message ID 1405470005-9957-4-git-send-email-gwshan@linux.vnet.ibm.com
State New
Headers show

Commit Message

Gavin Shan July 16, 2014, 12:20 a.m. UTC
This updates kernel header (vfio.h) for EEH support on VFIO PCI
devices.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
 linux-headers/linux/vfio.h | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

Comments

Alexey Kardashevskiy July 16, 2014, 1:09 a.m. UTC | #1
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.


> 
> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
> ---
>  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 */
>
Gavin Shan July 16, 2014, 1:16 a.m. UTC | #2
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) ?

Thanks,
Gavin

>
>> 
>> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
>> ---
>>  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 Kardashevskiy July 16, 2014, 1:32 a.m. UTC | #3
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,
> Gavin
> 
>>
>>>
>>> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
>>> ---
>>>  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
>>
>
Gavin Shan July 16, 2014, 1:40 a.m. UTC | #4
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 <gwshan@linux.vnet.ibm.com>
>>>> ---
>>>>  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
>
Alexander Graf July 28, 2014, 12:50 p.m. UTC | #5
On 16.07.14 03:40, Gavin Shan wrote:
> 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.

It's also perfectly fine to keep the kernel header update inside your 
patch set, but please make sure to mention which commit it is against. 
If I pick it up, I will generate the headers myself though and drop your 
patch while applying the rest of the set.


Alex
diff mbox

Patch

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 */