On AMD SVM hosts with flush-by-asid, svm_pmap_activate() handles an eptgen-only change with TLB_FLUSH_GUEST on the same ASID -- insufficient to evict cached NPT-walk state for a GPA with no prior translation of the faulting access type. Guest takes the same #NPF forever (e.g. bhyve UEFI bootrom never gets past the reset vector). Force a new ASID allocation here too, same as the existing asidgen-mismatch path. No change on hosts without flush-by-asid, no effect on Intel EPT. Costs an extra ASID (and possibly a full flush on rollover) per eptgen bump, not just for this case -- not benchmarked.
Details
Details
- Reviewers
afscoelho_gmail.com anascime_amd.com davichazbh_gmail.com mhorne kib ali_mashtizadeh.com emaste bnovkov - Group Reviewers
bhyve pmc
- Bootrom-only repro: unpatched hangs at rip=0xfff0, NPF exits unbounded. Patched: advances, NPF exits stop climbing.
- Full guest boot (official snapshot image, bhyve+UEFI): reaches multiuser, network up. Unpatched never leaves reset vector.
- Steady-state NPF exits flat post-boot -- no residual churn.
- Confirmed no interaction with the Intel EPT path.
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped