qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [V9 0/4] AMD IOMMU


From: David Kiarie
Subject: Re: [Qemu-devel] [V9 0/4] AMD IOMMU
Date: Mon, 2 May 2016 11:33:05 +0300

On Sun, May 1, 2016 at 5:00 PM, Michael S. Tsirkin <address@hidden> wrote:
> On Sun, May 01, 2016 at 04:47:44PM +0300, Michael S. Tsirkin wrote:
>> On Sat, Apr 30, 2016 at 01:42:39AM +0300, David Kiarie wrote:
>> > These series adds AMD IOMMU support to Qemu. It's currently in the 9th 
>> > version.
>> >
>> > In this series I have (hopefully) addressed all the comments made in the 
>> > previous version.
>>
>> changelog?
>>
>> > I have also tested and successfully passed-through PCI device 'ac97' with 
>> > more devices to be tested.
>>
>>
>> A fundamental problem with AMD IOMMUs is that the VMM must write-protect
>> guest I/O page tables from the guest in order to intercept all guest
>> updates and propagate the updates to the shadow I/O page tables.
>>
>> AMD manual says as much.
>
> Actually while it says so, it's wrong.
> There's an NPcache flag which makes guest to invalidations
> for invalid to valid transitions.
>
>> Until this is implemented, I think device assignment must be disabled
>> when AMD IOMMU is in use.
>
> So I take this back. I would, however, like to see how this
> interacts with Aviv's patches enabling VFIO support for IOMMU.
>
The initial consensus was to deny VFIO when user requests for IOMMU
and I did actually look at that but I can't get an obvious way to
disable, or even tell that a user requested for a device when they do
so via '-device'. The only way to disable VFIO was parsing the command
line argument which seemed very ugly.

Other than that, I would prefer not to add more features to this
patchset but I will still be working on IOMMU for the next few months
so I'll probably look at that.

>>
>> >
>> > David Kiarie (4):
>> >   hw/i386: Introduce AMD IOMMU
>> >   hw/i386: ACPI table for AMD IOMMU
>> >   hw/core: Add AMD IOMMU to machine properties
>> >   hw/pci-host: Emulate AMD IOMMU
>> >
>> >  hw/acpi/aml-build.c           |    2 +-
>> >  hw/acpi/core.c                |   13 -
>> >  hw/core/machine.c             |   33 +-
>> >  hw/i386/Makefile.objs         |    1 +
>> >  hw/i386/acpi-build.c          |   93 ++-
>> >  hw/i386/amd_iommu.c           | 1426 
>> > +++++++++++++++++++++++++++++++++++++++++
>> >  hw/i386/amd_iommu.h           |  398 ++++++++++++
>> >  hw/pci-host/q35.c             |   25 +-
>> >  include/hw/acpi/acpi-defs.h   |   14 +
>> >  include/hw/acpi/acpi.h        |   16 +
>> >  include/hw/acpi/aml-build.h   |    1 +
>> >  include/hw/boards.h           |    7 +
>> >  include/hw/i386/intel_iommu.h |    1 +
>> >  include/hw/pci/pci.h          |    2 +
>> >  qemu-options.hx               |    7 +-
>> >  util/qemu-config.c            |    8 +-
>> >  16 files changed, 2012 insertions(+), 35 deletions(-)
>> >  create mode 100644 hw/i386/amd_iommu.c
>> >  create mode 100644 hw/i386/amd_iommu.h
>> >
>> > --
>> > 2.1.4



reply via email to

[Prev in Thread] Current Thread [Next in Thread]