Page MenuHomeFreeBSD

powerpc64: fix radix on pseries TLB invalidation
ClosedPublic

Authored by luporl on Sep 1 2021, 6:20 PM.
Referenced Files
F109337835: D31775.id94882.diff
Mon, Feb 3, 6:29 PM
Unknown Object (File)
Sun, Jan 26, 7:31 AM
Unknown Object (File)
Sun, Jan 26, 5:44 AM
Unknown Object (File)
Sat, Jan 25, 11:18 PM
Unknown Object (File)
Sat, Jan 25, 7:31 PM
Unknown Object (File)
Fri, Jan 24, 3:24 AM
Unknown Object (File)
Thu, Jan 23, 6:56 PM
Unknown Object (File)
Sat, Jan 18, 10:05 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