hw/arm/smmuv3: Cache/invalidate config data
commit32cfd7f39e0811036efd3a7a12d0f975ef57fdb3
authorEric Auger <eric.auger@redhat.com>
Tue, 26 Jun 2018 16:50:42 +0000 (26 17:50 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 26 Jun 2018 16:50:42 +0000 (26 17:50 +0100)
tree45d09d510792f77bcc094f4749675c3ac7cfba33
parent9122bea9862edc0e665c796f79d99319b6638929
hw/arm/smmuv3: Cache/invalidate config data

Let's cache config data to avoid fetching and parsing STE/CD
structures on each translation. We invalidate them on data structure
invalidation commands.

We put in place a per-smmu mutex to protect the config cache. This
will be useful too to protect the IOTLB cache. The caches can be
accessed without BQL, ie. in IO dataplane. The same kind of mutex was
put in place in the intel viommu.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1529653501-15358-3-git-send-email-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/smmu-common.c
hw/arm/smmuv3.c
hw/arm/trace-events
include/hw/arm/smmu-common.h
include/hw/arm/smmuv3.h