Page MenuHomeFreeBSD

powerpc64: fix radix on pseries TLB invalidation
ClosedPublic

Authored by luporl on Sep 1 2021, 6:20 PM.
Referenced Files
F115640785: D31775.id94882.diff
Sat, Apr 26, 10:23 AM
Unknown Object (File)
Fri, Apr 25, 2:23 PM
Unknown Object (File)
Wed, Apr 16, 5:39 PM
Unknown Object (File)
Tue, Apr 15, 10:53 PM
Unknown Object (File)
Mon, Apr 7, 4:42 AM
Unknown Object (File)
Mar 23 2025, 12:02 PM
Unknown Object (File)
Feb 25 2025, 8:40 PM
Unknown Object (File)
Feb 22 2025, 7:16 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
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 41413
Build 38302: arc lint + arc unit

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