On Tue, Jun 27, 2017 at 05:03:31PM +0800, Peter Xu wrote: > Patch 1: fixes a very rare PT path issue on iova value. It didn't > break anything since it's merely not touched (only if when IOMMU > enabled, then set one device to PT), but still better fix it. > > Patch 2-5: added "info iommu" hmp command, and implemented for VT-d. > Meanwhile, added some statistics for iotlb.
For patch 2,3,5 I should CC Dave. Sorry to have forgotten. > > Patch 6: introduce "x-iotlb-size" to tune iotlb size, or to turn it > off (e.g., when we want to measure how iotlb affects one payload). > > Patch 7: some refine on iotlb entry. > > Patch 8: implemented MRU list algorithm for iotlb. > > For the last patch, it's logically making more sense than the old > algo, however the performance is merely the same as before (as far as > I tested with simple netperf payloads, in either streaming, rr, > reverse, etc.) since in most normal cases we cannot really let iotlb > overflow especially when size is 1024 by default, e.g., guest kernel > driver will release buffer when after used, and unstrict > intel_iommu=on parameter will also send periodic global iotlb flush > which will reset the whole cache. If anyone has suggestion on specific > workload, please shoot. Anyway, I'm posting this out for review to see > any possible comments/suggestions. > > Thanks, > > Peter Xu (8): > intel_iommu: fix VTD_PAGE_MASK > hmp: add info iommu > intel_iommu: support "info iommu" > intel_iommu: add iotlb/context cache statistics > intel_iommu: hmp: allow "-c" for "info iommu" > intel_iommu: let iotlb size tunable > intel_iommu: use access_flags for iotlb > intel_iommu: implement mru list for iotlb > > hmp-commands-info.hx | 14 ++++ > hmp.c | 6 ++ > hmp.h | 1 + > hw/i386/intel_iommu.c | 169 > +++++++++++++++++++++++++++++++---------- > hw/i386/intel_iommu_internal.h | 11 +-- > hw/i386/trace-events | 1 - > hw/i386/x86-iommu.c | 17 +++++ > include/hw/i386/intel_iommu.h | 20 ++++- > include/hw/i386/x86-iommu.h | 5 ++ > include/hw/iommu.h | 9 +++ > stubs/Makefile.objs | 1 + > stubs/iommu.c | 9 +++ > 12 files changed, 209 insertions(+), 54 deletions(-) > create mode 100644 include/hw/iommu.h > create mode 100644 stubs/iommu.c > > -- > 2.7.4 > > -- Peter Xu