Message ID | 20170112072513.98411-3-bjsdjshi@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 12 Jan 2017 08:25:03 +0100 Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > This is a placeholder for a linux-headers update. > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > --- > include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++ > linux-headers/linux/vfio.h | 17 +++++++++++++++++ > 2 files changed, 45 insertions(+) > create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h > new file mode 100644 > index 0000000..cddc09b > --- /dev/null > +++ b/include/standard-headers/asm-s390/vfio_ccw.h > @@ -0,0 +1,28 @@ > +/* > + * Interfaces for vfio-ccw > + * > + * Copyright IBM Corp. 2017 > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License (version 2 only) > + * as published by the Free Software Foundation. > + * > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> > + */ > + > +#ifndef _VFIO_CCW_H_ > +#define _VFIO_CCW_H_ > + > +#include "standard-headers/linux/types.h" > + > +struct ccw_io_region { > +#define ORB_AREA_SIZE 12 > + uint8_t orb_area[ORB_AREA_SIZE]; > +#define SCSW_AREA_SIZE 12 > + uint8_t scsw_area[SCSW_AREA_SIZE]; > +#define IRB_AREA_SIZE 96 > + uint8_t irb_area[IRB_AREA_SIZE]; > + uint32_t ret_code; > +} QEMU_PACKED; > + > +#endif This is really part of the uapi for the vfio-ccw mdev device, isn't it? Should it really be buried in asm-s390 in the kernel? > diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h > index 759b850..b09d247 100644 > --- a/linux-headers/linux/vfio.h > +++ b/linux-headers/linux/vfio.h > @@ -198,6 +198,7 @@ struct vfio_device_info { > #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ > #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ > #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ > +#define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ > __u32 num_regions; /* Max region index + 1 */ > __u32 num_irqs; /* Max IRQ index + 1 */ > }; > @@ -436,6 +437,22 @@ enum { > VFIO_PCI_NUM_IRQS > }; > > +/* > + * The VFIO-CCW bus driver makes use of the following fixed region and > + * IRQ index mapping. Unimplemented regions return a size of zero. > + * Unimplemented IRQ types return a count of zero. > + */ > + > +enum { > + VFIO_CCW_CONFIG_REGION_INDEX, > + VFIO_CCW_NUM_REGIONS > +}; > + > +enum { > + VFIO_CCW_IO_IRQ_INDEX, > + VFIO_CCW_NUM_IRQS > +}; > + > /** > * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12, > * struct vfio_pci_hot_reset_info)
* Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]: > On Thu, 12 Jan 2017 08:25:03 +0100 > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > > > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > > > This is a placeholder for a linux-headers update. > > > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > --- > > include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++ > > linux-headers/linux/vfio.h | 17 +++++++++++++++++ > > 2 files changed, 45 insertions(+) > > create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h > > > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h > > new file mode 100644 > > index 0000000..cddc09b > > --- /dev/null > > +++ b/include/standard-headers/asm-s390/vfio_ccw.h > > @@ -0,0 +1,28 @@ > > +/* > > + * Interfaces for vfio-ccw > > + * > > + * Copyright IBM Corp. 2017 > > + * > > + * This program is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License (version 2 only) > > + * as published by the Free Software Foundation. > > + * > > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> > > + */ > > + > > +#ifndef _VFIO_CCW_H_ > > +#define _VFIO_CCW_H_ > > + > > +#include "standard-headers/linux/types.h" > > + > > +struct ccw_io_region { > > +#define ORB_AREA_SIZE 12 > > + uint8_t orb_area[ORB_AREA_SIZE]; > > +#define SCSW_AREA_SIZE 12 > > + uint8_t scsw_area[SCSW_AREA_SIZE]; > > +#define IRB_AREA_SIZE 96 > > + uint8_t irb_area[IRB_AREA_SIZE]; > > + uint32_t ret_code; > > +} QEMU_PACKED; > > + > > +#endif > > This is really part of the uapi for the vfio-ccw mdev device, isn't it? Yes, it is. > Should it really be buried in asm-s390 in the kernel? > We had an internal discussion on this question before, since we think this interface is strongly s390 dependent, we put it here. What do you suggest? Thanks, [...]
On Wed, 18 Jan 2017 10:51:17 +0800 Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > * Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]: > > > On Thu, 12 Jan 2017 08:25:03 +0100 > > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > > > > > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > > > > > This is a placeholder for a linux-headers update. > > > > > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > > --- > > > include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++ > > > linux-headers/linux/vfio.h | 17 +++++++++++++++++ > > > 2 files changed, 45 insertions(+) > > > create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h > > > > > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h > > > new file mode 100644 > > > index 0000000..cddc09b > > > --- /dev/null > > > +++ b/include/standard-headers/asm-s390/vfio_ccw.h > > > @@ -0,0 +1,28 @@ > > > +/* > > > + * Interfaces for vfio-ccw > > > + * > > > + * Copyright IBM Corp. 2017 > > > + * > > > + * This program is free software; you can redistribute it and/or modify > > > + * it under the terms of the GNU General Public License (version 2 only) > > > + * as published by the Free Software Foundation. > > > + * > > > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> > > > + */ > > > + > > > +#ifndef _VFIO_CCW_H_ > > > +#define _VFIO_CCW_H_ > > > + > > > +#include "standard-headers/linux/types.h" > > > + > > > +struct ccw_io_region { > > > +#define ORB_AREA_SIZE 12 > > > + uint8_t orb_area[ORB_AREA_SIZE]; > > > +#define SCSW_AREA_SIZE 12 > > > + uint8_t scsw_area[SCSW_AREA_SIZE]; > > > +#define IRB_AREA_SIZE 96 > > > + uint8_t irb_area[IRB_AREA_SIZE]; > > > + uint32_t ret_code; > > > +} QEMU_PACKED; > > > + > > > +#endif > > > > This is really part of the uapi for the vfio-ccw mdev device, isn't it? > Yes, it is. > > > Should it really be buried in asm-s390 in the kernel? > > > We had an internal discussion on this question before, since we think > this interface is strongly s390 dependent, we put it here. What do you > suggest? Thanks, As there are already architecture-specific definitions in the common file, having everything in the same file is probably better. I'm certainly not against moving it out from asm-s390.
On Wed, 18 Jan 2017 13:41:47 +0100 Cornelia Huck <cornelia.huck@de.ibm.com> wrote: > On Wed, 18 Jan 2017 10:51:17 +0800 > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > > > * Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]: > > > > > On Thu, 12 Jan 2017 08:25:03 +0100 > > > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > > > > > > > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > > > > > > > This is a placeholder for a linux-headers update. > > > > > > > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > > > --- > > > > include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++ > > > > linux-headers/linux/vfio.h | 17 +++++++++++++++++ > > > > 2 files changed, 45 insertions(+) > > > > create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h > > > > > > > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h > > > > new file mode 100644 > > > > index 0000000..cddc09b > > > > --- /dev/null > > > > +++ b/include/standard-headers/asm-s390/vfio_ccw.h > > > > @@ -0,0 +1,28 @@ > > > > +/* > > > > + * Interfaces for vfio-ccw > > > > + * > > > > + * Copyright IBM Corp. 2017 > > > > + * > > > > + * This program is free software; you can redistribute it and/or modify > > > > + * it under the terms of the GNU General Public License (version 2 only) > > > > + * as published by the Free Software Foundation. > > > > + * > > > > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> > > > > + */ > > > > + > > > > +#ifndef _VFIO_CCW_H_ > > > > +#define _VFIO_CCW_H_ > > > > + > > > > +#include "standard-headers/linux/types.h" > > > > + > > > > +struct ccw_io_region { > > > > +#define ORB_AREA_SIZE 12 > > > > + uint8_t orb_area[ORB_AREA_SIZE]; > > > > +#define SCSW_AREA_SIZE 12 > > > > + uint8_t scsw_area[SCSW_AREA_SIZE]; > > > > +#define IRB_AREA_SIZE 96 > > > > + uint8_t irb_area[IRB_AREA_SIZE]; > > > > + uint32_t ret_code; > > > > +} QEMU_PACKED; > > > > + > > > > +#endif > > > > > > This is really part of the uapi for the vfio-ccw mdev device, isn't it? > > Yes, it is. > > > > > Should it really be buried in asm-s390 in the kernel? > > > > > We had an internal discussion on this question before, since we think > > this interface is strongly s390 dependent, we put it here. What do you > > suggest? Thanks, > > As there are already architecture-specific definitions in the common > file, having everything in the same file is probably better. I'm > certainly not against moving it out from asm-s390. As soon as we use it for the interface definition to the vfio region, I think it makes sense for it to move to uapi. It's not really architecture specific as much as it is device specific, for a device which happens to only appear on s390 hardware. Putting it in uapi should also make sure people think twice about changing it. Thanks, Alex
* Alex Williamson <alex.williamson@redhat.com> [2017-01-18 13:43:32 -0700]: > On Wed, 18 Jan 2017 13:41:47 +0100 > Cornelia Huck <cornelia.huck@de.ibm.com> wrote: > > > On Wed, 18 Jan 2017 10:51:17 +0800 > > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > > > > > * Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]: > > > > > > > On Thu, 12 Jan 2017 08:25:03 +0100 > > > > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote: > > > > > > > > > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > > > > > > > > > This is a placeholder for a linux-headers update. > > > > > > > > > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com> > > > > > --- > > > > > include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++ > > > > > linux-headers/linux/vfio.h | 17 +++++++++++++++++ > > > > > 2 files changed, 45 insertions(+) > > > > > create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h > > > > > > > > > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h > > > > > new file mode 100644 > > > > > index 0000000..cddc09b > > > > > --- /dev/null > > > > > +++ b/include/standard-headers/asm-s390/vfio_ccw.h > > > > > @@ -0,0 +1,28 @@ > > > > > +/* > > > > > + * Interfaces for vfio-ccw > > > > > + * > > > > > + * Copyright IBM Corp. 2017 > > > > > + * > > > > > + * This program is free software; you can redistribute it and/or modify > > > > > + * it under the terms of the GNU General Public License (version 2 only) > > > > > + * as published by the Free Software Foundation. > > > > > + * > > > > > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> > > > > > + */ > > > > > + > > > > > +#ifndef _VFIO_CCW_H_ > > > > > +#define _VFIO_CCW_H_ > > > > > + > > > > > +#include "standard-headers/linux/types.h" > > > > > + > > > > > +struct ccw_io_region { > > > > > +#define ORB_AREA_SIZE 12 > > > > > + uint8_t orb_area[ORB_AREA_SIZE]; > > > > > +#define SCSW_AREA_SIZE 12 > > > > > + uint8_t scsw_area[SCSW_AREA_SIZE]; > > > > > +#define IRB_AREA_SIZE 96 > > > > > + uint8_t irb_area[IRB_AREA_SIZE]; > > > > > + uint32_t ret_code; > > > > > +} QEMU_PACKED; > > > > > + > > > > > +#endif > > > > > > > > This is really part of the uapi for the vfio-ccw mdev device, isn't it? > > > Yes, it is. > > > > > > > Should it really be buried in asm-s390 in the kernel? > > > > > > > We had an internal discussion on this question before, since we think > > > this interface is strongly s390 dependent, we put it here. What do you > > > suggest? Thanks, > > > > As there are already architecture-specific definitions in the common > > file, having everything in the same file is probably better. I'm > > certainly not against moving it out from asm-s390. > > As soon as we use it for the interface definition to the vfio region, I > think it makes sense for it to move to uapi. It's not really > architecture specific as much as it is device specific, for a device > which happens to only appear on s390 hardware. Putting it in uapi > should also make sure people think twice about changing it. Thanks, > > Alex > Fair enough. Let's move it to include/uapi/linux/vfio_ccw.h.
diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h new file mode 100644 index 0000000..cddc09b --- /dev/null +++ b/include/standard-headers/asm-s390/vfio_ccw.h @@ -0,0 +1,28 @@ +/* + * Interfaces for vfio-ccw + * + * Copyright IBM Corp. 2017 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License (version 2 only) + * as published by the Free Software Foundation. + * + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> + */ + +#ifndef _VFIO_CCW_H_ +#define _VFIO_CCW_H_ + +#include "standard-headers/linux/types.h" + +struct ccw_io_region { +#define ORB_AREA_SIZE 12 + uint8_t orb_area[ORB_AREA_SIZE]; +#define SCSW_AREA_SIZE 12 + uint8_t scsw_area[SCSW_AREA_SIZE]; +#define IRB_AREA_SIZE 96 + uint8_t irb_area[IRB_AREA_SIZE]; + uint32_t ret_code; +} QEMU_PACKED; + +#endif diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h index 759b850..b09d247 100644 --- a/linux-headers/linux/vfio.h +++ b/linux-headers/linux/vfio.h @@ -198,6 +198,7 @@ struct vfio_device_info { #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ +#define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ __u32 num_regions; /* Max region index + 1 */ __u32 num_irqs; /* Max IRQ index + 1 */ }; @@ -436,6 +437,22 @@ enum { VFIO_PCI_NUM_IRQS }; +/* + * The VFIO-CCW bus driver makes use of the following fixed region and + * IRQ index mapping. Unimplemented regions return a size of zero. + * Unimplemented IRQ types return a count of zero. + */ + +enum { + VFIO_CCW_CONFIG_REGION_INDEX, + VFIO_CCW_NUM_REGIONS +}; + +enum { + VFIO_CCW_IO_IRQ_INDEX, + VFIO_CCW_NUM_IRQS +}; + /** * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12, * struct vfio_pci_hot_reset_info)