#
336190 |
|
11-Jul-2018 |
araujo |
MFC r335030:
Add SPDX tags to vmm(4).
Sponsored by: iXsystems Inc.
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
282287 |
|
30-Apr-2015 |
neel |
Don't require <sys/cpuset.h> to be always included before <machine/vmm.h>.
Only a subset of source files that include <machine/vmm.h> need to use the APIs that require the inclusion of <sys/cpuset.h>.
MFC after: 1 week
|
#
277168 |
|
14-Jan-2015 |
neel |
Fix typo (missing comma).
MFC after: 3 days
|
#
276428 |
|
30-Dec-2014 |
neel |
Replace bhyve's minimal RTC emulation with a fully featured one in vmm.ko.
The new RTC emulation supports all interrupt modes: periodic, update ended and alarm. It is also capable of maintaining the date/time and NVRAM contents across virtual machine reset. Also, the date/time fields can now be modified by the guest.
Since bhyve now emulates both the PIT and the RTC there is no need for "Legacy Replacement Routing" in the HPET so get rid of it.
The RTC device state can be inspected via bhyvectl as follows: bhyvectl --vm=vm --get-rtc-time bhyvectl --vm=vm --set-rtc-time=<unix_time_secs> bhyvectl --vm=vm --rtc-nvram-offset=<offset> --get-rtc-nvram bhyvectl --vm=vm --rtc-nvram-offset=<offset> --set-rtc-nvram=<value>
Reviewed by: tychon Discussed with: grehan Differential Revision: https://reviews.freebsd.org/D1385 MFC after: 2 weeks
|
#
273683 |
|
26-Oct-2014 |
neel |
Move the ACPI PM timer emulation into vmm.ko.
This reduces variability during timer calibration by keeping the emulation "close" to the guest. Additionally having all timer emulations in the kernel will ease the transition to a per-VM clock source (as opposed to using the host's uptime keep track of time).
Discussed with: grehan
|
#
273666 |
|
26-Oct-2014 |
neel |
Don't pass the 'error' return from an I/O port handler directly to vm_run().
Most I/O port handlers return -1 to signal an error. If this value is returned without modification to vm_run() then it leads to incorrect behavior because '-1' is interpreted as ERESTART at the system call level.
Fix this by always returning EIO to signal an error from an I/O port handler.
MFC after: 1 week
|
#
266724 |
|
27-May-2014 |
neel |
Add segment protection and limits violation checks in vie_calculate_gla() for 32-bit x86 guests.
Tested using ins/outs executed in a FreeBSD/i386 guest.
|
#
266642 |
|
25-May-2014 |
neel |
Remove restriction on insb/insw/insl emulation. These instructions are properly emulated.
|
#
266641 |
|
24-May-2014 |
neel |
Do the linear address calculation for the ins/outs emulation using a new API function 'vie_calculate_gla()'.
While the current implementation is simplistic it forms the basis of doing segmentation checks if the guest is in 32-bit protected mode.
|
#
266633 |
|
24-May-2014 |
neel |
Add libvmmapi functions vm_copyin() and vm_copyout() to copy into and out of the guest linear address space. These APIs in turn use a new ioctl 'VM_GLA2GPA' to convert the guest linear address to guest physical.
Use the new copyin/copyout APIs when emulating ins/outs instruction in bhyve(8).
|
#
266627 |
|
24-May-2014 |
neel |
Consolidate all the information needed by the guest page table walker into 'struct vm_guest_paging'.
Check for canonical addressing in vmm_gla2gpa() and inject a protection fault into the guest if a violation is detected.
If the page table walk is restarted in vmm_gla2gpa() then reset 'ptpphys' to point to the root of the page tables.
|
#
266595 |
|
23-May-2014 |
neel |
Check for alignment check violation when processing in/out string instructions.
|
#
266573 |
|
23-May-2014 |
neel |
Add emulation of the "outsb" instruction. NetBSD guests use this to write to the UART FIFO.
The emulation is constrained in a number of ways: 64-bit only, doesn't check for all exception conditions, limited to i/o ports emulated in userspace.
Some of these constraints will be relaxed in followup commits.
Requested by: grehan Reviewed by: tychon (partially and a much earlier version)
|
#
264768 |
|
22-Apr-2014 |
tychon |
Factor out common ioport handler code for better hygiene -- pointed out by neel@.
Approved by: neel (co-mentor)
|
#
264648 |
|
18-Apr-2014 |
tychon |
Respect the destination operand size of the 'Input from Port' instruction.
Approved by: grehan (co-mentor)
|
#
264631 |
|
17-Apr-2014 |
tychon |
Add support for reading the PIT Counter 2 output signal via the NMI Status and Control register at port 0x61.
Be more conservative about "catching up" callouts that were supposed to fire in the past by skipping an interrupt if it was scheduled too far in the past.
Restore the PIT ACPI DSDT entries and add an entry for NMISC too.
Approved by: neel (co-mentor)
|
#
263744 |
|
25-Mar-2014 |
tychon |
Move the atpit device model from userspace into vmm.ko for better precision and lower latency.
Approved by: grehan (co-mentor)
|
#
263035 |
|
11-Mar-2014 |
tychon |
Replace the userspace atpic stub with a more functional vmm.ko model.
New ioctls VM_ISA_ASSERT_IRQ, VM_ISA_DEASSERT_IRQ and VM_ISA_PULSE_IRQ can be used to manipulate the pic, and optionally the ioapic, pin state.
Reviewed by: jhb, neel Approved by: neel (co-mentor)
|