OpenBSD cvs log

created 2024-09-08T05:34:21Z
begin 2024-09-03T00:00:00Z
end 2024-09-04T00:00:00Z
path src/sys
commits 3

date 2024-09-03T00:23:05Z
author jsg
files src/sys/arch/amd64/conf/files.amd64 log diff annotate
src/sys/dev/ic/ccp.c log diff annotate
src/sys/dev/ic/ccpvar.h log diff annotate
src/sys/dev/ic/psp.c log diff annotate
src/sys/dev/ic/pspvar.h log diff annotate
src/sys/dev/pci/ccp_pci.c log diff annotate
message move psp functions to psp.c and remove the ifdefs
ok bluhm@ hshoexer@

date 2024-09-03T13:36:19Z
author dv
files src/sys/arch/amd64/amd64/vmm_machdep.c log diff annotate
message vmm(4)/vmx: avoid VPID leakage by allocating at vcpu init.

VPID allocation being dependent on the host and guest config
(consequently pushing it into the reset register handler) creates
a leak where previous VPIDs are not freed if the hypervisor program
resets a vcpu's registers.

Recent SVM related changes pulled the VPID (ASID in AMD world)
allocation up into vcpu initialization. This change does the same
for VMX and cleans up appropriate logic. Minor changes to keep SVM
and VMX styles in line with each other.

ok bluhm@

date 2024-09-03T17:19:53Z
author bluhm
files src/sys/arch/amd64/amd64/pmap.c log diff annotate
message For virtual addresses use fixed page frame without AMD SEV reduction.

When running as a SEV guest, page frame mask is calculated from the
CPUID provided "physical address bit reduction". The amd64 pmap
code uses the variable pg_frame instead of the defined PG_FRAME
0x000ffffffffff000.
There was one instance in pmap code where pg_frame was applied to
virtual address, not physical address. On some machines the address
bit reduction is rather large with six bits. So the calculated
pg_frame is 0x00003fffffe00000. However, on amd64 VM_MAX_ADDRESS
is defined as 0x00007fbfdfeff000. Masking a such large address
with pg_frame caused havoc. Therefore, when masking virtual
addresses, still use PG_FRAME.

from hshoexer@