Hi Mark, On 06/08/2019 16:57, Mark Rutland wrote: > For VPIPT I-caches, we need I-cache maintenance on VMID rollover to > avoid an ABA problem. Consider a single vCPU VM, with a pinned stage-2, > running with an idmap VA->IPA and idmap IPA->PA. If we don't do > maintenance on rollover: > > // VMID A > Writes insn X to PA 0xF > Invalidates PA 0xF (for VMID A) > > I$ contains [{A,F}->X] > > [VMID ROLLOVER] > > // VMID B > Writes insn Y to PA 0xF > Invalidates PA 0xF (for VMID B) > > I$ contains [{A,F}->X, {B,F}->Y] > > [VMID ROLLOVER] > > // VMID A > I$ contains [{A,F}->X, {B,F}->Y] > > Unexpectedly hits stale I$ line {A,F}->X. > > However, for PIPT and VIPT I-caches, the VMID doesn't affect lookup or > constrain maintenance. Given the VMID doesn't affect PIPT and VIPT > I-caches, and given VMID rollover is independent of changes to stage-2 > mappings, I-cache maintenance cannot be necessary on VMID rollover for > PIPT or VIPT I-caches. > > This patch removes the maintenance on rollover for VIPT and PIPT > I-caches. At the same time, the unnecessary colons are removed from the > asm statement to make it more legible. Makes sense! Reviewed-by: James Morse <james.morse@xxxxxxx> Thanks, James _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm