<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libvmmapi, branch release/13.1.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F13.1.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F13.1.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2021-08-02T19:01:02Z</updated>
<entry>
<title>libvmmapi: Fix warnings and stop overridding WARNS</title>
<updated>2021-08-02T19:01:02Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2021-07-26T20:40:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=225d3b0771d895a7b101e9349cf607ed86c06f6a'/>
<id>urn:sha1:225d3b0771d895a7b101e9349cf607ed86c06f6a</id>
<content type='text'>
- Avoid shadowing the global optarg.
- Sprinkle __unused.
- Cast nitems() to int.
- Fix sign in vm_copy_setup().

Reviewed by:	grehan
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 45cd18ec73dcd262612898bf1a263cacde17d348)
</content>
</entry>
<entry>
<title>bhyvectl: print a better error message when vm_open() fails</title>
<updated>2021-07-02T03:17:12Z</updated>
<author>
<name>Marko</name>
<email>marko@apache.org</email>
</author>
<published>2021-03-07T06:19:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3f65cb8fda02c4f643c476f04655de843e31e563'/>
<id>urn:sha1:3f65cb8fda02c4f643c476f04655de843e31e563</id>
<content type='text'>
libvmm: explicitly save and restore errno in vm_open()

Use errno to print a more descriptive error message when vm_open() fails

PR:             250671
Reviewed by:	grehan
Differential Revision:	https://reviews.freebsd.org/D29109

(cherry picked from commit 6bb140e3ca895a148f32c93d50f93619bf735f73)
(cherry picked from commit a7f81b488df2d4a5dcd785b4112e04ffb6ca0442)
</content>
</entry>
<entry>
<title>bhyve: support relocating fbuf and passthru data BARs</title>
<updated>2021-03-26T13:50:41Z</updated>
<author>
<name>D Scott Phillips</name>
<email>scottph@FreeBSD.org</email>
</author>
<published>2021-03-18T16:08:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7590d7800c44ebe2f5410874d393eaf218f543ff'/>
<id>urn:sha1:7590d7800c44ebe2f5410874d393eaf218f543ff</id>
<content type='text'>
We want to allow the UEFI firmware to enumerate and assign
addresses to PCI devices so we can boot from NVMe[1]. Address
assignment of PCI BARs is properly handled by the PCI emulation
code in general, but a few specific cases need additional support.
fbuf and passthru map additional objects into the guest physical
address space and so need to handle address updates. Here we add a
callback to emulated PCI devices to inform them of a BAR
configuration change. fbuf and passthru then watch for these BAR
changes and relocate the frame buffer memory segment and passthru
device mmio area respectively.

We also add new VM_MUNMAP_MEMSEG and VM_UNMAP_PPTDEV_MMIO ioctls
to vmm(4) to facilitate the unmapping needed for addres updates.

[1]: https://github.com/freebsd/uefi-edk2/pull/9/

Originally by:	scottph
Sponsored by:	Intel Corporation
Reviewed by:	grehan
Approved by:	philip (mentor)
Differential Revision:	https://reviews.freebsd.org/D24066

(cherry picked from commit f8a6ec2d572758da6cfd29fcb4ecf4430463661d)
</content>
</entry>
<entry>
<title>Honor the disabled setting for MSI-X interrupts for passthrough devices.</title>
<updated>2020-11-24T23:18:52Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2020-11-24T23:18:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1925586e03bed086b78fda5d8d758912aea7ecc7'/>
<id>urn:sha1:1925586e03bed086b78fda5d8d758912aea7ecc7</id>
<content type='text'>
Add a new ioctl to disable all MSI-X interrupts for a PCI passthrough
device and invoke it if a write to the MSI-X capability registers
disables MSI-X.  This avoids leaving MSI-X interrupts enabled on the
host if a guest device driver has disabled them (e.g. as part of
detaching a guest device driver).

This was found by Chelsio QA when testing that a Linux guest could
switch from MSI-X to MSI interrupts when using the cxgb4vf driver.

While here, explicitly fail requests to enable MSI on a passthrough
device if MSI-X is enabled and vice versa.

Reported by:	Sony Arpita Das @ Chelsio
Reviewed by:	grehan, markj
MFC after:	2 weeks
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D27212
</content>
</entry>
<entry>
<title>vmm(4), bhyve(8): Expose kernel-emulated special devices to userspace</title>
<updated>2020-05-15T15:54:22Z</updated>
<author>
<name>Conrad Meyer</name>
<email>cem@FreeBSD.org</email>
</author>
<published>2020-05-15T15:54:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8a68ae80f67adcb35e6f9712384a3da6dca26de2'/>
<id>urn:sha1:8a68ae80f67adcb35e6f9712384a3da6dca26de2</id>
<content type='text'>
Expose the special kernel LAPIC, IOAPIC, and HPET devices to userspace
for use in, e.g., fallback instruction emulation (when userspace has a
newer instruction decode/emulation layer than the kernel vmm(4)).

Plumb the ioctl through libvmmapi and register the memory ranges in
bhyve(8).

Reviewed by:	grehan
Differential Revision:	https://reviews.freebsd.org/D24525
</content>
</entry>
<entry>
<title>Initial support for bhyve save and restore.</title>
<updated>2020-05-05T00:02:04Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2020-05-05T00:02:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=483d953a86a2507355f8287c5107dc827a0ff516'/>
<id>urn:sha1:483d953a86a2507355f8287c5107dc827a0ff516</id>
<content type='text'>
Save and restore (also known as suspend and resume) permits a snapshot
to be taken of a guest's state that can later be resumed.  In the
current implementation, bhyve(8) creates a UNIX domain socket that is
used by bhyvectl(8) to send a request to save a snapshot (and
optionally exit after the snapshot has been taken).  A snapshot
currently consists of two files: the first holds a copy of guest RAM,
and the second file holds other guest state such as vCPU register
values and device model state.

To resume a guest, bhyve(8) must be started with a matching pair of
command line arguments to instantiate the same set of device models as
well as a pointer to the saved snapshot.

While the current implementation is useful for several uses cases, it
has a few limitations.  The file format for saving the guest state is
tied to the ABI of internal bhyve structures and is not
self-describing (in that it does not communicate the set of device
models present in the system).  In addition, the state saved for some
device models closely matches the internal data structures which might
prove a challenge for compatibility of snapshot files across a range
of bhyve versions.  The file format also does not currently support
versioning of individual chunks of state.  As a result, the current
file format is not a fixed binary format and future revisions to save
and restore will break binary compatiblity of snapshot files.  The
goal is to move to a more flexible format that adds versioning,
etc. and at that point to commit to providing a reasonable level of
compatibility.  As a result, the current implementation is not enabled
by default.  It can be enabled via the WITH_BHYVE_SNAPSHOT=yes option
for userland builds, and the kernel option BHYVE_SHAPSHOT.

Submitted by:	Mihai Tiganus, Flavius Anton, Darius Mihai
Submitted by:	Elena Mihailescu, Mihai Carabas, Sergiu Weisz
Relnotes:	yes
Sponsored by:	University Politehnica of Bucharest
Sponsored by:	Matthew Grooms (student scholarships)
Sponsored by:	iXsystems
Differential Revision:	https://reviews.freebsd.org/D19495
</content>
</entry>
<entry>
<title>Map negative types passed to vm_capability_type2name to NULL.</title>
<updated>2020-04-21T21:48:35Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2020-04-21T21:48:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=24c2e17d2b5ac2c4450732e0f14f5de84025b981'/>
<id>urn:sha1:24c2e17d2b5ac2c4450732e0f14f5de84025b981</id>
<content type='text'>
Submitted by:	vangyzen
</content>
</entry>
<entry>
<title>Add description string for VM_CAP_BPT_EXIT.</title>
<updated>2020-04-21T17:30:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2020-04-21T17:30:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d000623a21fa57731f405a985ebb846c26d1c39f'/>
<id>urn:sha1:d000623a21fa57731f405a985ebb846c26d1c39f</id>
<content type='text'>
While here, replace the array of mapping structures with an array of
string pointers where the index is the capability value.

Submitted by:	Rob Fairbanks &lt;rob.fx907@gmail.com&gt;
Reviewed by:	rgrimes
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D24289
</content>
</entry>
<entry>
<title>Forgotten to remove the previous if statement in commit r355838.</title>
<updated>2019-12-17T01:37:02Z</updated>
<author>
<name>Marcelo Araujo</name>
<email>araujo@FreeBSD.org</email>
</author>
<published>2019-12-17T01:37:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=af1e30f8bebcb633176fb3f251010a9e4ba57235'/>
<id>urn:sha1:af1e30f8bebcb633176fb3f251010a9e4ba57235</id>
<content type='text'>
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D19400
</content>
</entry>
<entry>
<title>Attempt to load vmm(4) module before creating a guest using vm_create()</title>
<updated>2019-12-17T01:33:26Z</updated>
<author>
<name>Marcelo Araujo</name>
<email>araujo@FreeBSD.org</email>
</author>
<published>2019-12-17T01:33:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a71dc724e4e5be75f8d56f225a6f3c2062fa2307'/>
<id>urn:sha1:a71dc724e4e5be75f8d56f225a6f3c2062fa2307</id>
<content type='text'>
wrapper in libvmmapi.

Submitted by:	Rob Fairbanks &lt;rob.fx907_gmail.com&gt;
Reviewed by:	jhb
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D19400
</content>
</entry>
</feed>
