diff mbox

[PULL,08/15] i440fx: print an error message if user tries to enable iommu

Message ID 1447939696-28930-9-git-send-email-mst@redhat.com
State New
Headers show

Commit Message

Michael S. Tsirkin Nov. 19, 2015, 1:36 p.m. UTC
From: Bandan Das <bsd@redhat.com>

There's no indication of any sort that i440fx doesn't support
"iommu=on"

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Bandan Das <bsd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Bandan Das <bsd@redhat.com>
---
 hw/pci-host/piix.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Bandan Das Nov. 19, 2015, 8:38 p.m. UTC | #1
"Michael S. Tsirkin" <mst@redhat.com> writes:

> From: Bandan Das <bsd@redhat.com>
>
> There's no indication of any sort that i440fx doesn't support
> "iommu=on"

Oh, Markus quite didn't like this approach because this is
true for all other machines too. Anyway, I will keep in
mind to take care of this when I post a generic patch. 

> Reviewed-by: Eric Blake <eblake@redhat.com>
> Signed-off-by: Bandan Das <bsd@redhat.com>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> Signed-off-by: Bandan Das <bsd@redhat.com>
> ---
>  hw/pci-host/piix.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
> index 7b2fbf9..715208b 100644
> --- a/hw/pci-host/piix.c
> +++ b/hw/pci-host/piix.c
> @@ -34,6 +34,7 @@
>  #include "sysemu/sysemu.h"
>  #include "hw/i386/ioapic.h"
>  #include "qapi/visitor.h"
> +#include "qemu/error-report.h"
>  
>  /*
>   * I440FX chipset data sheet.
> @@ -301,6 +302,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, Error **errp)
>  static void i440fx_realize(PCIDevice *dev, Error **errp)
>  {
>      dev->config[I440FX_SMRAM] = 0x02;
> +
> +    if (object_property_get_bool(qdev_get_machine(), "iommu", NULL)) {
> +        error_report("warning: i440fx doesn't support emulated iommu");
> +    }
>  }
>  
>  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
Michael S. Tsirkin Nov. 19, 2015, 8:43 p.m. UTC | #2
On Thu, Nov 19, 2015 at 03:38:03PM -0500, Bandan Das wrote:
> "Michael S. Tsirkin" <mst@redhat.com> writes:
> 
> > From: Bandan Das <bsd@redhat.com>
> >
> > There's no indication of any sort that i440fx doesn't support
> > "iommu=on"
> 
> Oh, Markus quite didn't like this approach because this is
> true for all other machines too. Anyway, I will keep in
> mind to take care of this when I post a generic patch. 

Do you think I should revert this one then?

> > Reviewed-by: Eric Blake <eblake@redhat.com>
> > Signed-off-by: Bandan Das <bsd@redhat.com>
> > Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>
> > Signed-off-by: Bandan Das <bsd@redhat.com>
> > ---
> >  hw/pci-host/piix.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
> > index 7b2fbf9..715208b 100644
> > --- a/hw/pci-host/piix.c
> > +++ b/hw/pci-host/piix.c
> > @@ -34,6 +34,7 @@
> >  #include "sysemu/sysemu.h"
> >  #include "hw/i386/ioapic.h"
> >  #include "qapi/visitor.h"
> > +#include "qemu/error-report.h"
> >  
> >  /*
> >   * I440FX chipset data sheet.
> > @@ -301,6 +302,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, Error **errp)
> >  static void i440fx_realize(PCIDevice *dev, Error **errp)
> >  {
> >      dev->config[I440FX_SMRAM] = 0x02;
> > +
> > +    if (object_property_get_bool(qdev_get_machine(), "iommu", NULL)) {
> > +        error_report("warning: i440fx doesn't support emulated iommu");
> > +    }
> >  }
> >  
> >  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
Bandan Das Nov. 19, 2015, 8:55 p.m. UTC | #3
"Michael S. Tsirkin" <mst@redhat.com> writes:

> On Thu, Nov 19, 2015 at 03:38:03PM -0500, Bandan Das wrote:
>> "Michael S. Tsirkin" <mst@redhat.com> writes:
>> 
>> > From: Bandan Das <bsd@redhat.com>
>> >
>> > There's no indication of any sort that i440fx doesn't support
>> > "iommu=on"
>> 
>> Oh, Markus quite didn't like this approach because this is
>> true for all other machines too. Anyway, I will keep in
>> mind to take care of this when I post a generic patch. 
>
> Do you think I should revert this one then?

Yes please, if you can. Or else, I will fix it up when I post
a generic patch later.

>> > Reviewed-by: Eric Blake <eblake@redhat.com>
>> > Signed-off-by: Bandan Das <bsd@redhat.com>
>> > Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
>> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>> > Reviewed-by: Eric Blake <eblake@redhat.com>
>> > Signed-off-by: Bandan Das <bsd@redhat.com>
>> > ---
>> >  hw/pci-host/piix.c | 5 +++++
>> >  1 file changed, 5 insertions(+)
>> >
>> > diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
>> > index 7b2fbf9..715208b 100644
>> > --- a/hw/pci-host/piix.c
>> > +++ b/hw/pci-host/piix.c
>> > @@ -34,6 +34,7 @@
>> >  #include "sysemu/sysemu.h"
>> >  #include "hw/i386/ioapic.h"
>> >  #include "qapi/visitor.h"
>> > +#include "qemu/error-report.h"
>> >  
>> >  /*
>> >   * I440FX chipset data sheet.
>> > @@ -301,6 +302,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, Error **errp)
>> >  static void i440fx_realize(PCIDevice *dev, Error **errp)
>> >  {
>> >      dev->config[I440FX_SMRAM] = 0x02;
>> > +
>> > +    if (object_property_get_bool(qdev_get_machine(), "iommu", NULL)) {
>> > +        error_report("warning: i440fx doesn't support emulated iommu");
>> > +    }
>> >  }
>> >  
>> >  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
Michael S. Tsirkin Nov. 19, 2015, 8:56 p.m. UTC | #4
On Thu, Nov 19, 2015 at 03:55:35PM -0500, Bandan Das wrote:
> "Michael S. Tsirkin" <mst@redhat.com> writes:
> 
> > On Thu, Nov 19, 2015 at 03:38:03PM -0500, Bandan Das wrote:
> >> "Michael S. Tsirkin" <mst@redhat.com> writes:
> >> 
> >> > From: Bandan Das <bsd@redhat.com>
> >> >
> >> > There's no indication of any sort that i440fx doesn't support
> >> > "iommu=on"
> >> 
> >> Oh, Markus quite didn't like this approach because this is
> >> true for all other machines too. Anyway, I will keep in
> >> mind to take care of this when I post a generic patch. 
> >
> > Do you think I should revert this one then?
> 
> Yes please, if you can. Or else, I will fix it up when I post
> a generic patch later.


Will do in the next pull.

> >> > Reviewed-by: Eric Blake <eblake@redhat.com>
> >> > Signed-off-by: Bandan Das <bsd@redhat.com>
> >> > Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> >> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> >> > Reviewed-by: Eric Blake <eblake@redhat.com>
> >> > Signed-off-by: Bandan Das <bsd@redhat.com>
> >> > ---
> >> >  hw/pci-host/piix.c | 5 +++++
> >> >  1 file changed, 5 insertions(+)
> >> >
> >> > diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
> >> > index 7b2fbf9..715208b 100644
> >> > --- a/hw/pci-host/piix.c
> >> > +++ b/hw/pci-host/piix.c
> >> > @@ -34,6 +34,7 @@
> >> >  #include "sysemu/sysemu.h"
> >> >  #include "hw/i386/ioapic.h"
> >> >  #include "qapi/visitor.h"
> >> > +#include "qemu/error-report.h"
> >> >  
> >> >  /*
> >> >   * I440FX chipset data sheet.
> >> > @@ -301,6 +302,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, Error **errp)
> >> >  static void i440fx_realize(PCIDevice *dev, Error **errp)
> >> >  {
> >> >      dev->config[I440FX_SMRAM] = 0x02;
> >> > +
> >> > +    if (object_property_get_bool(qdev_get_machine(), "iommu", NULL)) {
> >> > +        error_report("warning: i440fx doesn't support emulated iommu");
> >> > +    }
> >> >  }
> >> >  
> >> >  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
Markus Armbruster Nov. 19, 2015, 9 p.m. UTC | #5
"Michael S. Tsirkin" <mst@redhat.com> writes:

> On Thu, Nov 19, 2015 at 03:38:03PM -0500, Bandan Das wrote:
>> "Michael S. Tsirkin" <mst@redhat.com> writes:
>> 
>> > From: Bandan Das <bsd@redhat.com>
>> >
>> > There's no indication of any sort that i440fx doesn't support
>> > "iommu=on"
>> 
>> Oh, Markus quite didn't like this approach because this is
>> true for all other machines too. Anyway, I will keep in
>> mind to take care of this when I post a generic patch. 
>
> Do you think I should revert this one then?

The patch isn't wrong, it merely addresses only one special case of a
generic issue.  Probably the most important case in practice.  If I
understood Bandan correctly, he intended to drop this patch and work on
a general solution.  As far as I'm concerned, you can keep this patch if
dropping it is inconvenient.
Michael S. Tsirkin Nov. 20, 2015, 8:36 a.m. UTC | #6
On Thu, Nov 19, 2015 at 03:55:35PM -0500, Bandan Das wrote:
> "Michael S. Tsirkin" <mst@redhat.com> writes:
> 
> > On Thu, Nov 19, 2015 at 03:38:03PM -0500, Bandan Das wrote:
> >> "Michael S. Tsirkin" <mst@redhat.com> writes:
> >> 
> >> > From: Bandan Das <bsd@redhat.com>
> >> >
> >> > There's no indication of any sort that i440fx doesn't support
> >> > "iommu=on"
> >> 
> >> Oh, Markus quite didn't like this approach because this is
> >> true for all other machines too. Anyway, I will keep in
> >> mind to take care of this when I post a generic patch. 
> >
> > Do you think I should revert this one then?
> 
> Yes please, if you can. Or else, I will fix it up when I post
> a generic patch later.

Revert these two then?
commit 8d211f622b11ac2877c344f29de284d5a842d9d7
Author: Bandan Das <bsd@redhat.com>
Date:   Fri Nov 13 01:55:48 2015 -0500

    i440fx: print an error message if user tries to enable iommu
    
    There's no indication of any sort that i440fx doesn't support
    "iommu=on"
    
    Reviewed-by: Eric Blake <eblake@redhat.com>
    Signed-off-by: Bandan Das <bsd@redhat.com>
    Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Eric Blake <eblake@redhat.com>
    Signed-off-by: Bandan Das <bsd@redhat.com>

commit 1f8431f42d833e8914f2d16ce4a49b7b72b90db0
Author: Bandan Das <bsd@redhat.com>
Date:   Fri Nov 13 01:55:47 2015 -0500

    q35: Check propery to determine if iommu is set
    
    The helper function machine_iommu() isn't necesary. We can
    directly check for the property.
    
    Signed-off-by: Bandan Das <bsd@redhat.com>
    Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Bandan Das <bsd@redhat.com>

Or just one of these?

> >> > Reviewed-by: Eric Blake <eblake@redhat.com>
> >> > Signed-off-by: Bandan Das <bsd@redhat.com>
> >> > Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> >> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> >> > Reviewed-by: Eric Blake <eblake@redhat.com>
> >> > Signed-off-by: Bandan Das <bsd@redhat.com>
> >> > ---
> >> >  hw/pci-host/piix.c | 5 +++++
> >> >  1 file changed, 5 insertions(+)
> >> >
> >> > diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
> >> > index 7b2fbf9..715208b 100644
> >> > --- a/hw/pci-host/piix.c
> >> > +++ b/hw/pci-host/piix.c
> >> > @@ -34,6 +34,7 @@
> >> >  #include "sysemu/sysemu.h"
> >> >  #include "hw/i386/ioapic.h"
> >> >  #include "qapi/visitor.h"
> >> > +#include "qemu/error-report.h"
> >> >  
> >> >  /*
> >> >   * I440FX chipset data sheet.
> >> > @@ -301,6 +302,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, Error **errp)
> >> >  static void i440fx_realize(PCIDevice *dev, Error **errp)
> >> >  {
> >> >      dev->config[I440FX_SMRAM] = 0x02;
> >> > +
> >> > +    if (object_property_get_bool(qdev_get_machine(), "iommu", NULL)) {
> >> > +        error_report("warning: i440fx doesn't support emulated iommu");
> >> > +    }
> >> >  }
> >> >  
> >> >  PCIBus *i440fx_init(const char *host_type, const char *pci_type,
Michael S. Tsirkin Nov. 20, 2015, 9:43 a.m. UTC | #7
On Thu, Nov 19, 2015 at 10:00:38PM +0100, Markus Armbruster wrote:
> "Michael S. Tsirkin" <mst@redhat.com> writes:
> 
> > On Thu, Nov 19, 2015 at 03:38:03PM -0500, Bandan Das wrote:
> >> "Michael S. Tsirkin" <mst@redhat.com> writes:
> >> 
> >> > From: Bandan Das <bsd@redhat.com>
> >> >
> >> > There's no indication of any sort that i440fx doesn't support
> >> > "iommu=on"
> >> 
> >> Oh, Markus quite didn't like this approach because this is
> >> true for all other machines too. Anyway, I will keep in
> >> mind to take care of this when I post a generic patch. 
> >
> > Do you think I should revert this one then?
> 
> The patch isn't wrong, it merely addresses only one special case of a
> generic issue.  Probably the most important case in practice.  If I
> understood Bandan correctly, he intended to drop this patch and work on
> a general solution.  As far as I'm concerned, you can keep this patch if
> dropping it is inconvenient.

Bandan, I suggest you include the revert in your patchset
when it's ready then. Maybe post 2.5.
Bandan Das Nov. 20, 2015, 4:25 p.m. UTC | #8
"Michael S. Tsirkin" <mst@redhat.com> writes:

> On Thu, Nov 19, 2015 at 10:00:38PM +0100, Markus Armbruster wrote:
>> "Michael S. Tsirkin" <mst@redhat.com> writes:
>> 
>> > On Thu, Nov 19, 2015 at 03:38:03PM -0500, Bandan Das wrote:
>> >> "Michael S. Tsirkin" <mst@redhat.com> writes:
>> >> 
>> >> > From: Bandan Das <bsd@redhat.com>
>> >> >
>> >> > There's no indication of any sort that i440fx doesn't support
>> >> > "iommu=on"
>> >> 
>> >> Oh, Markus quite didn't like this approach because this is
>> >> true for all other machines too. Anyway, I will keep in
>> >> mind to take care of this when I post a generic patch. 
>> >
>> > Do you think I should revert this one then?
>> 
>> The patch isn't wrong, it merely addresses only one special case of a
>> generic issue.  Probably the most important case in practice.  If I
>> understood Bandan correctly, he intended to drop this patch and work on
>> a general solution.  As far as I'm concerned, you can keep this patch if
>> dropping it is inconvenient.
>
> Bandan, I suggest you include the revert in your patchset
> when it's ready then. Maybe post 2.5.

Yes, will do. Thanks.
diff mbox

Patch

diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
index 7b2fbf9..715208b 100644
--- a/hw/pci-host/piix.c
+++ b/hw/pci-host/piix.c
@@ -34,6 +34,7 @@ 
 #include "sysemu/sysemu.h"
 #include "hw/i386/ioapic.h"
 #include "qapi/visitor.h"
+#include "qemu/error-report.h"
 
 /*
  * I440FX chipset data sheet.
@@ -301,6 +302,10 @@  static void i440fx_pcihost_realize(DeviceState *dev, Error **errp)
 static void i440fx_realize(PCIDevice *dev, Error **errp)
 {
     dev->config[I440FX_SMRAM] = 0x02;
+
+    if (object_property_get_bool(qdev_get_machine(), "iommu", NULL)) {
+        error_report("warning: i440fx doesn't support emulated iommu");
+    }
 }
 
 PCIBus *i440fx_init(const char *host_type, const char *pci_type,