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)
Feb 7 2024, 4:16 PM
Unknown Object (File)
Jan 25 2024, 7:31 AM
Unknown Object (File)
Jan 6 2024, 5:56 AM
Unknown Object (File)
Dec 23 2023, 2:28 AM
Unknown Object (File)
Dec 12 2023, 6:59 AM
Unknown Object (File)
Nov 28 2023, 5:02 PM
Unknown Object (File)
Nov 23 2023, 12:51 AM
Unknown Object (File)
Nov 22 2023, 11:03 AM

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