All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices
@ 2018-05-07 15:51 Cornelia Huck
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler Cornelia Huck
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Cornelia Huck @ 2018-05-07 15:51 UTC (permalink / raw)
  To: Christian Borntraeger, Thomas Huth
  Cc: Alexander Graf, Richard Henderson, David Hildenbrand,
	Halil Pasic, qemu-s390x, qemu-devel, Cornelia Huck

On Friday, Thomas noticed some problems with 3270 devices. One result
was "s390x/css: disabled subchannels cannot be status pending", but
a reboot did not cure the previous broken status. Turns out that 3270
devices are missing a reset handler.

This series cleans up reset handling a bit and makes sure that the base
ccw device class provides a subchannel reset handler. I'm currently
not sure what we should do with vfio-ccw, so the behaviour there is
left unchanged.

Cornelia Huck (2):
  virtio-ccw: common reset handler
  s390x/ccw: make sure all ccw devices are properly reset

 hw/s390x/ccw-device.c |  8 ++++++++
 hw/s390x/virtio-ccw.c | 20 ++++++--------------
 hw/s390x/virtio-ccw.h |  1 +
 3 files changed, 15 insertions(+), 14 deletions(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler
  2018-05-07 15:51 [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
@ 2018-05-07 15:51 ` Cornelia Huck
  2018-05-07 19:21   ` Thomas Huth
                     ` (2 more replies)
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset Cornelia Huck
                   ` (2 subsequent siblings)
  3 siblings, 3 replies; 16+ messages in thread
From: Cornelia Huck @ 2018-05-07 15:51 UTC (permalink / raw)
  To: Christian Borntraeger, Thomas Huth
  Cc: Alexander Graf, Richard Henderson, David Hildenbrand,
	Halil Pasic, qemu-s390x, qemu-devel, Cornelia Huck

All the different virtio ccw devices use the same reset handler,
so let's move setting it into the base virtio ccw device class.

Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/s390x/virtio-ccw.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index e51fbefd23..40a33302a7 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -1345,7 +1345,6 @@ static void virtio_ccw_net_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_net_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_net_properties;
     set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
 }
@@ -1373,7 +1372,6 @@ static void virtio_ccw_blk_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_blk_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_blk_properties;
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
 }
@@ -1401,7 +1399,6 @@ static void virtio_ccw_serial_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_serial_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_serial_properties;
     set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
 }
@@ -1429,7 +1426,6 @@ static void virtio_ccw_balloon_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_balloon_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_balloon_properties;
     set_bit(DEVICE_CATEGORY_MISC, dc->categories);
 }
@@ -1457,7 +1453,6 @@ static void virtio_ccw_scsi_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_scsi_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_scsi_properties;
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
 }
@@ -1484,7 +1479,6 @@ static void vhost_ccw_scsi_class_init(ObjectClass *klass, void *data)
 
     k->realize = vhost_ccw_scsi_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = vhost_ccw_scsi_properties;
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
 }
@@ -1521,7 +1515,6 @@ static void virtio_ccw_rng_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_rng_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_rng_properties;
     set_bit(DEVICE_CATEGORY_MISC, dc->categories);
 }
@@ -1559,7 +1552,6 @@ static void virtio_ccw_crypto_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_crypto_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_crypto_properties;
     set_bit(DEVICE_CATEGORY_MISC, dc->categories);
 }
@@ -1597,7 +1589,6 @@ static void virtio_ccw_gpu_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_gpu_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_gpu_properties;
     dc->hotpluggable = false;
     set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories);
@@ -1626,7 +1617,6 @@ static void virtio_ccw_input_class_init(ObjectClass *klass, void *data)
 
     k->realize = virtio_ccw_input_realize;
     k->unrealize = virtio_ccw_unrealize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_input_properties;
     set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
 }
@@ -1730,6 +1720,7 @@ static void virtio_ccw_device_class_init(ObjectClass *klass, void *data)
     dc->realize = virtio_ccw_busdev_realize;
     dc->unrealize = virtio_ccw_busdev_unrealize;
     dc->bus_type = TYPE_VIRTUAL_CSS_BUS;
+    dc->reset = virtio_ccw_reset;
 }
 
 static const TypeInfo virtio_ccw_device_info = {
@@ -1806,7 +1797,6 @@ static void virtio_ccw_9p_class_init(ObjectClass *klass, void *data)
 
     k->unrealize = virtio_ccw_unrealize;
     k->realize = virtio_ccw_9p_realize;
-    dc->reset = virtio_ccw_reset;
     dc->props = virtio_ccw_9p_properties;
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
 }
@@ -1856,7 +1846,6 @@ static void vhost_vsock_ccw_class_init(ObjectClass *klass, void *data)
     k->unrealize = virtio_ccw_unrealize;
     set_bit(DEVICE_CATEGORY_MISC, dc->categories);
     dc->props = vhost_vsock_ccw_properties;
-    dc->reset = virtio_ccw_reset;
 }
 
 static void vhost_vsock_ccw_instance_init(Object *obj)
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset
  2018-05-07 15:51 [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler Cornelia Huck
@ 2018-05-07 15:51 ` Cornelia Huck
  2018-05-08  5:05   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
                     ` (2 more replies)
  2018-05-08 12:55 ` [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
  2018-05-08 13:29 ` Halil Pasic
  3 siblings, 3 replies; 16+ messages in thread
From: Cornelia Huck @ 2018-05-07 15:51 UTC (permalink / raw)
  To: Christian Borntraeger, Thomas Huth
  Cc: Alexander Graf, Richard Henderson, David Hildenbrand,
	Halil Pasic, qemu-s390x, qemu-devel, Cornelia Huck

Thomas reported that the subchannel for a  3270 device that ended up
in a broken state (status pending even though not enabled) did not
get out of that state even after a reboot (which involves a subsytem
reset). The reason for this is that the 3270 device did not define
a reset handler.

Let's fix this by introducing a base reset handler (set up for all
ccw devices) that resets the subchannel and have virtio-ccw call
its virtio-specific reset procedure in addition to that.

Reported-by: Thomas Huth <thuth@redhat.com>
Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/s390x/ccw-device.c | 8 ++++++++
 hw/s390x/virtio-ccw.c | 9 ++++++---
 hw/s390x/virtio-ccw.h | 1 +
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c
index f9bfa154d6..7cd73df4aa 100644
--- a/hw/s390x/ccw-device.c
+++ b/hw/s390x/ccw-device.c
@@ -40,6 +40,13 @@ static Property ccw_device_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
+static void ccw_device_reset(DeviceState *d)
+{
+    CcwDevice *ccw_dev = CCW_DEVICE(d);
+
+    css_reset_sch(ccw_dev->sch);
+}
+
 static void ccw_device_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
@@ -48,6 +55,7 @@ static void ccw_device_class_init(ObjectClass *klass, void *data)
     k->realize = ccw_device_realize;
     k->refill_ids = ccw_device_refill_ids;
     dc->props = ccw_device_properties;
+    dc->reset = ccw_device_reset;
 }
 
 const VMStateDescription vmstate_ccw_dev = {
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 40a33302a7..22df33b509 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -1058,10 +1058,12 @@ static void virtio_ccw_reset(DeviceState *d)
 {
     VirtioCcwDevice *dev = VIRTIO_CCW_DEVICE(d);
     VirtIODevice *vdev = virtio_bus_get_device(&dev->bus);
-    CcwDevice *ccw_dev = CCW_DEVICE(d);
+    VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_GET_CLASS(dev);
 
     virtio_ccw_reset_virtio(dev, vdev);
-    css_reset_sch(ccw_dev->sch);
+    if (vdc->parent_reset) {
+        vdc->parent_reset(d);
+    }
 }
 
 static void virtio_ccw_vmstate_change(DeviceState *d, bool running)
@@ -1715,12 +1717,13 @@ static void virtio_ccw_device_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
     CCWDeviceClass *k = CCW_DEVICE_CLASS(dc);
+    VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_CLASS(klass);
 
     k->unplug = virtio_ccw_busdev_unplug;
     dc->realize = virtio_ccw_busdev_realize;
     dc->unrealize = virtio_ccw_busdev_unrealize;
     dc->bus_type = TYPE_VIRTUAL_CSS_BUS;
-    dc->reset = virtio_ccw_reset;
+    device_class_set_parent_reset(dc, virtio_ccw_reset, &vdc->parent_reset);
 }
 
 static const TypeInfo virtio_ccw_device_info = {
diff --git a/hw/s390x/virtio-ccw.h b/hw/s390x/virtio-ccw.h
index 2fc513001e..3453aa1f98 100644
--- a/hw/s390x/virtio-ccw.h
+++ b/hw/s390x/virtio-ccw.h
@@ -77,6 +77,7 @@ typedef struct VirtIOCCWDeviceClass {
     CCWDeviceClass parent_class;
     void (*realize)(VirtioCcwDevice *dev, Error **errp);
     void (*unrealize)(VirtioCcwDevice *dev, Error **errp);
+    void (*parent_reset)(DeviceState *dev);
 } VirtIOCCWDeviceClass;
 
 /* Performance improves when virtqueue kick processing is decoupled from the
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler Cornelia Huck
@ 2018-05-07 19:21   ` Thomas Huth
  2018-05-07 19:44   ` David Hildenbrand
  2018-05-08 13:31   ` [Qemu-devel] [qemu-s390x] " Halil Pasic
  2 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2018-05-07 19:21 UTC (permalink / raw)
  To: Cornelia Huck, Christian Borntraeger
  Cc: Richard Henderson, David Hildenbrand, Halil Pasic, qemu-s390x,
	qemu-devel

On 07.05.2018 17:51, Cornelia Huck wrote:
> All the different virtio ccw devices use the same reset handler,
> so let's move setting it into the base virtio ccw device class.
> 
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>  hw/s390x/virtio-ccw.c | 13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler Cornelia Huck
  2018-05-07 19:21   ` Thomas Huth
@ 2018-05-07 19:44   ` David Hildenbrand
  2018-05-08 13:31   ` [Qemu-devel] [qemu-s390x] " Halil Pasic
  2 siblings, 0 replies; 16+ messages in thread
From: David Hildenbrand @ 2018-05-07 19:44 UTC (permalink / raw)
  To: Cornelia Huck, Christian Borntraeger, Thomas Huth
  Cc: Alexander Graf, Richard Henderson, Halil Pasic, qemu-s390x, qemu-devel

On 07.05.2018 17:51, Cornelia Huck wrote:
> All the different virtio ccw devices use the same reset handler,
> so let's move setting it into the base virtio ccw device class.
> 
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>  hw/s390x/virtio-ccw.c | 13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)
> 
> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
> index e51fbefd23..40a33302a7 100644
> --- a/hw/s390x/virtio-ccw.c
> +++ b/hw/s390x/virtio-ccw.c
> @@ -1345,7 +1345,6 @@ static void virtio_ccw_net_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_net_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_net_properties;
>      set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
>  }
> @@ -1373,7 +1372,6 @@ static void virtio_ccw_blk_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_blk_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_blk_properties;
>      set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
>  }
> @@ -1401,7 +1399,6 @@ static void virtio_ccw_serial_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_serial_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_serial_properties;
>      set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
>  }
> @@ -1429,7 +1426,6 @@ static void virtio_ccw_balloon_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_balloon_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_balloon_properties;
>      set_bit(DEVICE_CATEGORY_MISC, dc->categories);
>  }
> @@ -1457,7 +1453,6 @@ static void virtio_ccw_scsi_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_scsi_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_scsi_properties;
>      set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
>  }
> @@ -1484,7 +1479,6 @@ static void vhost_ccw_scsi_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = vhost_ccw_scsi_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = vhost_ccw_scsi_properties;
>      set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
>  }
> @@ -1521,7 +1515,6 @@ static void virtio_ccw_rng_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_rng_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_rng_properties;
>      set_bit(DEVICE_CATEGORY_MISC, dc->categories);
>  }
> @@ -1559,7 +1552,6 @@ static void virtio_ccw_crypto_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_crypto_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_crypto_properties;
>      set_bit(DEVICE_CATEGORY_MISC, dc->categories);
>  }
> @@ -1597,7 +1589,6 @@ static void virtio_ccw_gpu_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_gpu_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_gpu_properties;
>      dc->hotpluggable = false;
>      set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories);
> @@ -1626,7 +1617,6 @@ static void virtio_ccw_input_class_init(ObjectClass *klass, void *data)
>  
>      k->realize = virtio_ccw_input_realize;
>      k->unrealize = virtio_ccw_unrealize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_input_properties;
>      set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
>  }
> @@ -1730,6 +1720,7 @@ static void virtio_ccw_device_class_init(ObjectClass *klass, void *data)
>      dc->realize = virtio_ccw_busdev_realize;
>      dc->unrealize = virtio_ccw_busdev_unrealize;
>      dc->bus_type = TYPE_VIRTUAL_CSS_BUS;
> +    dc->reset = virtio_ccw_reset;
>  }
>  
>  static const TypeInfo virtio_ccw_device_info = {
> @@ -1806,7 +1797,6 @@ static void virtio_ccw_9p_class_init(ObjectClass *klass, void *data)
>  
>      k->unrealize = virtio_ccw_unrealize;
>      k->realize = virtio_ccw_9p_realize;
> -    dc->reset = virtio_ccw_reset;
>      dc->props = virtio_ccw_9p_properties;
>      set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
>  }
> @@ -1856,7 +1846,6 @@ static void vhost_vsock_ccw_class_init(ObjectClass *klass, void *data)
>      k->unrealize = virtio_ccw_unrealize;
>      set_bit(DEVICE_CATEGORY_MISC, dc->categories);
>      dc->props = vhost_vsock_ccw_properties;
> -    dc->reset = virtio_ccw_reset;
>  }
>  
>  static void vhost_vsock_ccw_instance_init(Object *obj)
> 

Indeed, this makes sense and I also don't expect device specific proxy
device reset code

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 

Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset Cornelia Huck
@ 2018-05-08  5:05   ` Thomas Huth
  2018-05-08  7:17   ` Christian Borntraeger
  2018-05-08 13:42   ` [Qemu-devel] " Halil Pasic
  2 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2018-05-08  5:05 UTC (permalink / raw)
  To: Cornelia Huck, Christian Borntraeger
  Cc: David Hildenbrand, qemu-devel, Alexander Graf, Halil Pasic,
	qemu-s390x, Richard Henderson

On 07.05.2018 17:51, Cornelia Huck wrote:
> Thomas reported that the subchannel for a  3270 device that ended up
> in a broken state (status pending even though not enabled) did not
> get out of that state even after a reboot (which involves a subsytem
> reset). The reason for this is that the 3270 device did not define
> a reset handler.
> 
> Let's fix this by introducing a base reset handler (set up for all
> ccw devices) that resets the subchannel and have virtio-ccw call
> its virtio-specific reset procedure in addition to that.
> 
> Reported-by: Thomas Huth <thuth@redhat.com>
> Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>  hw/s390x/ccw-device.c | 8 ++++++++
>  hw/s390x/virtio-ccw.c | 9 ++++++---
>  hw/s390x/virtio-ccw.h | 1 +
>  3 files changed, 15 insertions(+), 3 deletions(-)

Looks good!

Reviewed-by: Thomas Huth <thuth@redhat.com>

I also checked that the broken 3270 device is now operational after a
reboot again with your two patches, so:

Tested-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset Cornelia Huck
  2018-05-08  5:05   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
@ 2018-05-08  7:17   ` Christian Borntraeger
  2018-05-08  7:38     ` Cornelia Huck
  2018-05-08 13:42   ` [Qemu-devel] " Halil Pasic
  2 siblings, 1 reply; 16+ messages in thread
From: Christian Borntraeger @ 2018-05-08  7:17 UTC (permalink / raw)
  To: Cornelia Huck, Thomas Huth
  Cc: David Hildenbrand, qemu-devel, Alexander Graf, Halil Pasic,
	qemu-s390x, Richard Henderson

ACK.

cc stable?



On 05/07/2018 05:51 PM, Cornelia Huck wrote:
> Thomas reported that the subchannel for a  3270 device that ended up
> in a broken state (status pending even though not enabled) did not
> get out of that state even after a reboot (which involves a subsytem
> reset). The reason for this is that the 3270 device did not define
> a reset handler.
> 
> Let's fix this by introducing a base reset handler (set up for all
> ccw devices) that resets the subchannel and have virtio-ccw call
> its virtio-specific reset procedure in addition to that.
> 
> Reported-by: Thomas Huth <thuth@redhat.com>
> Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>  hw/s390x/ccw-device.c | 8 ++++++++
>  hw/s390x/virtio-ccw.c | 9 ++++++---
>  hw/s390x/virtio-ccw.h | 1 +
>  3 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c
> index f9bfa154d6..7cd73df4aa 100644
> --- a/hw/s390x/ccw-device.c
> +++ b/hw/s390x/ccw-device.c
> @@ -40,6 +40,13 @@ static Property ccw_device_properties[] = {
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
> +static void ccw_device_reset(DeviceState *d)
> +{
> +    CcwDevice *ccw_dev = CCW_DEVICE(d);
> +
> +    css_reset_sch(ccw_dev->sch);
> +}
> +
>  static void ccw_device_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> @@ -48,6 +55,7 @@ static void ccw_device_class_init(ObjectClass *klass, void *data)
>      k->realize = ccw_device_realize;
>      k->refill_ids = ccw_device_refill_ids;
>      dc->props = ccw_device_properties;
> +    dc->reset = ccw_device_reset;
>  }
>  
>  const VMStateDescription vmstate_ccw_dev = {
> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
> index 40a33302a7..22df33b509 100644
> --- a/hw/s390x/virtio-ccw.c
> +++ b/hw/s390x/virtio-ccw.c
> @@ -1058,10 +1058,12 @@ static void virtio_ccw_reset(DeviceState *d)
>  {
>      VirtioCcwDevice *dev = VIRTIO_CCW_DEVICE(d);
>      VirtIODevice *vdev = virtio_bus_get_device(&dev->bus);
> -    CcwDevice *ccw_dev = CCW_DEVICE(d);
> +    VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_GET_CLASS(dev);
>  
>      virtio_ccw_reset_virtio(dev, vdev);
> -    css_reset_sch(ccw_dev->sch);
> +    if (vdc->parent_reset) {
> +        vdc->parent_reset(d);
> +    }
>  }
>  
>  static void virtio_ccw_vmstate_change(DeviceState *d, bool running)
> @@ -1715,12 +1717,13 @@ static void virtio_ccw_device_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
>      CCWDeviceClass *k = CCW_DEVICE_CLASS(dc);
> +    VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_CLASS(klass);
>  
>      k->unplug = virtio_ccw_busdev_unplug;
>      dc->realize = virtio_ccw_busdev_realize;
>      dc->unrealize = virtio_ccw_busdev_unrealize;
>      dc->bus_type = TYPE_VIRTUAL_CSS_BUS;
> -    dc->reset = virtio_ccw_reset;
> +    device_class_set_parent_reset(dc, virtio_ccw_reset, &vdc->parent_reset);
>  }
>  
>  static const TypeInfo virtio_ccw_device_info = {
> diff --git a/hw/s390x/virtio-ccw.h b/hw/s390x/virtio-ccw.h
> index 2fc513001e..3453aa1f98 100644
> --- a/hw/s390x/virtio-ccw.h
> +++ b/hw/s390x/virtio-ccw.h
> @@ -77,6 +77,7 @@ typedef struct VirtIOCCWDeviceClass {
>      CCWDeviceClass parent_class;
>      void (*realize)(VirtioCcwDevice *dev, Error **errp);
>      void (*unrealize)(VirtioCcwDevice *dev, Error **errp);
> +    void (*parent_reset)(DeviceState *dev);
>  } VirtIOCCWDeviceClass;
>  
>  /* Performance improves when virtqueue kick processing is decoupled from the
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset
  2018-05-08  7:17   ` Christian Borntraeger
@ 2018-05-08  7:38     ` Cornelia Huck
  0 siblings, 0 replies; 16+ messages in thread
From: Cornelia Huck @ 2018-05-08  7:38 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: Thomas Huth, David Hildenbrand, qemu-devel, Alexander Graf,
	Halil Pasic, qemu-s390x, Richard Henderson

On Tue, 8 May 2018 09:17:08 +0200
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> ACK.
> 
> cc stable?

Probably. We'd also need patch 1 for that.

> 
> 
> 
> On 05/07/2018 05:51 PM, Cornelia Huck wrote:
> > Thomas reported that the subchannel for a  3270 device that ended up
> > in a broken state (status pending even though not enabled) did not
> > get out of that state even after a reboot (which involves a subsytem
> > reset). The reason for this is that the 3270 device did not define
> > a reset handler.
> > 
> > Let's fix this by introducing a base reset handler (set up for all
> > ccw devices) that resets the subchannel and have virtio-ccw call
> > its virtio-specific reset procedure in addition to that.
> > 
> > Reported-by: Thomas Huth <thuth@redhat.com>
> > Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com>
> > Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> > ---
> >  hw/s390x/ccw-device.c | 8 ++++++++
> >  hw/s390x/virtio-ccw.c | 9 ++++++---
> >  hw/s390x/virtio-ccw.h | 1 +
> >  3 files changed, 15 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices
  2018-05-07 15:51 [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler Cornelia Huck
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset Cornelia Huck
@ 2018-05-08 12:55 ` Cornelia Huck
  2018-05-08 13:29 ` Halil Pasic
  3 siblings, 0 replies; 16+ messages in thread
From: Cornelia Huck @ 2018-05-08 12:55 UTC (permalink / raw)
  To: Christian Borntraeger, Thomas Huth
  Cc: Alexander Graf, Richard Henderson, David Hildenbrand,
	Halil Pasic, qemu-s390x, qemu-devel

On Mon,  7 May 2018 17:51:28 +0200
Cornelia Huck <cohuck@redhat.com> wrote:

> On Friday, Thomas noticed some problems with 3270 devices. One result
> was "s390x/css: disabled subchannels cannot be status pending", but
> a reboot did not cure the previous broken status. Turns out that 3270
> devices are missing a reset handler.
> 
> This series cleans up reset handling a bit and makes sure that the base
> ccw device class provides a subchannel reset handler. I'm currently
> not sure what we should do with vfio-ccw, so the behaviour there is
> left unchanged.
> 
> Cornelia Huck (2):
>   virtio-ccw: common reset handler
>   s390x/ccw: make sure all ccw devices are properly reset
> 
>  hw/s390x/ccw-device.c |  8 ++++++++
>  hw/s390x/virtio-ccw.c | 20 ++++++--------------
>  hw/s390x/virtio-ccw.h |  1 +
>  3 files changed, 15 insertions(+), 14 deletions(-)
> 

Queued to s390-next (with cc:stable added).

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices
  2018-05-07 15:51 [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
                   ` (2 preceding siblings ...)
  2018-05-08 12:55 ` [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
@ 2018-05-08 13:29 ` Halil Pasic
  2018-05-08 13:55   ` Cornelia Huck
  3 siblings, 1 reply; 16+ messages in thread
From: Halil Pasic @ 2018-05-08 13:29 UTC (permalink / raw)
  To: Cornelia Huck, Christian Borntraeger, Thomas Huth
  Cc: Alexander Graf, Richard Henderson, David Hildenbrand, qemu-s390x,
	qemu-devel



On 05/07/2018 05:51 PM, Cornelia Huck wrote:
> On Friday, Thomas noticed some problems with 3270 devices. One result
> was "s390x/css: disabled subchannels cannot be status pending", but
> a reboot did not cure the previous broken status. Turns out that 3270
> devices are missing a reset handler.
> 
> This series cleans up reset handling a bit and makes sure that the base
> ccw device class provides a subchannel reset handler. I'm currently
> not sure what we should do with vfio-ccw, so the behaviour there is
> left unchanged.

Had a look, and LGTM (will tag separately) modulo what follows here. I'm
a bit concerned about vfio-ccw not being made compliant to this new
he reset of CCWDeviceClass is taking care of resetting the subchannel data
structures. This feels like introducing a common abstraction
to me, but then some things bother me.

In particular the the pim, the lpm and the pam set in css_reset_sch
seems to suit only devices that use the virtual chp. That
is it ain't suits any CCWDevice instance.

Do you plan to tackle vfio-ccw reset?

> 
> Cornelia Huck (2):
>    virtio-ccw: common reset handler
>    s390x/ccw: make sure all ccw devices are properly reset
> 
>   hw/s390x/ccw-device.c |  8 ++++++++
>   hw/s390x/virtio-ccw.c | 20 ++++++--------------
>   hw/s390x/virtio-ccw.h |  1 +
>   3 files changed, 15 insertions(+), 14 deletions(-)
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PATCH 1/2] virtio-ccw: common reset handler
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler Cornelia Huck
  2018-05-07 19:21   ` Thomas Huth
  2018-05-07 19:44   ` David Hildenbrand
@ 2018-05-08 13:31   ` Halil Pasic
  2 siblings, 0 replies; 16+ messages in thread
From: Halil Pasic @ 2018-05-08 13:31 UTC (permalink / raw)
  To: Cornelia Huck, Christian Borntraeger, Thomas Huth
  Cc: David Hildenbrand, qemu-devel, Alexander Graf, qemu-s390x,
	Richard Henderson



On 05/07/2018 05:51 PM, Cornelia Huck wrote:
> All the different virtio ccw devices use the same reset handler,
> so let's move setting it into the base virtio ccw device class.
> 
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>

Reviewed-by: Halil Pasic <pasic@linux.ibm.com>


> ---
>   hw/s390x/virtio-ccw.c | 13 +------------

[..]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset
  2018-05-07 15:51 ` [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset Cornelia Huck
  2018-05-08  5:05   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
  2018-05-08  7:17   ` Christian Borntraeger
@ 2018-05-08 13:42   ` Halil Pasic
  2018-05-08 14:01     ` Cornelia Huck
  2 siblings, 1 reply; 16+ messages in thread
From: Halil Pasic @ 2018-05-08 13:42 UTC (permalink / raw)
  To: Cornelia Huck, Christian Borntraeger, Thomas Huth
  Cc: Alexander Graf, Richard Henderson, David Hildenbrand, qemu-s390x,
	qemu-devel



On 05/07/2018 05:51 PM, Cornelia Huck wrote:
> Thomas reported that the subchannel for a  3270 device that ended up
> in a broken state (status pending even though not enabled) did not
> get out of that state even after a reboot (which involves a subsytem
> reset). The reason for this is that the 3270 device did not define
> a reset handler.
> 
> Let's fix this by introducing a base reset handler (set up for all
> ccw devices) that resets the subchannel and have virtio-ccw call
> its virtio-specific reset procedure in addition to that.
> 
> Reported-by: Thomas Huth <thuth@redhat.com>
> Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>

Reviewed-by: Halil Pasic <pasic@linux.ibm.com>

The 'all' from the subject is actually 'all except maybe vfio-ccw'
AFAIU.

[..]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices
  2018-05-08 13:29 ` Halil Pasic
@ 2018-05-08 13:55   ` Cornelia Huck
  2018-05-08 14:24     ` Halil Pasic
  0 siblings, 1 reply; 16+ messages in thread
From: Cornelia Huck @ 2018-05-08 13:55 UTC (permalink / raw)
  To: Halil Pasic
  Cc: Christian Borntraeger, Thomas Huth, Alexander Graf,
	Richard Henderson, David Hildenbrand, qemu-s390x, qemu-devel

On Tue, 8 May 2018 15:29:50 +0200
Halil Pasic <pasic@linux.ibm.com> wrote:

> On 05/07/2018 05:51 PM, Cornelia Huck wrote:
> > On Friday, Thomas noticed some problems with 3270 devices. One result
> > was "s390x/css: disabled subchannels cannot be status pending", but
> > a reboot did not cure the previous broken status. Turns out that 3270
> > devices are missing a reset handler.
> > 
> > This series cleans up reset handling a bit and makes sure that the base
> > ccw device class provides a subchannel reset handler. I'm currently
> > not sure what we should do with vfio-ccw, so the behaviour there is
> > left unchanged.  
> 
> Had a look, and LGTM (will tag separately) modulo what follows here. I'm
> a bit concerned about vfio-ccw not being made compliant to this new
> he reset of CCWDeviceClass is taking care of resetting the subchannel data
> structures. This feels like introducing a common abstraction
> to me, but then some things bother me.

We are having a common abstraction that can be overwritten by any
specialized implementation - and this is what vfio-ccw is doing,
therefore nothing changes for it.

> In particular the the pim, the lpm and the pam set in css_reset_sch
> seems to suit only devices that use the virtual chp. That
> is it ain't suits any CCWDevice instance.

Yes, we need to revisit this code and split out what makes sense and
what doesn't. For now, we only have virtual devices and vfio-ccw, so
we're fine. It even might make sense to keep them separate in the
future, as having a virtual device and one only mirroring some state in
QEMU sound like they want to be handled differently.

> 
> Do you plan to tackle vfio-ccw reset?

It's on my to-do list (which is sadly quite crowded...)

> 
> > 
> > Cornelia Huck (2):
> >    virtio-ccw: common reset handler
> >    s390x/ccw: make sure all ccw devices are properly reset
> > 
> >   hw/s390x/ccw-device.c |  8 ++++++++
> >   hw/s390x/virtio-ccw.c | 20 ++++++--------------
> >   hw/s390x/virtio-ccw.h |  1 +
> >   3 files changed, 15 insertions(+), 14 deletions(-)
> >   
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset
  2018-05-08 13:42   ` [Qemu-devel] " Halil Pasic
@ 2018-05-08 14:01     ` Cornelia Huck
  0 siblings, 0 replies; 16+ messages in thread
From: Cornelia Huck @ 2018-05-08 14:01 UTC (permalink / raw)
  To: Halil Pasic
  Cc: Christian Borntraeger, Thomas Huth, Alexander Graf,
	Richard Henderson, David Hildenbrand, qemu-s390x, qemu-devel

On Tue, 8 May 2018 15:42:17 +0200
Halil Pasic <pasic@linux.ibm.com> wrote:

> On 05/07/2018 05:51 PM, Cornelia Huck wrote:
> > Thomas reported that the subchannel for a  3270 device that ended up
> > in a broken state (status pending even though not enabled) did not
> > get out of that state even after a reboot (which involves a subsytem
> > reset). The reason for this is that the 3270 device did not define
> > a reset handler.
> > 
> > Let's fix this by introducing a base reset handler (set up for all
> > ccw devices) that resets the subchannel and have virtio-ccw call
> > its virtio-specific reset procedure in addition to that.
> > 
> > Reported-by: Thomas Huth <thuth@redhat.com>
> > Suggested-by: Christian Borntraeger <borntraeger@de.ibm.com>
> > Signed-off-by: Cornelia Huck <cohuck@redhat.com>  
> 
> Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
> 
> The 'all' from the subject is actually 'all except maybe vfio-ccw'
> AFAIU.

Yeah, but as it overwrites the default handler, it's on its own :)

Thanks for your review!

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices
  2018-05-08 13:55   ` Cornelia Huck
@ 2018-05-08 14:24     ` Halil Pasic
  2018-05-08 15:22       ` Cornelia Huck
  0 siblings, 1 reply; 16+ messages in thread
From: Halil Pasic @ 2018-05-08 14:24 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: Christian Borntraeger, Thomas Huth, Alexander Graf,
	Richard Henderson, David Hildenbrand, qemu-s390x, qemu-devel



On 05/08/2018 03:55 PM, Cornelia Huck wrote:
> On Tue, 8 May 2018 15:29:50 +0200
> Halil Pasic <pasic@linux.ibm.com> wrote:
> 
>> On 05/07/2018 05:51 PM, Cornelia Huck wrote:
>>> On Friday, Thomas noticed some problems with 3270 devices. One result
>>> was "s390x/css: disabled subchannels cannot be status pending", but
>>> a reboot did not cure the previous broken status. Turns out that 3270
>>> devices are missing a reset handler.
>>>
>>> This series cleans up reset handling a bit and makes sure that the base
>>> ccw device class provides a subchannel reset handler. I'm currently
>>> not sure what we should do with vfio-ccw, so the behaviour there is
>>> left unchanged.
>>
>> Had a look, and LGTM (will tag separately) modulo what follows here. I'm
>> a bit concerned about vfio-ccw not being made compliant to this new
>> he reset of CCWDeviceClass is taking care of resetting the subchannel data
>> structures. This feels like introducing a common abstraction
>> to me, but then some things bother me.
> 
> We are having a common abstraction that can be overwritten by any
> specialized implementation - and this is what vfio-ccw is doing,
> therefore nothing changes for it.
> 

Sorry my OO background is making me overthink things. I was on
the separation of concerns line: base class takes care of its
own class invariants and the the derived of its own. Considering
what your statements below, I think we are in agreement.

>> In particular the the pim, the lpm and the pam set in css_reset_sch
>> seems to suit only devices that use the virtual chp. That
>> is it ain't suits any CCWDevice instance.
> 
> Yes, we need to revisit this code and split out what makes sense and
> what doesn't. For now, we only have virtual devices and vfio-ccw, so
> we're fine. It even might make sense to keep them separate in the
> future, as having a virtual device and one only mirroring some state in
> QEMU sound like they want to be handled differently.
> 

I agree. The last sentence probably means that resetting the in QEMU
state may not be sufficient.

Another to me somewhat strange thing I noticed is this disabled_cb
used by virtio. It's is I guess the way it it is (specified in
the OASIS spec and everything), but I don't really understand how
this aligns with what the PoP says about MSCH. I mean AFAIU
MSCH does not trigger any communication between the channel subsystem
and the CU and or the device. I read the PoP as nothing is supposed
to change expect the things specified where MSCH is described. I guess
it is just another strange thing we have to live with -- for historical
reasons.

Regards,
Halil

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices
  2018-05-08 14:24     ` Halil Pasic
@ 2018-05-08 15:22       ` Cornelia Huck
  0 siblings, 0 replies; 16+ messages in thread
From: Cornelia Huck @ 2018-05-08 15:22 UTC (permalink / raw)
  To: Halil Pasic
  Cc: Christian Borntraeger, Thomas Huth, Alexander Graf,
	Richard Henderson, David Hildenbrand, qemu-s390x, qemu-devel

On Tue, 8 May 2018 16:24:08 +0200
Halil Pasic <pasic@linux.ibm.com> wrote:

> On 05/08/2018 03:55 PM, Cornelia Huck wrote:
> > On Tue, 8 May 2018 15:29:50 +0200
> > Halil Pasic <pasic@linux.ibm.com> wrote:

> >> In particular the the pim, the lpm and the pam set in css_reset_sch
> >> seems to suit only devices that use the virtual chp. That
> >> is it ain't suits any CCWDevice instance.  
> > 
> > Yes, we need to revisit this code and split out what makes sense and
> > what doesn't. For now, we only have virtual devices and vfio-ccw, so
> > we're fine. It even might make sense to keep them separate in the
> > future, as having a virtual device and one only mirroring some state in
> > QEMU sound like they want to be handled differently.
> >   
> 
> I agree. The last sentence probably means that resetting the in QEMU
> state may not be sufficient.

We currently have vfio-ccw's reset handler calling into the kernel and
triggering an disable/enable. What's missing is resetting QEMU's
internal state (or rather, syncing it up with the hardware state).
Needs some thinking.

> Another to me somewhat strange thing I noticed is this disabled_cb
> used by virtio. It's is I guess the way it it is (specified in
> the OASIS spec and everything), but I don't really understand how
> this aligns with what the PoP says about MSCH. I mean AFAIU
> MSCH does not trigger any communication between the channel subsystem
> and the CU and or the device. I read the PoP as nothing is supposed
> to change expect the things specified where MSCH is described. I guess
> it is just another strange thing we have to live with -- for historical
> reasons.

OTOH, I'd expect to have to setup things again if I disabled and
afterwards enabled a subchannel again. We should be able to overwrite
any old state after doing that. This was the best way to get virtio to
start with a clean slate again -- we don't want virtio reset to clean
the revision.

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2018-05-08 15:22 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-07 15:51 [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
2018-05-07 15:51 ` [Qemu-devel] [PATCH 1/2] virtio-ccw: common reset handler Cornelia Huck
2018-05-07 19:21   ` Thomas Huth
2018-05-07 19:44   ` David Hildenbrand
2018-05-08 13:31   ` [Qemu-devel] [qemu-s390x] " Halil Pasic
2018-05-07 15:51 ` [Qemu-devel] [PATCH 2/2] s390x/ccw: make sure all ccw devices are properly reset Cornelia Huck
2018-05-08  5:05   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-05-08  7:17   ` Christian Borntraeger
2018-05-08  7:38     ` Cornelia Huck
2018-05-08 13:42   ` [Qemu-devel] " Halil Pasic
2018-05-08 14:01     ` Cornelia Huck
2018-05-08 12:55 ` [Qemu-devel] [PATCH 0/2] s390x: reset handling for ccw devices Cornelia Huck
2018-05-08 13:29 ` Halil Pasic
2018-05-08 13:55   ` Cornelia Huck
2018-05-08 14:24     ` Halil Pasic
2018-05-08 15:22       ` Cornelia Huck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.