diff options
author | ionescu007 <aionescu+git@gmail.com> | 2016-08-29 05:31:52 +0300 |
---|---|---|
committer | ionescu007 <aionescu+git@gmail.com> | 2016-08-29 05:31:52 +0300 |
commit | cac433f845c1713b83f78fa5b6a0bdbcafd8fe37 (patch) | |
tree | c1dfbe29738102ed224c1f14fdf6d3261ce28a47 /shv.h | |
parent | 66119bfbf70b9c8270d55a83939c9dee79fdfda6 (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.h | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -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; |