Message ID | 1405470005-9957-4-git-send-email-gwshan@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
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 */ >
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 >
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 >> >
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 >
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 --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 */
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(+)