summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
AgeCommit message (Collapse)Author
2015-12-12Identify hypervisors before configuring other children of the mainbusReyk Floeter
(bios, CPU, interrupt handlers, pvbus). This splits the pvbus attach function into two parts: pvbus_identify() to scan the CPUID registers for supported hypervisors and pvbus_attach() to attach the bus, print information, and configure the children. This will be needed for Xen and KVM, as discussed with mikeb@ and sf@ OK mlarkin@
2015-12-11comment typommcc
2015-12-09successful vmm enter/leave does not need to be reportedTheo de Raadt
ok mlarkin
2015-12-08Disable xspd(4) until the man page is written; noticed by reyk@Mike Belopuhov
2015-12-08Driver for the XenSource Platform DeviceMike Belopuhov
This is a simple driver for the virtual PCI device with only one purpose: to allocate the interrupt vector and communicate that to the Hypervisor in case the IDT callback method was not available. With input from and OK deraadt, mlarkin, reyk, mpi
2015-12-08Set up an IDT vector for Xen callbacksMike Belopuhov
This adds support for delivering the combined Xen interrupt that later fans out into event port specific (device specific) interrupts via an IDT of a guest system. The Xen IDT vector is set to be the first of the IPL_NET group and is implemented the same way LAPIC timer and IPIs are done. The additional machinery is there to be able to mask it via standard mechanisms (e.g. splnet). Discussed with kettenis@, OK mlarkin, reyk
2015-12-08Setup a hypercall page in the kernel .text segmentMike Belopuhov
Its location will be communicated with the Xen hypervisor that will fill it in with instructions resulting in VMEXIT events. Discussed with kettenis@ and deraadt@, with input from and OK mpi, mlarkin, reyk
2015-12-08Xen basic infrastructure files and pvbus(4) attachment.Mike Belopuhov
With input from and OK mpi, mlarkin, reyk
2015-12-07Add cpuid bits documented in the August 2015 revision ofJonathan Gray
"Intel Architecture Instruction Set Extensions Programming Reference"
2015-12-06child_return() is already declared in <sys/proc.h>Philip Guenther
2015-12-06add function prototypeMike Larkin
2015-12-06move around some deck chairs in preparation for supporting VM reboot. thisMike Larkin
diff moves the cpu register init code into its own function which will soon be called from vmd to reset processor state. no functional change with this diff.
2015-12-06Don't bother printing out the count of what type of cpu we have. InsteadMike Larkin
just print the feature being used (eg, VMX/EPT). suggested by and ok deraadt@
2015-12-06don't allow opening of /dev/vmm if we are in an unsupported configurationMike Larkin
or if vmm0 didn't attach, prevents later panics if we try to use vmm in such a state. reported by many on tech/misc
2015-12-06unbreak kernel link if vmm isnt being built as part of the kernel.David Gwynne
2015-12-06restore VMM mode after resume from suspend/hibernateMike Larkin
2015-12-05AMD Family 12h and later processors keep their APIC clock running in deeperMark Kettenis
C-states. Set the TMP_ARAT flag for these (which is Intel-specific) such that acpicpu(4) enables the deeper C-states on these CPUs. ok deraadt@
2015-12-02Add a padding in EFI_MEMORY_DESCRIPTOR to align fields properly on ia32.YASUOKA Masahiko
2015-12-02Add missing start_i386.S for ia32. Also start.S is renamed toYASUOKA Masahiko
start_amd64.S.
2015-12-01Change a lot of "else if" lines to single switch block.YASUOKA Masahiko
input by tobias
2015-12-01Pass M_NOWAIT when allocating a temporary page in vm_writepage() to beMartin Pieuchot
coherent with the rest of the allocations. While here report the correct errno if an allocation fails. ok mlarkin@
2015-12-01Instead of using a supplementary variable to check if we found a VCPUMartin Pieuchot
or a VM in an iteration, check against NULL. ok mlarkin@
2015-12-01Do not wait when allocating a page in vcpu_init().Martin Pieuchot
Should help with the possible hang when trying to create a VM when the host is out of memory. It also improves coherency as all the allocations in vmm(4) are done without sleeping. ok mlarkin@
2015-12-01KNFMartin Pieuchot
ok mlarkin@
2015-12-01Prettify dmesg output.Martin Pieuchot
ok reyk@, mlarkin@
2015-12-01Properly disable SVM until its support is added back.Martin Pieuchot
Should prevent a NULL dereference when initializing VM. ok mlarkin@
2015-11-29Disk size in blocks is LastBlock+1. Fix whitespace nit.Kenneth R Westerback
ok yasuoka@
2015-11-28Use the same function as kern/subr_disk.c and fdisk/mbr.c to checkKenneth R Westerback
for a GPT protective MBR. Better than mangling findopenbsd() to do the check. Tested & ok yasuoka@
2015-11-28Check the protective MBR stricter not to choose a broken GPT.YASUOKA Masahiko
test and ok gonzalo
2015-11-26Avoid setting mode to GOP if the mode is unchanged. Also don't panicYASUOKA Masahiko
if the setting mode is failed. reported and tested by Joe Gidi
2015-11-26Fix a typo in comment.YASUOKA Masahiko
2015-11-26init pat_default to 0 as it may potentially be used uninitialisedJonathan Gray
ok mlarkin@
2015-11-26Automatically start vmm(4) when the first VM is created and after theReyk Floeter
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@
2015-11-24Don't loop forever trying to handle NP faults in certain failure cases.Mike Larkin
reported by Stefan Kempf with supplied patch, thanks.
2015-11-23No longer need 'option VMM', declaring the vmm0 device is sufficient.Theo de Raadt
ok mlarkin
2015-11-23downfalls -> pitfallsmmcc
2015-11-21Prevent disabling vmm mode if a VM is still running.Martin Pieuchot
Return EAGAIN in this case: # vmmctl -d vmmctl: disable VMM command failed (35) - Resource temporarily unavailable ok mlarkin@
2015-11-21Do not create a VM if vmm mode hasn't been enable.Martin Pieuchot
Currently one MUST do "vmmctl -e" before creating a vm with "vmm -S ...". Lately this could be done automagically by vmd(8) but the kernel should not allow things that wont fly. While here, disable vmm mode in error path if at least one of the CPUs failed to enable it. ok mlarkin@
2015-11-21Do not use boolean_t outside of /sys/uvmMartin Pieuchot
ok mlarkin@
2015-11-16Replace unbounded gets() in libsa with getln() which takes a buffer size,Miod Vallat
and convert all gets() users. ok deraadt@
2015-11-16Some minor tweaks:Martin Pieuchot
- 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@
2015-11-14mutli -> multiMiod Vallat
2015-11-14Fix a missing unlock.Mike Larkin
From Stefan Kempf sn.kempf at t-online.de
2015-11-13vmm(4) kernel codeMike Larkin
circulated on hackers@, no objections. Disabled by default.
2015-11-10pmap changes required for vmm. Changes include addition of pm_type toMike Larkin
track type of pmap and various conversion and pte bit manipulation functions for EPT.
2015-11-09Cache the result of cpuid leaf function $0x1 from the host's boot CPUMike Larkin
during locore, information based on this will be returned to guest VMs issuing cpuid instructions later, under certain circumstances.
2015-11-09Bring GPT validity checking into line with kern/subr_disk.c . InKenneth R Westerback
particular don't attempt to calcuate the header checksum using a size that will cause a crash. Tested & ok yasuoka@
2015-11-09EPT paging permission bits for amd64, will be used in subsequent pmapMike Larkin
changes for vmm.
2015-11-08Make "machine disk" show some info for EFI instead of info for BIOS.YASUOKA Masahiko
2015-11-08Make the variables be "const" and fix white space.YASUOKA Masahiko