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
AgeCommit message (Collapse)Author
2016-08-29Fix race condition and support >64 LP. Don't free data on unload.ionescu007
Freeing the data on unload seems to cause a hang. WIP investigation. The old way we OR'ed the InitMask was both prone to racing and causing incorrect failure codes, as well as was limited by 64 processors.
2016-08-29Simplify access to VP_DATA in the hypervisor, save 4KB per CPU.ionescu007
Some of the fields used during CPU initialization are never needed later, so put them in a union with the hypervisor stack. Additionally, by putting the hypervisor stack at the beginning of the VP Data, we can retrieve it without calling a kernel function.
2016-08-29Fix regressionionescu007
2016-08-29WIPionescu007
2016-08-29WIP Cleanup VP Dataionescu007
2016-08-29Fix a silly bugionescu007
Computed the mask incorrectly for success case.
2016-08-29Use per-processor data. Track per-processor initialization state.ionescu007
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.
2016-08-28Get rid of global data -- all data is now per-processorionescu007
The MSR Bitmap and EPML4/EPDPTEs were allocated globally, with each LP's VMCS pointing to the same physical address. Make things simpler and more efficient (especially if we take advantage of NUMA) by giving each LP/VMCS its own MSR Bitmap and EPT structures. The intent here is not to de-synchronize this data, as we have no exits which would cause either of these structures to change and require synchronization.
2016-08-28Fix SimpleVisor to work on VMWare, stop using KeSaveStateForHibernate and ↵ionescu007
misc. cleanups SimpleVisor was previously using the presence of *ANY* hypervisor as a sign that it is already loaded. This breaks if the loaded hypervisor actually supports nesting and/or isn't SimpleVisor. As such, always try to enable SimpleVisor -- ShvVmxProbe will fail if we can't, and detect SimpleVisor explicitly using the Hyper-V Detection Interface (used by all hypervisors these days). Second, stop using KeSaveStateForHibernate. While it saved us the need for two more assembly instructions (str/sldt), it appears to have bugs around handling of DebugControl, on top of the other bugs we already had to work around. Instead, just use compiler instrincs to grab the required state, which is faster anyway. Move Intel VT-x specific structures into vmx.h instead of shv.h
2016-08-27Update README.MDAlex Ionescu
2016-08-26Add VPID supportAlex Ionescu
Give each CPU the same VPID as they are sharing the same physical address space.
2016-08-26Add EPT SupportAlex Ionescu
Create 1:1 512GB hugepage mappings with EPT enabled.
2016-05-18Merge pull request #11 from tezeb/patch-1Alex Ionescu
Fix Joanna's name
2016-05-16Her name is Joannatezeb
2016-04-18Merge pull request #9 from jtsylve/ionescu007-PRAlex Ionescu
Fixed link to MoRE project in documentation
2016-04-17Fixed another documentation linkJoe Sylve
2016-04-17Fixed link to MoRE project in documentationJoe Sylve
2016-04-15Merge pull request #7 from jtsylve/ionescu007-issue5Alex Ionescu
Remove read from MSR_IA32_VMX_VMFUNC
2016-04-14Adjusted the MsrData in order to avoid reading from the MSR_IA32_VMX_VMFUNC ↵Joe Sylve
MSR, which is not available on processors before Haswell. This MSR was not referenced in this project anyway.
2016-03-20Update README.mdAlex Ionescu
2016-03-20Update README.mdAlex Ionescu
2016-03-19Fixes for issue #2 and #3ionescu007
Also build PDB
2016-03-18Update README.mdAlex Ionescu
2016-03-17Merge pull request #1 from zachriggle/masterAlex Ionescu
Fix some spelling mistakes
2016-03-17Update README.mdAlex Ionescu
2016-03-17Update README.mdAlex Ionescu
2016-03-17Update README.mdAlex Ionescu
2016-03-17SpelingZach Riggle
2016-03-17Update README.mdAlex Ionescu
2016-03-17Update README.mdionescu007
2016-03-17Update README.mdionescu007
2016-03-17Final round of cleanupsionescu007
2016-03-17Update README.mdionescu007
2016-03-17Update README.mdionescu007
2016-03-17Update README.mdionescu007
2016-03-17Update README.mdionescu007
2016-03-17Update README.mdionescu007
2016-03-17Update README.mdionescu007
2016-03-17Update README.mdionescu007
2016-03-17Continued cleanupionescu007
2016-03-17Continued cleanupsionescu007
2016-03-17First round of cleanupionescu007
Begin refactoring and commenting efforts.
2016-03-16Create README.MDionescu007
2016-03-16Initial check-inionescu007
SimpleVisor initial check-in. Tested on Windows 8.1 on Haswell, Windows 10 TH2 on Skylake, Windows 10 RS1 on Sandy Bridge. Comments & readme to follow.
2016-03-16:confetti_ball: Added .gitattributesionescu007