Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F103279484
D15138.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
749 B
Referenced Files
None
Subscribers
None
D15138.diff
View Options
Index: head/sys/amd64/vmm/vmm_host.c
===================================================================
--- head/sys/amd64/vmm/vmm_host.c
+++ head/sys/amd64/vmm/vmm_host.c
@@ -61,7 +61,16 @@
*/
vmm_host_cr0 = rcr0() | CR0_TS;
- vmm_host_cr4 = rcr4();
+ /*
+ * On non-PCID or PCID but without INVPCID support machines,
+ * we flush kernel i.e. global TLB entries, by temporary
+ * clearing the CR4.PGE bit, see invltlb_glob(). If
+ * preemption occurs at the 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
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Nov 24, 12:19 AM (19 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14811828
Default Alt Text
D15138.diff (749 B)
Attached To
Mode
D15138: Correct undesirable interaction between caching of %cr4 in bhyve and invltlb_glob().
Attached
Detach File
Event Timeline
Log In to Comment