Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ionescu007/SimpleVisor.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/shv.h
diff options
context:
space:
mode:
authorionescu007 <aionescu+git@gmail.com>2016-08-29 05:31:52 +0300
committerionescu007 <aionescu+git@gmail.com>2016-08-29 05:31:52 +0300
commitcac433f845c1713b83f78fa5b6a0bdbcafd8fe37 (patch)
treec1dfbe29738102ed224c1f14fdf6d3261ce28a47 /shv.h
parent66119bfbf70b9c8270d55a83939c9dee79fdfda6 (diff)
Use per-processor data. Track per-processor initialization state.
Each processor now allocates its own node-local memory, instead of relying on a single global array on an arbitrary node. This should help performance on NUMA system. Additionally, each processor now checks its own VMX status, and reports back its unique VMX initialization, isntead of assuming all CPUs initialized or all failed. A mask is used to report which CPUs did not initialize, and a failure status can now be returned.
Diffstat (limited to 'shv.h')
-rw-r--r--shv.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/shv.h b/shv.h
index 024bd31..cb67868 100644
--- a/shv.h
+++ b/shv.h
@@ -140,7 +140,14 @@ ShvVmxEptInitialize (
_In_ PSHV_VP_DATA VpData
);
+typedef struct _SHV_DPC_CONTEXT
+{
+ ULONG64 Cr3;
+ NTSTATUS FailureStatus;
+ ULONGLONG InitMask;
+} SHV_DPC_CONTEXT, *PSHV_DPC_CONTEXT;
+
KDEFERRED_ROUTINE ShvVpCallbackDpc;
-extern PSHV_VP_DATA ShvGlobalData;
+extern PSHV_VP_DATA* ShvGlobalData;