From: Bandan Das <bsd@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH v3 2/2] i440fx: print an error message if user tries to enable iommu
Date: Tue, 17 Nov 2015 18:39:55 -0500 [thread overview]
Message-ID: <jpgmvucgppw.fsf@linux.bootlegged.copy> (raw)
In-Reply-To: <87y4dwpu2a.fsf@blackfin.pond.sub.org> (Markus Armbruster's message of "Tue, 17 Nov 2015 15:41:17 +0100")
Markus Armbruster <armbru@redhat.com> writes:
> Bandan Das <bsd@redhat.com> writes:
>
>> 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>
>> ---
>> 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,
>
> Hmm.
>
> If I understand things correctly, we add property "iommu" to *any*
> machine, whether it supports it or not (see machine_initfn() in
> hw/core/machine.c).
>
> Most machines don't support it. You add a warning to one of them.
Yeah, I guess the only one that does is q35. Although, iommu should
be theoretically applicable to all machine types, a generic "iommu"
property common to all types makes little sense to me.
One way is to remove the common property and make "iommu" a property of
Q35 only (through a custom instance_init).
Other is to simply make the property common to pc by moving it to pc.c
But that still doesn't solve the problem since i440fx cannot emulate it yet.
> Why to that one and not the others?
>
> Shouldn't we add properties only to machines where they make sense?
> Adding them indiscrimiately defeats QOM introspection.
For now, maybe we can just skip this patch. I will post another generic solution.
It's just weird that qemu runs happily without complaining when iommu is
specified with an unsupported type.
next prev parent reply other threads:[~2015-11-17 23:40 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-13 6:55 [Qemu-devel] [PATCH v3 0/2] Minor cleanups when parsing the "iommu" option Bandan Das
2015-11-13 6:55 ` [Qemu-devel] [PATCH v3 1/2] q35: Check propery to determine if iommu is set Bandan Das
2015-11-17 14:32 ` Markus Armbruster
2015-11-13 6:55 ` [Qemu-devel] [PATCH v3 2/2] i440fx: print an error message if user tries to enable iommu Bandan Das
2015-11-17 14:41 ` Markus Armbruster
2015-11-17 23:39 ` Bandan Das [this message]
2015-11-18 8:26 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jpgmvucgppw.fsf@linux.bootlegged.copy \
--to=bsd@redhat.com \
--cc=armbru@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.