qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed
@ 2025-10-07 20:56 Matthew Rosato
  2025-10-07 22:14 ` Farhan Ali
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Matthew Rosato @ 2025-10-07 20:56 UTC (permalink / raw)
  To: qemu-s390x
  Cc: farman, thuth, pasic, borntraeger, richard.henderson, david, iii,
	qemu-devel

Allow irqfd to be used for virtio-pci on s390x if the kernel supports
it.  This improves s390x virtio-pci performance when using kvm
acceleration by allowing kvm to deliver interrupts instead of QEMU.

Reviewed-by: Eric Farman <farman@linux.ibm.com>
Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
---
v2:
 - add review tag
 - tweak commit message (David)
---
 hw/s390x/s390-pci-bus.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index e8e41c8a9a..88852acf45 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -900,6 +900,7 @@ static void s390_pcihost_realize(DeviceState *dev, Error **errp)
     s390_pci_init_default_group();
     css_register_io_adapters(CSS_IO_ADAPTER_PCI, true, false,
                              S390_ADAPTER_SUPPRESSIBLE, errp);
+    kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
 }
 
 static void s390_pcihost_unrealize(DeviceState *dev)
-- 
2.51.0



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

* Re: [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed
  2025-10-07 20:56 [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed Matthew Rosato
@ 2025-10-07 22:14 ` Farhan Ali
  2025-10-08  8:49 ` David Hildenbrand
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Farhan Ali @ 2025-10-07 22:14 UTC (permalink / raw)
  To: Matthew Rosato, qemu-s390x
  Cc: farman, thuth, pasic, borntraeger, richard.henderson, david, iii,
	qemu-devel

Reviewed-by: Farhan Ali <alifm@linux.ibm.com>

On 10/7/2025 1:56 PM, Matthew Rosato wrote:
> Allow irqfd to be used for virtio-pci on s390x if the kernel supports
> it.  This improves s390x virtio-pci performance when using kvm
> acceleration by allowing kvm to deliver interrupts instead of QEMU.
>
> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
> ---
> v2:
>   - add review tag
>   - tweak commit message (David)
> ---
>   hw/s390x/s390-pci-bus.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
> index e8e41c8a9a..88852acf45 100644
> --- a/hw/s390x/s390-pci-bus.c
> +++ b/hw/s390x/s390-pci-bus.c
> @@ -900,6 +900,7 @@ static void s390_pcihost_realize(DeviceState *dev, Error **errp)
>       s390_pci_init_default_group();
>       css_register_io_adapters(CSS_IO_ADAPTER_PCI, true, false,
>                                S390_ADAPTER_SUPPRESSIBLE, errp);
> +    kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
>   }
>   
>   static void s390_pcihost_unrealize(DeviceState *dev)


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

* Re: [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed
  2025-10-07 20:56 [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed Matthew Rosato
  2025-10-07 22:14 ` Farhan Ali
@ 2025-10-08  8:49 ` David Hildenbrand
  2025-10-08 10:23 ` Halil Pasic
  2025-10-08 12:51 ` Thomas Huth
  3 siblings, 0 replies; 7+ messages in thread
From: David Hildenbrand @ 2025-10-08  8:49 UTC (permalink / raw)
  To: Matthew Rosato, qemu-s390x
  Cc: farman, thuth, pasic, borntraeger, richard.henderson, iii,
	qemu-devel

On 07.10.25 22:56, Matthew Rosato wrote:
> Allow irqfd to be used for virtio-pci on s390x if the kernel supports
> it.  This improves s390x virtio-pci performance when using kvm
> acceleration by allowing kvm to deliver interrupts instead of QEMU.
> 
> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
> ---

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

-- 
Cheers

David / dhildenb



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

* Re: [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed
  2025-10-07 20:56 [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed Matthew Rosato
  2025-10-07 22:14 ` Farhan Ali
  2025-10-08  8:49 ` David Hildenbrand
@ 2025-10-08 10:23 ` Halil Pasic
  2025-10-08 12:51 ` Thomas Huth
  3 siblings, 0 replies; 7+ messages in thread
From: Halil Pasic @ 2025-10-08 10:23 UTC (permalink / raw)
  To: Matthew Rosato
  Cc: qemu-s390x, farman, thuth, borntraeger, richard.henderson, david,
	iii, qemu-devel, Halil Pasic

On Tue,  7 Oct 2025 16:56:14 -0400
Matthew Rosato <mjrosato@linux.ibm.com> wrote:

> Allow irqfd to be used for virtio-pci on s390x if the kernel supports
> it.  This improves s390x virtio-pci performance when using kvm
> acceleration by allowing kvm to deliver interrupts instead of QEMU.
> 
> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>

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


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

* Re: [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed
  2025-10-07 20:56 [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed Matthew Rosato
                   ` (2 preceding siblings ...)
  2025-10-08 10:23 ` Halil Pasic
@ 2025-10-08 12:51 ` Thomas Huth
  2025-10-08 13:19   ` Matthew Rosato
  3 siblings, 1 reply; 7+ messages in thread
From: Thomas Huth @ 2025-10-08 12:51 UTC (permalink / raw)
  To: Matthew Rosato, qemu-s390x
  Cc: farman, pasic, borntraeger, richard.henderson, david, iii,
	qemu-devel

On 07/10/2025 22.56, Matthew Rosato wrote:
> Allow irqfd to be used for virtio-pci on s390x if the kernel supports
> it.  This improves s390x virtio-pci performance when using kvm
> acceleration by allowing kvm to deliver interrupts instead of QEMU.
> 
> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
> ---
> v2:
>   - add review tag
>   - tweak commit message (David)
> ---
>   hw/s390x/s390-pci-bus.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
> index e8e41c8a9a..88852acf45 100644
> --- a/hw/s390x/s390-pci-bus.c
> +++ b/hw/s390x/s390-pci-bus.c
> @@ -900,6 +900,7 @@ static void s390_pcihost_realize(DeviceState *dev, Error **errp)
>       s390_pci_init_default_group();
>       css_register_io_adapters(CSS_IO_ADAPTER_PCI, true, false,
>                                S390_ADAPTER_SUPPRESSIBLE, errp);
> +    kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
>   }

  Hi Matthew,

this unfortunately fails to compile without KVM (e.g. on x86 hosts):

../../devel/qemu/hw/s390x/s390-pci-bus.c: In function ‘s390_pcihost_realize’:
../../devel/qemu/hw/s390x/s390-pci-bus.c:903:5: error: 
‘kvm_msi_via_irqfd_allowed’ undeclared (first use in this function); did you 
mean ‘kvm_msi_via_irqfd_enabled’?
   903 |     kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
       |     ^~~~~~~~~~~~~~~~~~~~~~~~~
       |     kvm_msi_via_irqfd_enabled
../../devel/qemu/hw/s390x/s390-pci-bus.c:903:5: note: each undeclared 
identifier is reported only once for each function it appears in

  Thomas



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

* Re: [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed
  2025-10-08 12:51 ` Thomas Huth
@ 2025-10-08 13:19   ` Matthew Rosato
  2025-10-08 13:44     ` Thomas Huth
  0 siblings, 1 reply; 7+ messages in thread
From: Matthew Rosato @ 2025-10-08 13:19 UTC (permalink / raw)
  To: Thomas Huth, qemu-s390x
  Cc: farman, pasic, borntraeger, richard.henderson, david, iii,
	qemu-devel

On 10/8/25 8:51 AM, Thomas Huth wrote:
> On 07/10/2025 22.56, Matthew Rosato wrote:
>> Allow irqfd to be used for virtio-pci on s390x if the kernel supports
>> it.  This improves s390x virtio-pci performance when using kvm
>> acceleration by allowing kvm to deliver interrupts instead of QEMU.
>>
>> Reviewed-by: Eric Farman <farman@linux.ibm.com>
>> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
>> ---
>> v2:
>>   - add review tag
>>   - tweak commit message (David)
>> ---
>>   hw/s390x/s390-pci-bus.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
>> index e8e41c8a9a..88852acf45 100644
>> --- a/hw/s390x/s390-pci-bus.c
>> +++ b/hw/s390x/s390-pci-bus.c
>> @@ -900,6 +900,7 @@ static void s390_pcihost_realize(DeviceState *dev, Error **errp)
>>       s390_pci_init_default_group();
>>       css_register_io_adapters(CSS_IO_ADAPTER_PCI, true, false,
>>                                S390_ADAPTER_SUPPRESSIBLE, errp);
>> +    kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
>>   }
> 
>  Hi Matthew,
> 
> this unfortunately fails to compile without KVM (e.g. on x86 hosts):
> 
> ../../devel/qemu/hw/s390x/s390-pci-bus.c: In function ‘s390_pcihost_realize’:
> ../../devel/qemu/hw/s390x/s390-pci-bus.c:903:5: error: ‘kvm_msi_via_irqfd_allowed’ undeclared (first use in this function); did you mean ‘kvm_msi_via_irqfd_enabled’?
>   903 |     kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
>       |     ^~~~~~~~~~~~~~~~~~~~~~~~~
>       |     kvm_msi_via_irqfd_enabled
> ../../devel/qemu/hw/s390x/s390-pci-bus.c:903:5: note: each undeclared identifier is reported only once for each function it appears in
>

Argh, thanks for pointing this out.  Of course this value only exists when CONFIG_KVM...

What do you think about using a routine in hw/s390x/s390-pci-kvm.c to set the value (and is a NOP stub when !CONFIG_KVM)?

Thanks,
Matt


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

* Re: [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed
  2025-10-08 13:19   ` Matthew Rosato
@ 2025-10-08 13:44     ` Thomas Huth
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2025-10-08 13:44 UTC (permalink / raw)
  To: Matthew Rosato, qemu-s390x
  Cc: farman, pasic, borntraeger, richard.henderson, david, iii,
	qemu-devel

On 08/10/2025 15.19, Matthew Rosato wrote:
> On 10/8/25 8:51 AM, Thomas Huth wrote:
>> On 07/10/2025 22.56, Matthew Rosato wrote:
>>> Allow irqfd to be used for virtio-pci on s390x if the kernel supports
>>> it.  This improves s390x virtio-pci performance when using kvm
>>> acceleration by allowing kvm to deliver interrupts instead of QEMU.
>>>
>>> Reviewed-by: Eric Farman <farman@linux.ibm.com>
>>> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
>>> ---
>>> v2:
>>>    - add review tag
>>>    - tweak commit message (David)
>>> ---
>>>    hw/s390x/s390-pci-bus.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
>>> index e8e41c8a9a..88852acf45 100644
>>> --- a/hw/s390x/s390-pci-bus.c
>>> +++ b/hw/s390x/s390-pci-bus.c
>>> @@ -900,6 +900,7 @@ static void s390_pcihost_realize(DeviceState *dev, Error **errp)
>>>        s390_pci_init_default_group();
>>>        css_register_io_adapters(CSS_IO_ADAPTER_PCI, true, false,
>>>                                 S390_ADAPTER_SUPPRESSIBLE, errp);
>>> +    kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
>>>    }
>>
>>   Hi Matthew,
>>
>> this unfortunately fails to compile without KVM (e.g. on x86 hosts):
>>
>> ../../devel/qemu/hw/s390x/s390-pci-bus.c: In function ‘s390_pcihost_realize’:
>> ../../devel/qemu/hw/s390x/s390-pci-bus.c:903:5: error: ‘kvm_msi_via_irqfd_allowed’ undeclared (first use in this function); did you mean ‘kvm_msi_via_irqfd_enabled’?
>>    903 |     kvm_msi_via_irqfd_allowed = kvm_irqfds_enabled();
>>        |     ^~~~~~~~~~~~~~~~~~~~~~~~~
>>        |     kvm_msi_via_irqfd_enabled
>> ../../devel/qemu/hw/s390x/s390-pci-bus.c:903:5: note: each undeclared identifier is reported only once for each function it appears in
>>
> 
> Argh, thanks for pointing this out.  Of course this value only exists when CONFIG_KVM...
> 
> What do you think about using a routine in hw/s390x/s390-pci-kvm.c to set the value (and is a NOP stub when !CONFIG_KVM)?

Yes, since we're doing this for some other KVM-related functions there 
already, that sounds like the right way to go here.

  Thomas



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

end of thread, other threads:[~2025-10-08 13:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-07 20:56 [PATCH v2] s390x/pci: set kvm_msi_via_irqfd_allowed Matthew Rosato
2025-10-07 22:14 ` Farhan Ali
2025-10-08  8:49 ` David Hildenbrand
2025-10-08 10:23 ` Halil Pasic
2025-10-08 12:51 ` Thomas Huth
2025-10-08 13:19   ` Matthew Rosato
2025-10-08 13:44     ` Thomas Huth

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).