Page MenuHomeFreeBSD

arm64: Move the FEAT_VMID16 detection to vmm
Needs ReviewPublic

Authored by andrew on Thu, Mar 19, 5:05 PM.

Details

Reviewers
jrtc27
manu
Group Reviewers
arm64
Summary

Move the logic to detect when the system supports a 16-bit VMID to
vmm.ko. This allows us to correctly support them by setting the
VTCR_EL2.VS field to enable the use of all 16-bits of VMID space.

Reported by: jrtc27
Sponsored by: Arm Ltd

Diff Detail

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

Event Timeline

jrtc27 requested changes to this revision.EditedThu, Mar 19, 5:17 PM

Don't we need to do a broadcast invalidate on fini (or remember the allocated VMIDs from the current epoch, or defer it to re-init), otherwise we'll reallocate the same VMIDs if we kldload and start VMs? Also, don't leave the epoch as is whilst clearing the bitmap and next, that doesn't make sense, if the epoch is staying then so does the allocated set, and if it's being reset then so does the allocated set (along with invalidate).

I would like to just land my bug fix without having it tangled up in getting kldunload+kldload to work with this kind of scheme.

This revision now requires changes to proceed.Thu, Mar 19, 5:17 PM
  • Zero the set in pmap_fini_asids
  • Add a missing tlbi