From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33912) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c4r3d-00022N-KV for qemu-devel@nongnu.org; Thu, 10 Nov 2016 10:14:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c4r3a-0002RL-Ft for qemu-devel@nongnu.org; Thu, 10 Nov 2016 10:14:29 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33616) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c4r3a-0002Qu-84 for qemu-devel@nongnu.org; Thu, 10 Nov 2016 10:14:26 -0500 Date: Thu, 10 Nov 2016 17:14:24 +0200 From: "Michael S. Tsirkin" Message-ID: <20161110171338-mutt-send-email-mst@kernel.org> References: <1478603064-32562-1-git-send-email-bd.aviv@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1478603064-32562-1-git-send-email-bd.aviv@gmail.com> Subject: Re: [Qemu-devel] [PATCH v6 0/3] IOMMU: intel_iommu support map and unmap notifications List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Aviv B.D" Cc: qemu-devel@nongnu.org, Alex Williamson , Peter Xu , Jan Kiszka On Tue, Nov 08, 2016 at 01:04:21PM +0200, Aviv B.D wrote: > From: "Aviv Ben-David" > > * Advertize Cache Mode capability in iommu cap register. > This capability is controlled by "cache-mode" property of intel-iommu device. > To enable this option call QEMU with "-device intel-iommu,cache-mode=true". > > * On page cache invalidation in intel vIOMMU, check if the domain belong to > registered notifier, and notify accordingly. This looks sane I think. Alex, care to comment? Merging will have to wait until after the release. Pls remember to re-test and re-ping then. > Currently this patch still doesn't enabling VFIO devices support with vIOMMU > present. Current problems: > * vfio_iommu_map_notify is not aware about memory range belong to specific > VFIOGuestIOMMU. > * memory_region_iommu_replay hangs QEMU on start up while it itterate over > 64bit address space. Commenting out the call to this function enables > workable VFIO device while vIOMMU present. > * vfio_iommu_map_notify should check if address space range is suitable for > current notifier. > > Changes from v1 to v2: > * remove assumption that the cache do not clears > * fix lockup on high load. > > Changes from v2 to v3: > * remove debug leftovers > * split to sepearate commits > * change is_write to flags in vtd_do_iommu_translate, add IOMMU_NO_FAIL > to suppress error propagating to guest. > > Changes from v3 to v4: > * Add property to intel_iommu device to control the CM capability, > default to False. > * Use s->iommu_ops.notify_flag_changed to register notifiers. > > Changes from v4 to v4 RESEND: > * Fix codding style pointed by checkpatch.pl script. > > Changes from v4 to v5: > * Reduce the number of changes in patch 2 and make flags real bitfield. > * Revert deleted debug prints. > * Fix memory leak in patch 3. > > Changes from v5 to v6: > * fix prototype of iommu_translate function for more IOMMU types. > * VFIO will be notified only on the difference, without unmap > before change to maps. > > Aviv Ben-David (3): > IOMMU: add option to enable VTD_CAP_CM to vIOMMU capility exposoed to > guest > IOMMU: change iommu_op->translate's is_write to flags, add support to > NO_FAIL flag mode > IOMMU: enable intel_iommu map and unmap notifiers > > exec.c | 3 +- > hw/alpha/typhoon.c | 2 +- > hw/i386/amd_iommu.c | 4 +- > hw/i386/intel_iommu.c | 160 +++++++++++++++++++++++++++++++++-------- > hw/i386/intel_iommu_internal.h | 3 + > hw/pci-host/apb.c | 2 +- > hw/ppc/spapr_iommu.c | 2 +- > hw/s390x/s390-pci-bus.c | 2 +- > include/exec/memory.h | 6 +- > include/hw/i386/intel_iommu.h | 11 +++ > memory.c | 3 +- > 11 files changed, 160 insertions(+), 38 deletions(-) > > -- > 1.9.1