Page MenuHomeFreeBSD

riscv: mark kernel page table entries as global
Needs ReviewPublic

Authored by mhorne on Thu, Aug 20, 3:01 PM.
Tags
None
Referenced Files
F167491557: D59049.diff
Sat, Aug 22, 6:01 AM
F167480620: D59049.id.diff
Sat, Aug 22, 3:03 AM
Unknown Object (File)
Thu, Aug 20, 10:55 PM
Unknown Object (File)
Thu, Aug 20, 8:47 PM
Unknown Object (File)
Thu, Aug 20, 8:47 PM
Subscribers

Details

Reviewers
markj
bnovkov
jrtc27
br
Group Reviewers
riscv
Summary

The G bit in a RISC-V PTE designates a "global" mapping; i.e. a virtual
address mapping that is valid across all contexts. Applying this bit to
kernel mappings offers a small performance benefit as it allows these
translations to be preserved during a normal TLB flush, for example
during a context switch.

This bit is applied to all L1 kernel PTEs, and only these. The spec
declares that the global bit can be set at any level, and is inherited
by all children. Applying it at this level yields the smallest and
simplest diff.

Use of the feature is toggleable via hw.pmap.global_bit_enable tunable.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 75879
Build 72762: arc lint + arc unit