diff mbox

virtio: Notice when the system doesn't support MSIx at all

Message ID 1432067391-19834-1-git-send-email-rth@twiddle.net
State New
Headers show

Commit Message

Richard Henderson May 19, 2015, 8:29 p.m. UTC
And do not issue an error_report in that case.

Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 hw/virtio/virtio-pci.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
--

This seems to be about the only sane way to test the value of
msi_supported from here.  Thoughts?


r~

Comments

Michael S. Tsirkin May 20, 2015, 9:59 a.m. UTC | #1
On Tue, May 19, 2015 at 01:29:51PM -0700, Richard Henderson wrote:
> And do not issue an error_report in that case.
> 
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> --
> 
> This seems to be about the only sane way to test the value of
> msi_supported from here.  Thoughts?
> 
> 
> r~

Can you please include the qemu command-line that triggers the error
in the commit log?

> 
> 
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 867c9d1..6763872 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -934,11 +934,16 @@ static void virtio_pci_device_plugged(DeviceState *d)
>      pci_set_word(config + PCI_SUBSYSTEM_ID, virtio_bus_get_vdev_id(bus));
>      config[PCI_INTERRUPT_PIN] = 1;
>  
> -    if (proxy->nvectors &&
> -        msix_init_exclusive_bar(&proxy->pci_dev, proxy->nvectors, 1)) {
> -        error_report("unable to init msix vectors to %" PRIu32,
> -                     proxy->nvectors);
> -        proxy->nvectors = 0;
> +    if (proxy->nvectors) {
> +        int err = msix_init_exclusive_bar(&proxy->pci_dev, proxy->nvectors, 1);
> +        if (err) {
> +            /* Notice when a system that supports MSIx can't initialize it.  */
> +            if (err != -ENOTSUP) {
> +                error_report("unable to init msix vectors to %" PRIu32,
> +                             proxy->nvectors);
> +            }
> +            proxy->nvectors = 0;
> +        }
>      }
>  
>      proxy->pci_dev.config_write = virtio_write_config;
> -- 
> 2.1.0
Richard Henderson May 20, 2015, 3:10 p.m. UTC | #2
On 05/20/2015 02:59 AM, Michael S. Tsirkin wrote:
> On Tue, May 19, 2015 at 01:29:51PM -0700, Richard Henderson wrote:
>> And do not issue an error_report in that case.
>>
>> Signed-off-by: Richard Henderson <rth@twiddle.net>
>> ---
>>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>>  1 file changed, 10 insertions(+), 5 deletions(-)
>> --
>>
>> This seems to be about the only sane way to test the value of
>> msi_supported from here.  Thoughts?
>>
>>
>> r~
> 
> Can you please include the qemu command-line that triggers the error
> in the commit log?

$ ../run/bin/qemu-system-alpha -drive file=foo.img,if=virtio,format=raw
qemu-system-alpha: -drive file=foo.img,if=virtio,format=raw: unable to init
msix vectors to 2


r~
Mark Cave-Ayland May 21, 2015, 6:51 p.m. UTC | #3
On 20/05/15 16:10, Richard Henderson wrote:

> On 05/20/2015 02:59 AM, Michael S. Tsirkin wrote:
>> On Tue, May 19, 2015 at 01:29:51PM -0700, Richard Henderson wrote:
>>> And do not issue an error_report in that case.
>>>
>>> Signed-off-by: Richard Henderson <rth@twiddle.net>
>>> ---
>>>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>>>  1 file changed, 10 insertions(+), 5 deletions(-)
>>> --
>>>
>>> This seems to be about the only sane way to test the value of
>>> msi_supported from here.  Thoughts?
>>>
>>>
>>> r~
>>
>> Can you please include the qemu command-line that triggers the error
>> in the commit log?
> 
> $ ../run/bin/qemu-system-alpha -drive file=foo.img,if=virtio,format=raw
> qemu-system-alpha: -drive file=foo.img,if=virtio,format=raw: unable to init
> msix vectors to 2

I also get the same message on qemu-system-sparc64 as below (FWIW I did
raise this on-list months ago but no-one replied to my post at the time):

./qemu-system-sparc64 -drive
file=debian-7.7.0-sparc-netinst.iso,if=virtio,readonly=on,index=1 -nographic


ATB,

Mark.
Mark Cave-Ayland July 3, 2015, 8:22 a.m. UTC | #4
On 19/05/15 21:29, Richard Henderson wrote:

> And do not issue an error_report in that case.
> 
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> --
> 
> This seems to be about the only sane way to test the value of
> msi_supported from here.  Thoughts?
> 
> 
> r~
> 
> 
> 
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 867c9d1..6763872 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -934,11 +934,16 @@ static void virtio_pci_device_plugged(DeviceState *d)
>      pci_set_word(config + PCI_SUBSYSTEM_ID, virtio_bus_get_vdev_id(bus));
>      config[PCI_INTERRUPT_PIN] = 1;
>  
> -    if (proxy->nvectors &&
> -        msix_init_exclusive_bar(&proxy->pci_dev, proxy->nvectors, 1)) {
> -        error_report("unable to init msix vectors to %" PRIu32,
> -                     proxy->nvectors);
> -        proxy->nvectors = 0;
> +    if (proxy->nvectors) {
> +        int err = msix_init_exclusive_bar(&proxy->pci_dev, proxy->nvectors, 1);
> +        if (err) {
> +            /* Notice when a system that supports MSIx can't initialize it.  */
> +            if (err != -ENOTSUP) {
> +                error_report("unable to init msix vectors to %" PRIu32,
> +                             proxy->nvectors);
> +            }
> +            proxy->nvectors = 0;
> +        }
>      }
>  
>      proxy->pci_dev.config_write = virtio_write_config;
> 

Ping? Any chance of getting this applied for 2.4 since it's something
that I do get emails about for SPARC64?


ATB,

Mark.
Peter Maydell July 6, 2015, 10:38 a.m. UTC | #5
On 3 July 2015 at 09:22, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote:
> On 19/05/15 21:29, Richard Henderson wrote:
>
>> And do not issue an error_report in that case.
>>
>> Signed-off-by: Richard Henderson <rth@twiddle.net>
>> ---
>>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>>  1 file changed, 10 insertions(+), 5 deletions(-)
>> --
>>
>> This seems to be about the only sane way to test the value of
>> msi_supported from here.  Thoughts?

> Ping? Any chance of getting this applied for 2.4 since it's something
> that I do get emails about for SPARC64?

Michael would like a respin with the commit message correction
he suggested. RTH -- could you send out a fixed up version, please?

thanks
-- PMM
Peter Maydell Sept. 27, 2015, 2:40 p.m. UTC | #6
Ping^2 -- this is still confusing users, cf bug LP:1500175.

thanks
-- PMM

On 6 July 2015 at 11:38, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 3 July 2015 at 09:22, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote:
>> On 19/05/15 21:29, Richard Henderson wrote:
>>
>>> And do not issue an error_report in that case.
>>>
>>> Signed-off-by: Richard Henderson <rth@twiddle.net>
>>> ---
>>>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>>>  1 file changed, 10 insertions(+), 5 deletions(-)
>>> --
>>>
>>> This seems to be about the only sane way to test the value of
>>> msi_supported from here.  Thoughts?
>
>> Ping? Any chance of getting this applied for 2.4 since it's something
>> that I do get emails about for SPARC64?
>
> Michael would like a respin with the commit message correction
> he suggested. RTH -- could you send out a fixed up version, please?
>
> thanks
> -- PMM
Mark Cave-Ayland Oct. 26, 2015, 9:44 a.m. UTC | #7
On 27/09/15 15:40, Peter Maydell wrote:

> Ping^2 -- this is still confusing users, cf bug LP:1500175.
> 
> thanks
> -- PMM
> 
> On 6 July 2015 at 11:38, Peter Maydell <peter.maydell@linaro.org> wrote:
>> On 3 July 2015 at 09:22, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote:
>>> On 19/05/15 21:29, Richard Henderson wrote:
>>>
>>>> And do not issue an error_report in that case.
>>>>
>>>> Signed-off-by: Richard Henderson <rth@twiddle.net>
>>>> ---
>>>>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>>>>  1 file changed, 10 insertions(+), 5 deletions(-)
>>>> --
>>>>
>>>> This seems to be about the only sane way to test the value of
>>>> msi_supported from here.  Thoughts?
>>
>>> Ping? Any chance of getting this applied for 2.4 since it's something
>>> that I do get emails about for SPARC64?
>>
>> Michael would like a respin with the commit message correction
>> he suggested. RTH -- could you send out a fixed up version, please?
>>
>> thanks
>> -- PMM

Another ping on this patch - please can we have it for 2.5? It has been
around since before 2.4 and I'd hate for it to miss another release :(


ATB,

Mark.
Michael S. Tsirkin Oct. 26, 2015, 10:03 a.m. UTC | #8
On Mon, Oct 26, 2015 at 09:44:47AM +0000, Mark Cave-Ayland wrote:
> On 27/09/15 15:40, Peter Maydell wrote:
> 
> > Ping^2 -- this is still confusing users, cf bug LP:1500175.
> > 
> > thanks
> > -- PMM
> > 
> > On 6 July 2015 at 11:38, Peter Maydell <peter.maydell@linaro.org> wrote:
> >> On 3 July 2015 at 09:22, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote:
> >>> On 19/05/15 21:29, Richard Henderson wrote:
> >>>
> >>>> And do not issue an error_report in that case.
> >>>>
> >>>> Signed-off-by: Richard Henderson <rth@twiddle.net>
> >>>> ---
> >>>>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
> >>>>  1 file changed, 10 insertions(+), 5 deletions(-)
> >>>> --
> >>>>
> >>>> This seems to be about the only sane way to test the value of
> >>>> msi_supported from here.  Thoughts?
> >>
> >>> Ping? Any chance of getting this applied for 2.4 since it's something
> >>> that I do get emails about for SPARC64?
> >>
> >> Michael would like a respin with the commit message correction
> >> he suggested. RTH -- could you send out a fixed up version, please?

I don't think there was a reply to this, and by now the patch doesn't apply.

> >>
> >> thanks
> >> -- PMM
> 
> Another ping on this patch - please can we have it for 2.5? It has been
> around since before 2.4 and I'd hate for it to miss another release :(
> 
> 
> ATB,
> 
> Mark.

Pls address the issues if you want this applied.
Mark Cave-Ayland Oct. 26, 2015, 10:09 a.m. UTC | #9
On 26/10/15 10:03, Michael S. Tsirkin wrote:

> On Mon, Oct 26, 2015 at 09:44:47AM +0000, Mark Cave-Ayland wrote:
>> On 27/09/15 15:40, Peter Maydell wrote:
>>
>>> Ping^2 -- this is still confusing users, cf bug LP:1500175.
>>>
>>> thanks
>>> -- PMM
>>>
>>> On 6 July 2015 at 11:38, Peter Maydell <peter.maydell@linaro.org> wrote:
>>>> On 3 July 2015 at 09:22, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote:
>>>>> On 19/05/15 21:29, Richard Henderson wrote:
>>>>>
>>>>>> And do not issue an error_report in that case.
>>>>>>
>>>>>> Signed-off-by: Richard Henderson <rth@twiddle.net>
>>>>>> ---
>>>>>>  hw/virtio/virtio-pci.c | 15 ++++++++++-----
>>>>>>  1 file changed, 10 insertions(+), 5 deletions(-)
>>>>>> --
>>>>>>
>>>>>> This seems to be about the only sane way to test the value of
>>>>>> msi_supported from here.  Thoughts?
>>>>
>>>>> Ping? Any chance of getting this applied for 2.4 since it's something
>>>>> that I do get emails about for SPARC64?
>>>>
>>>> Michael would like a respin with the commit message correction
>>>> he suggested. RTH -- could you send out a fixed up version, please?
> 
> I don't think there was a reply to this, and by now the patch doesn't apply.

Hmmm that's a shame. I'm not overly familiar with the PCI parts of QEMU,
so is it much work to rebase?

>>>>
>>>> thanks
>>>> -- PMM
>>
>> Another ping on this patch - please can we have it for 2.5? It has been
>> around since before 2.4 and I'd hate for it to miss another release :(
>>
>>
>> ATB,
>>
>> Mark.
> 
> Pls address the issues if you want this applied.

The patch came from Richard rather than myself - my only involvement has
been to champion the patch since both myself and Peter have had reports
of this message confusing users.


ATB,

Mark.
Peter Maydell Oct. 26, 2015, 10:14 a.m. UTC | #10
On 26 October 2015 at 10:09, Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
> On 26/10/15 10:03, Michael S. Tsirkin wrote:
>> Pls address the issues if you want this applied.
>
> The patch came from Richard rather than myself - my only involvement has
> been to champion the patch since both myself and Peter have had reports
> of this message confusing users.

Isn't this patch already in master as commit 0d583647a7fc73f6 ?

thanks
-- PMM
Michael S. Tsirkin Oct. 26, 2015, 10:29 a.m. UTC | #11
On Mon, Oct 26, 2015 at 10:14:20AM +0000, Peter Maydell wrote:
> On 26 October 2015 at 10:09, Mark Cave-Ayland
> <mark.cave-ayland@ilande.co.uk> wrote:
> > On 26/10/15 10:03, Michael S. Tsirkin wrote:
> >> Pls address the issues if you want this applied.
> >
> > The patch came from Richard rather than myself - my only involvement has
> > been to champion the patch since both myself and Peter have had reports
> > of this message confusing users.
> 
> Isn't this patch already in master as commit 0d583647a7fc73f6 ?
> 
> thanks
> -- PMM

So it is.
That explains why it doesn't apply.
Mark Cave-Ayland Oct. 26, 2015, 10:47 a.m. UTC | #12
On 26/10/15 10:14, Peter Maydell wrote:

> On 26 October 2015 at 10:09, Mark Cave-Ayland
> <mark.cave-ayland@ilande.co.uk> wrote:
>> On 26/10/15 10:03, Michael S. Tsirkin wrote:
>>> Pls address the issues if you want this applied.
>>
>> The patch came from Richard rather than myself - my only involvement has
>> been to champion the patch since both myself and Peter have had reports
>> of this message confusing users.
> 
> Isn't this patch already in master as commit 0d583647a7fc73f6 ?

Oh I think you're right! I had that thread tagged and hadn't seen a
reply come through, but I guess Richard must have attached it to one of
his recent pull requests.

In that case apologies to all for the noise.


ATB,

Mark.
Michael S. Tsirkin Oct. 26, 2015, 11:08 a.m. UTC | #13
On Mon, Oct 26, 2015 at 10:47:48AM +0000, Mark Cave-Ayland wrote:
> On 26/10/15 10:14, Peter Maydell wrote:
> 
> > On 26 October 2015 at 10:09, Mark Cave-Ayland
> > <mark.cave-ayland@ilande.co.uk> wrote:
> >> On 26/10/15 10:03, Michael S. Tsirkin wrote:
> >>> Pls address the issues if you want this applied.
> >>
> >> The patch came from Richard rather than myself - my only involvement has
> >> been to champion the patch since both myself and Peter have had reports
> >> of this message confusing users.
> > 
> > Isn't this patch already in master as commit 0d583647a7fc73f6 ?
> 
> Oh I think you're right! I had that thread tagged and hadn't seen a
> reply come through, but I guess Richard must have attached it to one of
> his recent pull requests.

I did. I don't do replies, I merge patches then change my mind and drop
them too many times to make "applied thanks" work.  As I send pulls
about once a week, and Cc contributors, you only need to watch these to
know whether stuff is merged.


> In that case apologies to all for the noise.
> 
> 
> ATB,
> 
> Mark.
diff mbox

Patch

diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 867c9d1..6763872 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -934,11 +934,16 @@  static void virtio_pci_device_plugged(DeviceState *d)
     pci_set_word(config + PCI_SUBSYSTEM_ID, virtio_bus_get_vdev_id(bus));
     config[PCI_INTERRUPT_PIN] = 1;
 
-    if (proxy->nvectors &&
-        msix_init_exclusive_bar(&proxy->pci_dev, proxy->nvectors, 1)) {
-        error_report("unable to init msix vectors to %" PRIu32,
-                     proxy->nvectors);
-        proxy->nvectors = 0;
+    if (proxy->nvectors) {
+        int err = msix_init_exclusive_bar(&proxy->pci_dev, proxy->nvectors, 1);
+        if (err) {
+            /* Notice when a system that supports MSIx can't initialize it.  */
+            if (err != -ENOTSUP) {
+                error_report("unable to init msix vectors to %" PRIu32,
+                             proxy->nvectors);
+            }
+            proxy->nvectors = 0;
+        }
     }
 
     proxy->pci_dev.config_write = virtio_write_config;