summaryrefslogtreecommitdiff
path: root/usr/src/cmd/bhyve
diff options
context:
space:
mode:
authorDan McDonald <danmcd@mnx.io>2022-10-03 10:29:49 -0400
committerDan McDonald <danmcd@mnx.io>2022-10-03 10:29:49 -0400
commit4e09adb1ae71f9570a14be2e9c2e7d1fcd64b0cc (patch)
treeeca5333e2c185a6b559a99b2d7f4a2bde393747b /usr/src/cmd/bhyve
parent7d35233e629cfee42ee57e76f6bbd1e3f6d2c64a (diff)
parent3f6fd99d844f7d4b62e4e1ddb0c29a4c2f7eca15 (diff)
downloadillumos-joyent-4e09adb1ae71f9570a14be2e9c2e7d1fcd64b0cc.tar.gz
[illumos-gate merge]
commit 3f6fd99d844f7d4b62e4e1ddb0c29a4c2f7eca15 14952 bhyve should expose PAGING exits to userspace commit 17c4dadf772c2bfb28130f501dc6e1f46f8b1250 15020 HBA_LoadLibrary needs to close config file when done commit 609febc9a48c79a089214cb5d882759a72a38513 13923 zpool list -v output is misaligned commit e472a1cd85bffae230f8546d46fa757bade533e9 15006 Implement pre-auth integrity for fksmbd commit 17e9e0ae7132604963fd5a20e8ece5f2630e7fdf 15008 expose bhyve kernel interface version wider
Diffstat (limited to 'usr/src/cmd/bhyve')
-rw-r--r--usr/src/cmd/bhyve/bhyverun.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/usr/src/cmd/bhyve/bhyverun.c b/usr/src/cmd/bhyve/bhyverun.c
index fb64e059fc..304bd5ab11 100644
--- a/usr/src/cmd/bhyve/bhyverun.c
+++ b/usr/src/cmd/bhyve/bhyverun.c
@@ -39,7 +39,7 @@
*
* Copyright 2015 Pluribus Networks Inc.
* Copyright 2018 Joyent, Inc.
- * Copyright 2021 Oxide Computer Company
+ * Copyright 2022 Oxide Computer Company
* Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
*/
@@ -840,6 +840,18 @@ vmexit_run_state(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu)
fprintf(stderr, "unexpected run-state VM exit");
return (VMEXIT_ABORT);
}
+
+static int
+vmexit_paging(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu)
+{
+ fprintf(stderr, "vm exit[%d]\n", *pvcpu);
+ fprintf(stderr, "\treason\t\tPAGING\n");
+ fprintf(stderr, "\trip\t\t0x%016lx\n", vmexit->rip);
+ fprintf(stderr, "\tgpa\t\t0x%016lx\n", vmexit->u.paging.gpa);
+ fprintf(stderr, "\tfault_type\t\t%d\n", vmexit->u.paging.fault_type);
+
+ return (VMEXIT_ABORT);
+}
#endif /* __FreeBSD__ */
#ifdef __FreeBSD__
@@ -1113,6 +1125,7 @@ static vmexit_handler_t handler[VM_EXITCODE_MAX] = {
[VM_EXITCODE_SPINUP_AP] = vmexit_spinup_ap,
#else
[VM_EXITCODE_RUN_STATE] = vmexit_run_state,
+ [VM_EXITCODE_PAGING] = vmexit_paging,
#endif
[VM_EXITCODE_SUSPENDED] = vmexit_suspend,
[VM_EXITCODE_TASK_SWITCH] = vmexit_task_switch,