summaryrefslogtreecommitdiffstats
path: root/sys/arch/amd64/include/vmmvar.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* disable PAT and MTRR in guest VMsmlarkin2016-10-031-2/+2
|
* Restrict MSR access to supported ones, log invalid accesses.mlarkin2016-09-041-1/+5
|
* Make vcpu_reset_regs use new writeregs codestefan2016-09-011-28/+2
| | | | Makes reset code a little simpler. ok mlarkin@
* Add ioctls to get/set VCPU registersstefan2016-09-011-1/+60
| | | | ok mlarkin@
* Remove the clock hack, and properly handle interrupts generated from vmd(8)'smlarkin2016-09-011-2/+5
| | | | | | forthcoming emulated interrupt controller. ok stefan
* Remove readpage and writepage ioctls.stefan2016-06-101-23/+3
| | | | | | They are not needed anymore now that guest memory is allocated by and shared with the host. ok mlarkin@
* Allocate RAM for guest VM in vmd(8) and pass it to vmm(4)stefan2016-06-071-1/+2
| | | | | | | | | | vmm(4) then maps the pages allocated by the vmd(8) user process into the address space of the guest. This gives vmm(4) and vmd(8) a shared view of the guest RAM. This will allow us to have faster guest<->host data exchange by ordinary memory loads/stores later, as well as remove the vm_readpage and vm_writepage ioctls next. ok mlarkin@
* add a few new exit types found in newer cpusmlarkin2016-04-251-1/+4
|
* define number of exit/entry save/load MSRs as a #define instead of a magicmlarkin2016-04-061-1/+3
| | | | number.
* Introduce memory ranges to support VMs with >= 4G RAMstefan2016-03-131-9/+16
| | | | | | | | | | | | | | | | | | | | | | | Kernel bits: - When creating a VM, a list of memory ranges has to be specified, similar to the BIOS memory map. This is necessary for VMs with RAM sizes approaching 4G because we'll need PCI MMIO space in the higher parts of the 32 bit address space. vmctl and vmd bits: - Construct appropriate memory ranges to create a VM with a given RAM size - Construct a corresponding BIOS memory map from the memory ranges and update the boot params page accordingly. - Make sure that all variables that represent guest physical addresses match the address width of the target CPU instead of using uint32_t. - Fix some integer promotion glitches that actually restricted VM RAM size to 2G. This changes the VM create ioctl interface, so update your kernel, vmd, and vmctl. ok mlarkin@
* Add a comment to the vcpu state enum to remind people there is a matchingmlarkin2016-03-091-3/+8
| | | | | | conversion function in vmm.c Increase the size of the pending interrupt field from uint8_t to uint16_t.
* Add "interrupt pending on vcpu" ioctl to vmm. Needed for upcoming interruptmlarkin2016-02-201-1/+11
| | | | | | controller work in vmd(8). ok stefan@, mpi@
* Allow userland to initialize CR0 when resetting a VCPU instead ofstefan2016-02-161-1/+2
| | | | | | | | | | | | hardcoding it. Be careful to obey VMX's must-be-0 and must-be-1 restrictions for CR0. This gives us the opportunity later to start VCPUs in real-mode, etc. (for those CPUs that support unrestricted guest). Be sure to update your vmd(8) also, the ioctl interface has changed. ok mlarkin@, deraadt@
* Do proper termination of VMs by doing proper VCPU run state management.mlarkin2016-01-041-4/+5
| | | | | | | | | | | | This should fix some of the odd termination errors people have been seeing (vmctl status showing running VMs after they have exited/crashed, and invalid instruction panics on vmptrld during certain races) This diff also implements dropping the biglock when running a VCPU, and reacquiring the lock as needed based on the type of exit (normal vs. external interrupt) diff supplied by Stefan Kempf <sn.kempf at t-online.de>, many thanks!
* Move vcpu register state init to vmd. Allows vmd bootloader to make themlarkin2015-12-171-2/+37
| | | | | | | decision as to how the vcpu should be set up for initial start and reset. Also removes some hardcoded register constants from vmm(4). ok jsing@, mpi@
* support reset vcpu by triple fault (kernel part, userland fix will comemlarkin2015-12-151-1/+8
| | | | | | later). discussed with deraadt@ and reyk@ at length.
* track used memory in each VM. This is passed back to vmctl status.mlarkin2015-12-141-1/+2
| | | | ok reyk@, beck@, mpi@
* Automatically start vmm(4) when the first VM is created and after thereyk2015-11-261-9/+7
| | | | | | | | | last VM is terminated. This allows to remove the explicit "vmm enable" / "vmm disable" (VMM_IOC_START / VMM_IOC_STOP) ioctls. You'll have to update kernel and userland for this change, as the kernel ABI changes. OK mpi@ mlarkin@
* Some minor tweaks:mpi2015-11-161-27/+6
| | | | | | | | | | | | | | - Add $OpenBSD$ tag, - constify "struct cfattach", - Use <uvm/uvm_extern.h> rather than <uvm/uvm.h>, it's enough. - Keep the "struct vm" private. This allows us to not pull <uvm/uvm_extern.h> in <macine/vmmvar.h> - Prefer DPRINTF() for debug macro as dprintf(3) is a standard function name. - Add vmm_debug and fix VMM_DEBUG build - Remove unneeded <sys/rwlock.h> from <machine/vmmvar.h> - Kill whitespaces ok mlarkin@
* vmm(4) kernel codemlarkin2015-11-131-0/+387
circulated on hackers@, no objections. Disabled by default.