* [PATCH v2 1/6] vfio: implement iommu driver capabilities with an enum [not found] ` <1414433155-31600-1-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> @ 2014-10-27 18:05 ` Antonios Motakis [not found] ` <1414433155-31600-2-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 2014-10-27 18:05 ` [PATCH v2 3/6] vfio: introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag Antonios Motakis 1 sibling, 1 reply; 4+ messages in thread From: Antonios Motakis @ 2014-10-27 18:05 UTC (permalink / raw) To: kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, alex.williamson-H+wXaHxf7aLQT0dZR+AlfA Cc: open list:VFIO DRIVER, eric.auger-QSEj5FYQhm4dnm+yROfE0A, marc.zyngier-5wv7dgnIgG8, open list:ABI/API, will.deacon-5wv7dgnIgG8, open list, Antonios Motakis, tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J, christoffer.dall-QSEj5FYQhm4dnm+yROfE0A Currently a VFIO driver's IOMMU capabilities are encoded as a series of numerical defines. Replace this with an enum for future maintainability. Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> --- include/uapi/linux/vfio.h | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 6612974..1e39842 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -19,19 +19,18 @@ /* Kernel & User level defines for VFIO IOCTLs. */ -/* Extensions */ - -#define VFIO_TYPE1_IOMMU 1 -#define VFIO_SPAPR_TCE_IOMMU 2 -#define VFIO_TYPE1v2_IOMMU 3 /* - * IOMMU enforces DMA cache coherence (ex. PCIe NoSnoop stripping). This - * capability is subject to change as groups are added or removed. + * Capabilities exposed by the VFIO IOMMU driver. Some capabilities are subject + * to change as groups are added or removed. */ -#define VFIO_DMA_CC_IOMMU 4 - -/* Check if EEH is supported */ -#define VFIO_EEH 5 +enum vfio_iommu_cap { + VFIO_TYPE1_IOMMU = 1, + VFIO_SPAPR_TCE_IOMMU = 2, + VFIO_TYPE1v2_IOMMU = 3, + VFIO_DMA_CC_IOMMU = 4, /* IOMMU enforces DMA cache coherence + (ex. PCIe NoSnoop stripping) */ + VFIO_EEH = 5, /* Check if EEH is supported */ +}; /* * The IOCTL interface is designed for extensibility by embedding the -- 2.1.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <1414433155-31600-2-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>]
* Re: [PATCH v2 1/6] vfio: implement iommu driver capabilities with an enum [not found] ` <1414433155-31600-2-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> @ 2014-10-31 20:04 ` Alex Williamson [not found] ` <1414785851.27420.334.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Alex Williamson @ 2014-10-31 20:04 UTC (permalink / raw) To: Antonios Motakis Cc: open list:VFIO DRIVER, eric.auger-QSEj5FYQhm4dnm+yROfE0A, marc.zyngier-5wv7dgnIgG8, open list:ABI/API, will.deacon-5wv7dgnIgG8, open list, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J, kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg, christoffer.dall-QSEj5FYQhm4dnm+yROfE0A On Mon, 2014-10-27 at 19:05 +0100, Antonios Motakis wrote: > Currently a VFIO driver's IOMMU capabilities are encoded as a series of > numerical defines. Replace this with an enum for future maintainability. > > Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> > --- > include/uapi/linux/vfio.h | 21 ++++++++++----------- > 1 file changed, 10 insertions(+), 11 deletions(-) > > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h > index 6612974..1e39842 100644 > --- a/include/uapi/linux/vfio.h > +++ b/include/uapi/linux/vfio.h > @@ -19,19 +19,18 @@ > > /* Kernel & User level defines for VFIO IOCTLs. */ > > -/* Extensions */ > - > -#define VFIO_TYPE1_IOMMU 1 > -#define VFIO_SPAPR_TCE_IOMMU 2 > -#define VFIO_TYPE1v2_IOMMU 3 > /* > - * IOMMU enforces DMA cache coherence (ex. PCIe NoSnoop stripping). This > - * capability is subject to change as groups are added or removed. > + * Capabilities exposed by the VFIO IOMMU driver. Some capabilities are subject > + * to change as groups are added or removed. > */ > -#define VFIO_DMA_CC_IOMMU 4 > - > -/* Check if EEH is supported */ > -#define VFIO_EEH 5 > +enum vfio_iommu_cap { > + VFIO_TYPE1_IOMMU = 1, > + VFIO_SPAPR_TCE_IOMMU = 2, > + VFIO_TYPE1v2_IOMMU = 3, > + VFIO_DMA_CC_IOMMU = 4, /* IOMMU enforces DMA cache coherence > + (ex. PCIe NoSnoop stripping) */ > + VFIO_EEH = 5, /* Check if EEH is supported */ > +}; Your code base is a little out of date, you're missing: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/vfio.h?id=f5c9ecebaf2a2c9381973798e389cc019dd983e0 I think the logic looks ok in the rest, but you'll need to use index 7 and the above commit touched the type1 c file as well so you may need to adjustment there too. Thanks, Alex > > /* > * The IOCTL interface is designed for extensibility by embedding the ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <1414785851.27420.334.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org>]
* Re: [PATCH v2 1/6] vfio: implement iommu driver capabilities with an enum [not found] ` <1414785851.27420.334.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> @ 2014-11-05 9:49 ` Antonios Motakis 0 siblings, 0 replies; 4+ messages in thread From: Antonios Motakis @ 2014-11-05 9:49 UTC (permalink / raw) To: Alex Williamson Cc: open list:VFIO DRIVER, Eric Auger, Marc Zyngier, open list:ABI/API, Will Deacon, open list, Linux IOMMU, VirtualOpenSystems Technical Team, kvm-arm, Christoffer Dall On Fri, Oct 31, 2014 at 9:04 PM, Alex Williamson <alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote: > > On Mon, 2014-10-27 at 19:05 +0100, Antonios Motakis wrote: > > Currently a VFIO driver's IOMMU capabilities are encoded as a series of > > numerical defines. Replace this with an enum for future maintainability. > > > > Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> > > --- > > include/uapi/linux/vfio.h | 21 ++++++++++----------- > > 1 file changed, 10 insertions(+), 11 deletions(-) > > > > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h > > index 6612974..1e39842 100644 > > --- a/include/uapi/linux/vfio.h > > +++ b/include/uapi/linux/vfio.h > > @@ -19,19 +19,18 @@ > > > > /* Kernel & User level defines for VFIO IOCTLs. */ > > > > -/* Extensions */ > > - > > -#define VFIO_TYPE1_IOMMU 1 > > -#define VFIO_SPAPR_TCE_IOMMU 2 > > -#define VFIO_TYPE1v2_IOMMU 3 > > /* > > - * IOMMU enforces DMA cache coherence (ex. PCIe NoSnoop stripping). This > > - * capability is subject to change as groups are added or removed. > > + * Capabilities exposed by the VFIO IOMMU driver. Some capabilities are subject > > + * to change as groups are added or removed. > > */ > > -#define VFIO_DMA_CC_IOMMU 4 > > - > > -/* Check if EEH is supported */ > > -#define VFIO_EEH 5 > > +enum vfio_iommu_cap { > > + VFIO_TYPE1_IOMMU = 1, > > + VFIO_SPAPR_TCE_IOMMU = 2, > > + VFIO_TYPE1v2_IOMMU = 3, > > + VFIO_DMA_CC_IOMMU = 4, /* IOMMU enforces DMA cache coherence > > + (ex. PCIe NoSnoop stripping) */ > > + VFIO_EEH = 5, /* Check if EEH is supported */ > > +}; > > Your code base is a little out of date, you're missing: > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/vfio.h?id=f5c9ecebaf2a2c9381973798e389cc019dd983e0 > > I think the logic looks ok in the rest, but you'll need to use index 7 > and the above commit touched the type1 c file as well so you may need to > adjustment there too. Thanks, Hello, I will reapply on the latest version then. Thanks > > Alex > > > > /* > > * The IOCTL interface is designed for extensibility by embedding the > > > ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 3/6] vfio: introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag [not found] ` <1414433155-31600-1-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 2014-10-27 18:05 ` [PATCH v2 1/6] vfio: implement iommu driver capabilities with an enum Antonios Motakis @ 2014-10-27 18:05 ` Antonios Motakis 1 sibling, 0 replies; 4+ messages in thread From: Antonios Motakis @ 2014-10-27 18:05 UTC (permalink / raw) To: kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, alex.williamson-H+wXaHxf7aLQT0dZR+AlfA Cc: open list:VFIO DRIVER, eric.auger-QSEj5FYQhm4dnm+yROfE0A, marc.zyngier-5wv7dgnIgG8, open list:ABI/API, will.deacon-5wv7dgnIgG8, open list, Antonios Motakis, tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J, christoffer.dall-QSEj5FYQhm4dnm+yROfE0A We introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag to the VFIO dma map call, and expose its availability via the capability VFIO_DMA_NOEXEC_IOMMU. This way the user can control whether the XN flag will be set on the requested mappings. The IOMMU_NOEXEC flag needs to be available for all the IOMMUs of the container used. Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> --- include/uapi/linux/vfio.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 1e39842..06d66c9 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -30,6 +30,7 @@ enum vfio_iommu_cap { VFIO_DMA_CC_IOMMU = 4, /* IOMMU enforces DMA cache coherence (ex. PCIe NoSnoop stripping) */ VFIO_EEH = 5, /* Check if EEH is supported */ + VFIO_DMA_NOEXEC_IOMMU = 6, }; /* @@ -394,12 +395,17 @@ struct vfio_iommu_type1_info { * * Map process virtual addresses to IO virtual addresses using the * provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required. + * + * To use the VFIO_DMA_MAP_FLAG_NOEXEC flag, the container must support the + * VFIO_DMA_NOEXEC_IOMMU capability. If mappings are created using this flag, + * any groups subsequently added to the container must support this capability. */ struct vfio_iommu_type1_dma_map { __u32 argsz; __u32 flags; #define VFIO_DMA_MAP_FLAG_READ (1 << 0) /* readable from device */ #define VFIO_DMA_MAP_FLAG_WRITE (1 << 1) /* writable from device */ +#define VFIO_DMA_MAP_FLAG_NOEXEC (1 << 2) /* not executable from device */ __u64 vaddr; /* Process virtual address */ __u64 iova; /* IO virtual address */ __u64 size; /* Size of mapping (bytes) */ -- 2.1.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-11-05 9:49 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1414433155-31600-1-git-send-email-a.motakis@virtualopensystems.com> [not found] ` <1414433155-31600-1-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 2014-10-27 18:05 ` [PATCH v2 1/6] vfio: implement iommu driver capabilities with an enum Antonios Motakis [not found] ` <1414433155-31600-2-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 2014-10-31 20:04 ` Alex Williamson [not found] ` <1414785851.27420.334.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> 2014-11-05 9:49 ` Antonios Motakis 2014-10-27 18:05 ` [PATCH v2 3/6] vfio: introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag Antonios Motakis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).