On 2020-05-21 15:17, Will Deacon wrote:
[+Marc]
On Tue, May 19, 2020 at 07:54:51PM +0200, Jean-Philippe Brucker wrote:
The SMMUv3 can handle invalidation targeted at TLB entries with shared
ASIDs. If the implementation supports broadcast TLB maintenance,
enable it
and keep track of it in a feature bit. The SMMU will then be affected
by
inner-shareable TLB invalidations from other agents.
A major side-effect of this change is that stage-2 translation
contexts
are now affected by all invalidations by VMID. VMIDs are all shared
and
the only ways to prevent over-invalidation, since the stage-2 page
tables
are not shared between CPU and SMMU, are to either disable BTM or
allocate
different VMIDs. This patch does not address the problem.
This sounds like a potential performance issue, particularly as we
expose
stage-2 contexts via VFIO directly. Maybe we could reserve some portion
of
VMID space for the SMMU? Marc, what do you reckon?
Certainly doable when we have 16bits VMIDs. With smaller VMID spaces
(like on
v8.0), this is a bit more difficult (we do have pretty large v8.0
systems
around). How many VMID bits are we talking about?
M.
--
Jazz is not dead. It just smells funny...