Messages in this thread | | | Date | Wed, 8 Apr 2020 10:45:58 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 4/4] x86,module: Detect CRn and DRn manipulation |
| |
On Wed, Apr 08, 2020 at 12:12:14AM +0200, Paolo Bonzini wrote: > On 07/04/20 23:27, Peter Zijlstra wrote: > > On Tue, Apr 07, 2020 at 02:22:11PM -0700, Nadav Amit wrote: > >> Anyhow, I do not think it is the only use-case which is not covered by your > >> patches (even considering CRs/DRs alone). For example, there is no kernel > >> function to turn on CR4.VMXE, which is required to run hypervisors on x86. > > That needs an exported function; there is no way we'll allow random > > writes to CR4, there's too much dodgy stuff in there. > > native_write_cr4 and pv_ops (through which you can do write_cr4) are > both exported, and so is cpu_tlbstate which is used by __cr4_set_bits > and friends. Am I missing something glaringly obvious?
cpu_tlbstate is going away, but yes, native_write_cr4() is the right interface to use, or rather the cr4_{set,clear,toggle}_bits() things are.
That gives us control over which CR4 bits are available, and, a possible means of arbitrating that VMX bit.
| |