From 72cd22163f9c7fdfafa645b3b6826b185bbbdf76 Mon Sep 17 00:00:00 2001 From: Robin Luk Date: Fri, 26 Mar 2021 16:04:28 +0800 Subject: arm64 ring0: don't use inner-sharable to invalidate tlb It is enough to invalidate the tlb of local vcpu in switch(). TLBI with inner-sharable will invalidate the tlb in other vcpu. Arm64 hardware supports at least 256 pcid, so I think it's ok to set the length of pcid pool to 128. Signed-off-by: Robin Luk --- pkg/ring0/kernel_arm64.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pkg/ring0/kernel_arm64.go') diff --git a/pkg/ring0/kernel_arm64.go b/pkg/ring0/kernel_arm64.go index 7975e5f92..0496c40b4 100644 --- a/pkg/ring0/kernel_arm64.go +++ b/pkg/ring0/kernel_arm64.go @@ -65,7 +65,7 @@ func (c *CPU) SwitchToUser(switchOpts SwitchOpts) (vector Vector) { storeEl0Fpstate(switchOpts.FloatingPointState.BytePointer()) if switchOpts.Flush { - FlushTlbByASID(uintptr(switchOpts.UserASID)) + LocalFlushTlbByASID(uintptr(switchOpts.UserASID)) } regs := switchOpts.Registers -- cgit v1.2.3