qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] intel-iommu: send PSI always when notify_unmap


From: Jason Wang
Subject: Re: [Qemu-devel] [PATCH] intel-iommu: send PSI always when notify_unmap set
Date: Fri, 20 Apr 2018 16:29:13 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0



On 2018年04月20日 13:11, Peter Xu wrote:
On Fri, Apr 20, 2018 at 12:57:13PM +0800, Jason Wang wrote:
On 2018年04月18日 12:51, Peter Xu wrote:
During IOVA page table walk, there is a special case when:

- notify_unmap is set, meanwhile
- entry is invalid

In the past, we skip the entry always.  This is not correct.  We should
send UNMAP notification to registered notifiers in this case.  Otherwise
some stall pages will still be mapped in the host even if L1 guest
You mean 'stale' here?
Ah, yes.

unmapped them already.
It looks like some IOTLB invalidation were missed? If not, the page should
be unmaped during invalidation.
I'm afraid it's not the same problem, and that's why I think we need
two fixes.

Even if the guest sends the correct invalidations, it's still possible
that QEMU skips the PSI with current code.

Without this patch, nested device assignment to L2 guests might dump
some errors like:

qemu-system-x86_64: VFIO_MAP_DMA: -17
qemu-system-x86_64: vfio_dma_map(0x557305420c30, 0xad000, 0x1000,
                      0x7f89a920d000) = -17 (File exists)

To fix this, we need to apply this patch to L1 QEMU (L2 QEMU is not
affected by this problem).

Signed-off-by: Peter Xu<address@hidden>
---

To test nested assignment, one also needs to apply below patchset:
https://lkml.org/lkml/2018/4/18/5
Have a quick glance at it, looks like there's no need for this patch is we
had that kernel patch applied.
Even if guest kernel applies above fix, QEMU might still drop some of
the PSIs.  Above error messages were captured with kernel patches
applied already (otherwise we see no error messages, we directly miss
them from guest).

Thanks,

I see so this actually try to trigger unmap notifier for non last level slpte.

Thanks




reply via email to

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