Index: sys/amd64/vmm/vmm_host.c =================================================================== --- sys/amd64/vmm/vmm_host.c +++ sys/amd64/vmm/vmm_host.c @@ -61,7 +61,15 @@ */ vmm_host_cr0 = rcr0() | CR0_TS; - vmm_host_cr4 = rcr4(); + /* + * On non-PCID or PCID but without INVPCID support machines, + * we flush global TLB entries by temporary clearing the + * CR4.PGE bit, see invltlb_glob(). If preemption occurs at + * wrong time, cached vmm_host_cr4 might store the value with + * CR4.PGE cleared. Since FreeBSD requires support for PG_G + * on amd64, just set it unconditionally. + */ + vmm_host_cr4 = rcr4() | CR4_PGE; /* * Only permit a guest to use XSAVE if the host is using