aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/bhyve/spinup_ap.c
diff options
context:
space:
mode:
authorNeel Natu <neel@FreeBSD.org>2013-10-16 18:20:27 +0000
committerNeel Natu <neel@FreeBSD.org>2013-10-16 18:20:27 +0000
commit49cc03da31d268e60807527936612bb5f43e03d0 (patch)
tree485e8ff412606d07ec06cf7fe2ff393c3985ba76 /usr.sbin/bhyve/spinup_ap.c
parent86ccd3e00f142985fe1198c697a6f07f9f3d2349 (diff)
downloadsrc-49cc03da31d268e60807527936612bb5f43e03d0.tar.gz
src-49cc03da31d268e60807527936612bb5f43e03d0.zip
Add a new capability, VM_CAP_ENABLE_INVPCID, that can be enabled to expose
'invpcid' instruction to the guest. Currently bhyve will try to enable this capability unconditionally if it is available. Consolidate code in bhyve to set the capabilities so it is no longer duplicated in BSP and AP bringup. Add a sysctl 'vm.pmap.invpcid_works' to display whether the 'invpcid' instruction is available. Reviewed by: grehan MFC after: 3 days
Notes
Notes: svn path=/head/; revision=256645
Diffstat (limited to 'usr.sbin/bhyve/spinup_ap.c')
-rw-r--r--usr.sbin/bhyve/spinup_ap.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/usr.sbin/bhyve/spinup_ap.c b/usr.sbin/bhyve/spinup_ap.c
index 2632aed0e5f9..729108ae1ee6 100644
--- a/usr.sbin/bhyve/spinup_ap.c
+++ b/usr.sbin/bhyve/spinup_ap.c
@@ -85,22 +85,7 @@ spinup_ap(struct vmctx *ctx, int vcpu, int newcpu, uint64_t rip)
error = vcpu_reset(ctx, newcpu);
assert(error == 0);
- /* Set up capabilities */
- if (fbsdrun_vmexit_on_hlt()) {
- error = vm_set_capability(ctx, newcpu, VM_CAP_HALT_EXIT, 1);
- assert(error == 0);
- }
-
- if (fbsdrun_vmexit_on_pause()) {
- error = vm_set_capability(ctx, newcpu, VM_CAP_PAUSE_EXIT, 1);
- assert(error == 0);
- }
-
- if (fbsdrun_disable_x2apic())
- error = vm_set_x2apic_state(ctx, newcpu, X2APIC_DISABLED);
- else
- error = vm_set_x2apic_state(ctx, newcpu, X2APIC_ENABLED);
- assert(error == 0);
+ fbsdrun_set_capabilities(ctx, newcpu);
/*
* Enable the 'unrestricted guest' mode for 'newcpu'.