[Top][All Lists]

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

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

From: Valentine Sinitsyn
Subject: Re: [Qemu-devel] [V9 0/4] AMD IOMMU
Date: Wed, 4 May 2016 16:05:04 +0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

On 04.05.2016 16:02, David Kiarie wrote:

On 04/05/16 13:58, Valentine Sinitsyn wrote:
On 04.05.2016 15:51, David Kiarie wrote:
On Wed, May 4, 2016 at 10:39 AM, Valentine Sinitsyn
<address@hidden> wrote:
Hi everyone,

On 04.05.2016 12:05, David Kiarie wrote:

On Wed, May 4, 2016 at 9:12 AM, Jan Kiszka <address@hidden> wrote:

On 2016-04-30 00:42, David Kiarie wrote:

These series adds AMD IOMMU support to Qemu. It's currently in
the 9th

In this series I have (hopefully) addressed all the comments made
in the
previous version.
I have also tested and successfully passed-through PCI device 'ac97'
with more devices to be tested.

I've done some basic testing with a Jailhouse setup and found it
working. The ACPI table is now properly parsed and the DMA
remapping was
not disturbing the system after Jailhouse was activated.

However, it was also still not intervening after I started to corrupt
the configuration, removed DMA target properties from most of the
RAM or
dropped PCI devices.

Please also remember that unlisted devices go without translation.
To "mute"
the device, set V, TV, the DomainId, and zero everything else in the

This means you're invalidating DTEs ?

You are not dropping invalid remapping requests, are you?
According to
the logs, you are detecting them at least:

(amd-iommu)amd_iommu_get_dte: Device Table at 0x3b0d4000
(amd-iommu)amd_iommu_get_dte: Pte entry at 0x0 is invalid
(amd-iommu)amd_iommu_translate: devid: 00:02.0 gpa 0x32f39480 hpa

It's a bit hard to test right now if remapping is actually properly
working in all important cases if you do not reject invalid ones.

My understanding is that you should generate an IO_PAGE_FAULT event
and drop
the request. This doesn't apply to ATS, which is a bit trickier, but we
don't address ATS in this patch series anyway, do we?

My next question is what you mean by 'reject' and 'drop'. In I
encounter an invalid PTE/DTE I don't translate the gpa, it just become
the hpa which is what is happening above.
What happens if you just ignore the request? I mean, what if you don't
forward it to anywhere else in QEMU, just log this event and return?

Am guessing this should have something to do with pci abort which, last
time I tried, wasn't aborting at request. I will look at it again.
My initial answer was also "do target abort". But then I did a quick look over the spec, and found no such requirement. Please read relevant parts thoroughly yourself, and maybe experiment with "just ignore"/"explicitly abort" options.


reply via email to

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