qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 30/41] target/arm: Flush tlb for ASID changes in EL2&0 tra


From: Peter Maydell
Subject: Re: [PATCH v6 30/41] target/arm: Flush tlb for ASID changes in EL2&0 translation regime
Date: Mon, 3 Feb 2020 11:49:26 +0000

On Mon, 3 Feb 2020 at 11:36, Peter Maydell <address@hidden> wrote:
> Since we don't flush TLBs when HCR_EL2.E2H changes, I'm wondering
> about this sequence:
>
>  * initially HCR_EL2.E2H == 1 and the E2&0 TLBs are populated
>  * HCR_EL2.E2H is set to 0
>  * TTBR1_EL2 is written with a different ASID from step 1,
>    but we don't flush the TLBs because HCR_EL2.E2H is 0
>  * HCR_EL2.E2H is set to 1
>  * guest will pick up wrong-ASID TLB entries from step 1
>
> Does the architecture require that the guest did some TLB
> maintenance ops somewhere along the line to avoid this?
> I haven't tried to look for them, but given the different
> ASIDs I'm not sure it does...

...HCR_EL2.E2H documents that it "is permitted to be cached
in a TLB", which means that the guest has to do *some*
TLB maintenance ops if it changes it; unclear exactly which,
though...

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]