[PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset

Matthew Rosato posted 1 patch 3 years, 7 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1602767767-32713-1-git-send-email-mjrosato@linux.ibm.com
Maintainers: Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Richard Henderson <rth@twiddle.net>, David Hildenbrand <david@redhat.com>
hw/s390x/s390-virtio-ccw.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset
Posted by Matthew Rosato 3 years, 7 months ago
Currently, a subsystem reset event leaves PCI devices enabled, causing
issues post-reset in the guest (an example would be after a kexec).  These
devices need to be reset during a subsystem reset, allowing them to be
properly re-enabled afterwards.  Add the S390 PCI host bridge to the list
of qdevs to be reset during subsystem reset.

Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
---
 hw/s390x/s390-virtio-ccw.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index e52182f..2e90033 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -101,6 +101,7 @@ static const char *const reset_dev_types[] = {
     "s390-sclp-event-facility",
     "s390-flic",
     "diag288",
+    TYPE_S390_PCI_HOST_BRIDGE,
 };
 
 static void subsystem_reset(void)
-- 
1.8.3.1


Re: [PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset
Posted by Christian Borntraeger 3 years, 7 months ago

On 15.10.20 15:16, Matthew Rosato wrote:
> Currently, a subsystem reset event leaves PCI devices enabled, causing
> issues post-reset in the guest (an example would be after a kexec).  These
> devices need to be reset during a subsystem reset, allowing them to be
> properly re-enabled afterwards.  Add the S390 PCI host bridge to the list
> of qdevs to be reset during subsystem reset.
> 
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
> Reviewed-by: Eric Farman <farman@linux.ibm.com>

Makese sense. 
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>


> ---
>  hw/s390x/s390-virtio-ccw.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index e52182f..2e90033 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -101,6 +101,7 @@ static const char *const reset_dev_types[] = {
>      "s390-sclp-event-facility",
>      "s390-flic",
>      "diag288",
> +    TYPE_S390_PCI_HOST_BRIDGE,
>  };
>  
>  static void subsystem_reset(void)
> 

Re: [PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset
Posted by Christian Borntraeger 3 years, 7 months ago

On 15.10.20 15:32, Christian Borntraeger wrote:
> 
> 
> On 15.10.20 15:16, Matthew Rosato wrote:
>> Currently, a subsystem reset event leaves PCI devices enabled, causing
>> issues post-reset in the guest (an example would be after a kexec).  These
>> devices need to be reset during a subsystem reset, allowing them to be
>> properly re-enabled afterwards.  Add the S390 PCI host bridge to the list
>> of qdevs to be reset during subsystem reset.
>>
>> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
>> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> 
> Makese sense. 
> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>

A question. Is this a stable candidate?

> 
> 
>> ---
>>  hw/s390x/s390-virtio-ccw.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>> index e52182f..2e90033 100644
>> --- a/hw/s390x/s390-virtio-ccw.c
>> +++ b/hw/s390x/s390-virtio-ccw.c
>> @@ -101,6 +101,7 @@ static const char *const reset_dev_types[] = {
>>      "s390-sclp-event-facility",
>>      "s390-flic",
>>      "diag288",
>> +    TYPE_S390_PCI_HOST_BRIDGE,
>>  };
>>  
>>  static void subsystem_reset(void)
>>

Re: [PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset
Posted by Niklas Schnelle 3 years, 7 months ago

On 10/15/20 3:34 PM, Christian Borntraeger wrote:
> 
> 
> On 15.10.20 15:32, Christian Borntraeger wrote:
>>
>>
>> On 15.10.20 15:16, Matthew Rosato wrote:
>>> Currently, a subsystem reset event leaves PCI devices enabled, causing
>>> issues post-reset in the guest (an example would be after a kexec).  These
>>> devices need to be reset during a subsystem reset, allowing them to be
>>> properly re-enabled afterwards.  Add the S390 PCI host bridge to the list
>>> of qdevs to be reset during subsystem reset.
>>>
>>> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
>>> Reviewed-by: Eric Farman <farman@linux.ibm.com>
>>
>> Makese sense. 
>> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
> 
> A question. Is this a stable candidate?

As this can prevent a SUSE guest (which does kexec during boot because of grub)
from seeing any PCI devices I'd say yes.

> 
>>
>>
>>> ---
>>>  hw/s390x/s390-virtio-ccw.c | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>>> index e52182f..2e90033 100644
>>> --- a/hw/s390x/s390-virtio-ccw.c
>>> +++ b/hw/s390x/s390-virtio-ccw.c
>>> @@ -101,6 +101,7 @@ static const char *const reset_dev_types[] = {
>>>      "s390-sclp-event-facility",
>>>      "s390-flic",
>>>      "diag288",
>>> +    TYPE_S390_PCI_HOST_BRIDGE,
>>>  };
>>>  
>>>  static void subsystem_reset(void)
>>>

Re: [PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset
Posted by Matthew Rosato 3 years, 7 months ago
On 10/15/20 9:37 AM, Niklas Schnelle wrote:
> 
> 
> On 10/15/20 3:34 PM, Christian Borntraeger wrote:
>>
>>
>> On 15.10.20 15:32, Christian Borntraeger wrote:
>>>
>>>
>>> On 15.10.20 15:16, Matthew Rosato wrote:
>>>> Currently, a subsystem reset event leaves PCI devices enabled, causing
>>>> issues post-reset in the guest (an example would be after a kexec).  These
>>>> devices need to be reset during a subsystem reset, allowing them to be
>>>> properly re-enabled afterwards.  Add the S390 PCI host bridge to the list
>>>> of qdevs to be reset during subsystem reset.
>>>>
>>>> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
>>>> Reviewed-by: Eric Farman <farman@linux.ibm.com>
>>>
>>> Makese sense.
>>> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
>>
>> A question. Is this a stable candidate?
> 
> As this can prevent a SUSE guest (which does kexec during boot because of grub)
> from seeing any PCI devices I'd say yes.
> 

Yes, agreed.

>>
>>>
>>>
>>>> ---
>>>>   hw/s390x/s390-virtio-ccw.c | 1 +
>>>>   1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>>>> index e52182f..2e90033 100644
>>>> --- a/hw/s390x/s390-virtio-ccw.c
>>>> +++ b/hw/s390x/s390-virtio-ccw.c
>>>> @@ -101,6 +101,7 @@ static const char *const reset_dev_types[] = {
>>>>       "s390-sclp-event-facility",
>>>>       "s390-flic",
>>>>       "diag288",
>>>> +    TYPE_S390_PCI_HOST_BRIDGE,
>>>>   };
>>>>   
>>>>   static void subsystem_reset(void)
>>>>


Re: [PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset
Posted by Halil Pasic 3 years, 7 months ago
On Thu, 15 Oct 2020 09:16:07 -0400
Matthew Rosato <mjrosato@linux.ibm.com> wrote:

> Currently, a subsystem reset event leaves PCI devices enabled, causing
> issues post-reset in the guest (an example would be after a kexec).  These
> devices need to be reset during a subsystem reset, allowing them to be
> properly re-enabled afterwards.  Add the S390 PCI host bridge to the list
> of qdevs to be reset during subsystem reset.
> 
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
> Reviewed-by: Eric Farman <farman@linux.ibm.com>

Acked-by: Halil Pasic <pasic@linux.ibm.com>
> ---
>  hw/s390x/s390-virtio-ccw.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index e52182f..2e90033 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -101,6 +101,7 @@ static const char *const reset_dev_types[] = {
>      "s390-sclp-event-facility",
>      "s390-flic",
>      "diag288",
> +    TYPE_S390_PCI_HOST_BRIDGE,
>  };
>  
>  static void subsystem_reset(void)


Re: [PATCH] s390x/s390-virtio-ccw: Reset PCI devices during subsystem reset
Posted by Cornelia Huck 3 years, 6 months ago
On Thu, 15 Oct 2020 09:16:07 -0400
Matthew Rosato <mjrosato@linux.ibm.com> wrote:

> Currently, a subsystem reset event leaves PCI devices enabled, causing
> issues post-reset in the guest (an example would be after a kexec).  These
> devices need to be reset during a subsystem reset, allowing them to be
> properly re-enabled afterwards.  Add the S390 PCI host bridge to the list
> of qdevs to be reset during subsystem reset.
> 
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> ---
>  hw/s390x/s390-virtio-ccw.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index e52182f..2e90033 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -101,6 +101,7 @@ static const char *const reset_dev_types[] = {
>      "s390-sclp-event-facility",
>      "s390-flic",
>      "diag288",
> +    TYPE_S390_PCI_HOST_BRIDGE,
>  };
>  
>  static void subsystem_reset(void)

Thanks, applied (with cc:stable added.)