Page MenuHomeFreeBSD

powerpc64: fix radix on pseries TLB invalidation
ClosedPublic

Authored by luporl on Sep 1 2021, 6:20 PM.
Referenced Files
Unknown Object (File)
Thu, Nov 7, 3:31 AM
Unknown Object (File)
Fri, Oct 25, 9:03 AM
Unknown Object (File)
Sun, Oct 20, 12:22 AM
Unknown Object (File)
Sat, Oct 19, 8:10 PM
Unknown Object (File)
Fri, Oct 18, 8:54 AM
Unknown Object (File)
Wed, Oct 16, 5:36 AM
Unknown Object (File)
Wed, Oct 16, 5:36 AM
Unknown Object (File)
Tue, Oct 15, 12:47 PM

Details

Summary

When running in a virtualized environment, TLB invalidations can only
be performed on process scope, as only the hypervisor is allowed to
invalidate a global scope, or else a Program Interrupt is triggered.

Since we are here, also make sure that the register process table
hypercall returns success.

Test Plan

Tested on QEMU with KVM enabled, on a POWER9 machine.
(currently depends on a patched loader version to work, to call CAS and select Radix with GTSE)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

luporl requested review of this revision.Sep 1 2021, 6:20 PM

Glad to see you solve the last piece of this puzzle!

sys/powerpc/aim/mmu_radix.c
761–765

Can TLB_INVAL_SCOPE_* be renumbered to 2/3 instead of 0/1? That would avoid needing to pass the scope as extra.

  • Address reviewer's comments
This revision is now accepted and ready to land.Sep 6 2021, 6:57 PM