]> git.proxmox.com Git - mirror_qemu.git/commit
intel_iommu: large page support
authorJason Wang <jasowang@redhat.com>
Thu, 14 Jan 2016 05:47:24 +0000 (00:47 -0500)
committerMichael S. Tsirkin <mst@redhat.com>
Sat, 6 Feb 2016 18:44:10 +0000 (20:44 +0200)
commitd66b969b0d9c8eefdcbff4b48535b0fe1501d139
tree823dc2cead5bf7ca47718fd189875d8101b042e0
parentadcb4ee660cf579f003e9d4afd61b608259091c6
intel_iommu: large page support

Current intel_iommu only supports 4K page which may not be sufficient
to cover guest working set. This patch tries to enable 2M and 1G mapping
for intel_iommu. This is also useful for future device IOTLB
implementation to have a better hit rate.

Major work is adding a page mask field on IOTLB entry to make it
support large page. And also use the slpte level as key to do IOTLB
lookup. MAMV was increased to 18 to support direct invalidation for 1G
mapping.

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/intel_iommu.c
hw/i386/intel_iommu_internal.h
include/hw/i386/intel_iommu.h