Re: [Qemu-devel] [PATCH RFC v2 02/12] vfio: linux-headers update for vfio-ccw

2017-01-18 Thread Dong Jia Shi
* Alex Williamson  [2017-01-18 13:43:32 -0700]:

> On Wed, 18 Jan 2017 13:41:47 +0100
> Cornelia Huck  wrote:
> 
> > On Wed, 18 Jan 2017 10:51:17 +0800
> > Dong Jia Shi  wrote:
> > 
> > > * Alex Williamson  [2017-01-17 14:51:42 
> > > -0700]:
> > >   
> > > > On Thu, 12 Jan 2017 08:25:03 +0100
> > > > Dong Jia Shi  wrote:
> > > >   
> > > > > From: Xiao Feng Ren 
> > > > > 
> > > > > This is a placeholder for a linux-headers update.
> > > > > 
> > > > > Signed-off-by: Xiao Feng Ren 
> > > > > ---
> > > > >  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 000..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 
> > > > > + */
> > > > > +
> > > > > +#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.

-- 
Dong Jia




Re: [Qemu-devel] [PATCH RFC v2 02/12] vfio: linux-headers update for vfio-ccw

2017-01-18 Thread Alex Williamson
On Wed, 18 Jan 2017 13:41:47 +0100
Cornelia Huck  wrote:

> On Wed, 18 Jan 2017 10:51:17 +0800
> Dong Jia Shi  wrote:
> 
> > * Alex Williamson  [2017-01-17 14:51:42 -0700]:
> >   
> > > On Thu, 12 Jan 2017 08:25:03 +0100
> > > Dong Jia Shi  wrote:
> > >   
> > > > From: Xiao Feng Ren 
> > > > 
> > > > This is a placeholder for a linux-headers update.
> > > > 
> > > > Signed-off-by: Xiao Feng Ren 
> > > > ---
> > > >  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 000..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 
> > > > + */
> > > > +
> > > > +#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



Re: [Qemu-devel] [PATCH RFC v2 02/12] vfio: linux-headers update for vfio-ccw

2017-01-18 Thread Cornelia Huck
On Wed, 18 Jan 2017 10:51:17 +0800
Dong Jia Shi  wrote:

> * Alex Williamson  [2017-01-17 14:51:42 -0700]:
> 
> > On Thu, 12 Jan 2017 08:25:03 +0100
> > Dong Jia Shi  wrote:
> > 
> > > From: Xiao Feng Ren 
> > > 
> > > This is a placeholder for a linux-headers update.
> > > 
> > > Signed-off-by: Xiao Feng Ren 
> > > ---
> > >  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 000..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 
> > > + */
> > > +
> > > +#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.




Re: [Qemu-devel] [PATCH RFC v2 02/12] vfio: linux-headers update for vfio-ccw

2017-01-17 Thread Dong Jia Shi
* Alex Williamson  [2017-01-17 14:51:42 -0700]:

> On Thu, 12 Jan 2017 08:25:03 +0100
> Dong Jia Shi  wrote:
> 
> > From: Xiao Feng Ren 
> > 
> > This is a placeholder for a linux-headers update.
> > 
> > Signed-off-by: Xiao Feng Ren 
> > ---
> >  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 000..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 
> > + */
> > +
> > +#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,

[...]

-- 
Dong Jia




Re: [Qemu-devel] [PATCH RFC v2 02/12] vfio: linux-headers update for vfio-ccw

2017-01-17 Thread Alex Williamson
On Thu, 12 Jan 2017 08:25:03 +0100
Dong Jia Shi  wrote:

> From: Xiao Feng Ren 
> 
> This is a placeholder for a linux-headers update.
> 
> Signed-off-by: Xiao Feng Ren 
> ---
>  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 000..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 
> + */
> +
> +#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)




[Qemu-devel] [PATCH RFC v2 02/12] vfio: linux-headers update for vfio-ccw

2017-01-11 Thread Dong Jia Shi
From: Xiao Feng Ren 

This is a placeholder for a linux-headers update.

Signed-off-by: Xiao Feng Ren 
---
 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 000..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 
+ */
+
+#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)
-- 
2.8.4