Add more VMCB fields. Also remove debugging code I mistakenly committed
in the previous revision. No functional change.
This commit is contained in:
parent
3e93b12a17
commit
d89486b06d
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: nvmm_x86_svm.c,v 1.10 2019/01/06 16:10:51 maxv Exp $ */
|
/* $NetBSD: nvmm_x86_svm.c,v 1.11 2019/01/06 18:32:54 maxv Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 The NetBSD Foundation, Inc.
|
* Copyright (c) 2018 The NetBSD Foundation, Inc.
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_svm.c,v 1.10 2019/01/06 16:10:51 maxv Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_svm.c,v 1.11 2019/01/06 18:32:54 maxv Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
@ -368,7 +368,18 @@ struct vmcb_ctrl {
|
||||||
uint64_t nrip;
|
uint64_t nrip;
|
||||||
uint8_t inst_len;
|
uint8_t inst_len;
|
||||||
uint8_t inst_bytes[15];
|
uint8_t inst_bytes[15];
|
||||||
uint8_t pad[800];
|
uint64_t avic_abpp;
|
||||||
|
uint64_t rsvd3;
|
||||||
|
uint64_t avic_ltp;
|
||||||
|
|
||||||
|
uint64_t avic_phys;
|
||||||
|
#define VMCB_CTRL_AVIC_PHYS_TABLE_PTR __BITS(51,12)
|
||||||
|
#define VMCB_CTRL_AVIC_PHYS_MAX_INDEX __BITS(7,0)
|
||||||
|
|
||||||
|
uint64_t rsvd4;
|
||||||
|
uint64_t vmcb_ptr;
|
||||||
|
|
||||||
|
uint8_t pad[752];
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
CTASSERT(sizeof(struct vmcb_ctrl) == 1024);
|
CTASSERT(sizeof(struct vmcb_ctrl) == 1024);
|
||||||
|
@ -1238,10 +1249,6 @@ svm_vcpu_run(struct nvmm_machine *mach, struct nvmm_cpu *vcpu,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vmcb->ctrl.exitintinfo & VMCB_CTRL_EXITINTINFO_V) {
|
|
||||||
printf("WAS PROCESSING!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If no reason to return to userland, keep rolling. */
|
/* If no reason to return to userland, keep rolling. */
|
||||||
if (curcpu()->ci_schedstate.spc_flags & SPCF_SHOULDYIELD) {
|
if (curcpu()->ci_schedstate.spc_flags & SPCF_SHOULDYIELD) {
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue