From: Lan Tianyu <tianyu.lan@intel.com>
To: Peter Xu <peterx@redhat.com>
Cc: "Aviv B.D" <bd.aviv@gmail.com>,
qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
Alex Williamson <alex.williamson@redhat.com>,
Jason Wang <jasowang@redhat.com>,
"Liu, Yi L" <yi.l.liu@intel.com>,
"Wu, Fengguang" <fengguang.wu@intel.com>
Subject: Re: [Qemu-devel] [PATCH v7 0/5] IOMMU: intel_iommu support map and unmap notifications
Date: Wed, 7 Dec 2016 14:09:16 +0800 [thread overview]
Message-ID: <1b348745-3135-e28c-88f3-f45ed1855de3@intel.com> (raw)
In-Reply-To: <20161206105914.GB3469@pxdev.xzpeter.org>
On 2016年12月06日 18:59, Peter Xu wrote:
> On Tue, Dec 06, 2016 at 04:27:39PM +0800, Lan Tianyu wrote:
>
> [...]
>
>>>
>>>> User space driver(E.G DPDK) also can enable/disable
>>>> IOVA for device dynamically.
>>>
>>> Could you provide more detailed (or any pointer) on how to do that? I
>>> did try to find it myself, I see an VFIO_IOMMU_ENABLE ioctl, but looks
>>> like it is for ppc only.
>>
>> No, I just give an example that user space may do that but no more
>> research. But since Qemu already can enable device's IOVA, other user
>> application also should can do that with the same VFIO interface, right?
>
> AFAIU we can't do that at least on x86. We can use vfio interface to
> bind group into container, but we should not be able to dynamically
> disable IOMMU protection. IIUC That needs to taint the kernel.
>
> The only way I know is that we probe vfio-pci with no-iommu mode, in
> that case, we disabled IOMMU, but we can never dynamically enable it
> as well.
>
> Please correct me if I am wrong.
Actually, disabling device's IOVA doesn't require to disable kernel
global DMA protect and just clear device's VTD context entry in the
context table. Go though IOMMU and VFIO code, find this will happen when
call VFIO_GROUP_UNSET_CONTAINER ioctl and it will be called when destroy
VM or unplug assigned device in Qemu. Please help to double check.
Call trace:
__vfio_group_unset_container()
vfio_iommu_type1_detach_group()
iommu_detach_group()
dmar_remove_one_dev_info()
__dmar_remove_one_dev_info()
domain_context_clear()
The legacy KVM device assign code also will call iommu_detach_device()
when deassign a device.
>From device emulation view, we need to make sure correct register
emulation regardless of guest behavior.
>
> Thanks,
>
> -- peterx
>
--
Best regards
Tianyu Lan
next prev parent reply other threads:[~2016-12-07 6:12 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-28 15:51 [Qemu-devel] [PATCH v7 0/5] IOMMU: intel_iommu support map and unmap notifications Aviv B.D
2016-11-28 15:51 ` [Qemu-devel] [PATCH v7 1/5] IOMMU: add option to enable VTD_CAP_CM to vIOMMU capility exposoed to guest Aviv B.D
2016-12-01 4:25 ` Tian, Kevin
2016-11-28 15:51 ` [Qemu-devel] [PATCH v7 2/5] IOMMU: change iommu_op->translate's is_write to flags, add support to NO_FAIL flag mode Aviv B.D
2016-11-28 15:51 ` [Qemu-devel] [PATCH v7 3/5] IOMMU: enable intel_iommu map and unmap notifiers Aviv B.D
2016-11-29 3:23 ` 蓝天宇
2016-11-29 7:57 ` Aviv B.D.
2016-11-28 15:51 ` [Qemu-devel] [PATCH v7 4/5] IOMMU: add specific replay function with default implemenation Aviv B.D
2016-11-28 15:51 ` [Qemu-devel] [PATCH v7 5/5] IOMMU: add specific null implementation of iommu_replay to intel_iommu Aviv B.D
2016-11-28 16:36 ` Alex Williamson
2016-11-28 18:57 ` Aviv B.D.
2016-11-30 9:23 ` [Qemu-devel] [PATCH v7 0/5] IOMMU: intel_iommu support map and unmap notifications Peter Xu
2016-12-01 4:21 ` Tian, Kevin
2016-12-01 8:13 ` Lan Tianyu
2016-12-02 5:59 ` Peter Xu
2016-12-02 6:23 ` Tian, Kevin
2016-12-02 6:58 ` Peter Xu
2016-12-02 17:26 ` Alex Williamson
2016-12-01 8:27 ` Lan Tianyu
2016-12-02 6:08 ` Peter Xu
2016-12-02 17:30 ` Alex Williamson
2016-12-06 2:03 ` Lan, Tianyu
2016-12-06 2:18 ` Peter Xu
2016-12-01 15:42 ` Alex Williamson
2016-12-02 6:17 ` Peter Xu
2016-12-01 3:26 ` Tian, Kevin
2016-12-01 6:44 ` Lan Tianyu
2016-12-02 6:52 ` Peter Xu
2016-12-06 6:30 ` Lan Tianyu
2016-12-06 6:51 ` Peter Xu
2016-12-06 7:06 ` Lan Tianyu
2016-12-06 7:22 ` Peter Xu
2016-12-06 8:27 ` Lan Tianyu
2016-12-06 10:59 ` Peter Xu
2016-12-06 16:58 ` Alex Williamson
2016-12-07 6:09 ` Lan Tianyu [this message]
2016-12-07 6:43 ` Peter Xu
2016-12-07 14:04 ` Lan Tianyu
2016-12-08 2:39 ` Peter Xu
2016-12-08 5:41 ` Lan Tianyu
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=1b348745-3135-e28c-88f3-f45ed1855de3@intel.com \
--to=tianyu.lan@intel.com \
--cc=alex.williamson@redhat.com \
--cc=bd.aviv@gmail.com \
--cc=fengguang.wu@intel.com \
--cc=jan.kiszka@siemens.com \
--cc=jasowang@redhat.com \
--cc=mst@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yi.l.liu@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).