Hi Marc,
On 2020/3/20 19:46, Marc Zyngier wrote:
Side note: it'd be good to know what the rules are for your own GICv4
implementations, so that we can at least make sure the current code
is safe.
As far as I know, there will be some clean and invalidate operations
when v4.0 VPENDBASER.Valid gets programmed.
Interesting. The ideal behaviour would be that the VPT is up-to-date and
the caches clean when Valid is cleared (and once Dirty flips to 0).
But not sure about behaviors
on VMAPP (unmap), it may be a totally v4.1 stuff. I'll have a talk with
our SOC team.
The VMAPP stuff is purely v4.1.
But how can the current code be unsafe? Is anywhere in the current code
will peek/poke the vpt (whilst GIC continues writing things into it)?
No. But on VM termination, the memory will be freed, and will eventually be
reallocated. If the GIC can still write to that memory after it has been
freed, you end-up with memory corruption... Which is why I'm curious of
what ensures that on your implementation.
Ah, I got it. I will check it with HiSilicon people next week and go
back to you if the code becomes unsafe due to the incomplete GICv4.
Thanks,
Zenghui
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm