freebsd-nq/usr.sbin
John Baldwin 483d953a86 Initial support for bhyve save and restore.
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
2020-05-05 00:02:04 +00:00
..
ac Add some HISTORY sections to manpages 2020-02-19 12:49:49 +00:00
accton
acpi Add _BIX (Battery Information Extended) object support. 2020-02-19 06:28:55 +00:00
adduser adduser: allow standard IFS characters in passwords 2020-04-05 19:25:46 +00:00
ancontrol
apm
apmd Stop linking to libl by specifying we do not need yywrap 2019-09-10 07:23:01 +00:00
arp arp(8): avoid segfaulting due to out-of-bounds memory access 2020-01-09 11:58:26 +00:00
audit
auditd
auditdistd auditdistd: Remove useless linking with libl 2020-03-24 07:08:39 +00:00
auditreduce
authpf
autofs Stop hardcoding WARNS in automount(8) et al. 2020-04-01 15:08:13 +00:00
bhyve Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
bhyvectl Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
bhyveload Fix pkgfs stat so it satisfies libsecureboot 2020-03-25 19:12:19 +00:00
binmiscctl Add RISC-V interpreter example 2020-05-01 01:31:19 +00:00
blacklistctl
blacklistd
bluetooth Add le_read_buffer_size command and manpage. 2020-04-28 16:00:34 +00:00
boot0cfg Remove deprecated GEOM classes 2019-08-13 20:06:55 +00:00
bootparamd
bsdconfig Add mention of wireless option in bsdconfig 2020-04-12 20:54:35 +00:00
bsdinstall bsdinstall: remove the Italian mirror 2020-02-28 03:39:00 +00:00
bsnmpd Fix a comment for the SUN geom class. 2020-02-10 17:16:50 +00:00
btxld
camdd camdd: initialize devs earlier 2020-01-10 22:20:23 +00:00
cdcontrol
certctl certctl(8): switch to install(1) to fix DESTDIR support 2020-02-19 02:34:56 +00:00
chkgrp
chown
chroot chroot.8: Add examples & clean up 2019-03-14 14:34:36 +00:00
ckdist
clear_locks
config config: Add no-ctfconvert support. 2020-04-28 16:09:22 +00:00
cpucontrol cpucontrol: print more useful information when MSR access fails. 2019-11-13 22:43:11 +00:00
crashinfo
cron cron: respect PATH from login.conf 2020-03-30 03:26:52 +00:00
crunch crunch: remove rsh and rlogin from example config file 2019-08-13 15:23:14 +00:00
ctladm Add device temperature reporting into CTL. 2019-07-26 03:49:16 +00:00
ctld Add 'ctld -t', to test configuration file validity. 2020-03-31 13:43:09 +00:00
cxgbetool
daemon Bump .Dd for earlier update (should have been part of r353024). 2019-10-02 23:19:34 +00:00
dconschat
devctl Fix gcc warning about shadowed global. 2019-04-05 20:12:19 +00:00
devinfo
diskinfo Add GEOM attribute to report physical device name, and report it 2019-11-09 17:30:19 +00:00
dumpcis Regularize my copyright notice 2019-12-04 16:56:11 +00:00
editmap
edquota
efibootmgr Add --esp/-E argument to print the currently booted ESP 2019-11-20 23:58:36 +00:00
efidp Regularize the Netflix copyright 2019-02-04 21:28:25 +00:00
efivar Document the efivar --load-option option 2019-03-07 00:01:28 +00:00
etcupdate Unbreak etcupdate(8) and mergemaster(8) after r352950 2019-10-02 12:46:28 +00:00
extattr setextattr: Increase stdin buffer size to 4096 2020-01-16 21:31:56 +00:00
extattrctl
fdcontrol
fdformat
fdread
fdwrite
fifolog
flowctl
fmtree mtree: Fix -f -f not considering type changes. 2019-09-12 18:44:48 +00:00
freebsd-update freebsd-update: rehash certs 2020-04-25 00:14:17 +00:00
fstyp fstyp: sync HAMMER1/2 detection support with DragonFly BSD. 2020-02-06 18:04:15 +00:00
ftp-proxy
fwcontrol Fix various -Wpointer-compare warnings 2019-10-08 21:14:09 +00:00
getfmac
getpmac
gpioctl gpioctl: Print interrupts capabilities 2020-04-11 15:25:40 +00:00
gssd Remove the -o option from gssd(8). 2020-04-10 23:10:28 +00:00
gstat
hyperv
i2c Fix error found by new clang operator precendence warning 2019-11-17 19:04:02 +00:00
ifmcstat
inetd inetd: two more nits 2020-01-10 14:43:57 +00:00
iostat Fix formatting for tps values between 99.95 and 99.99; previously 2020-02-21 20:57:32 +00:00
iovctl
ip6addrctl pkgbase: Put a lot of binaries and lib in FreeBSD-runtime 2019-09-05 14:13:08 +00:00
ipfwpcap
iscsid Stop hardcoding WARNS in iscsid(8). 2020-04-01 15:09:52 +00:00
jail jail(8): improve manual and usage information with more clear 2020-04-17 10:12:11 +00:00
jexec
jls
kbdcontrol Stop linking to libl by specifying we do not need yywrap 2019-09-10 07:26:38 +00:00
kbdmap kbdmap: allow INDEX.keymaps to provide the dialog title 2019-12-11 17:19:36 +00:00
keyserv keyserv(8): unifdef out __FreeBSD__ and KEYSERV_RANDOM 2019-12-13 04:03:05 +00:00
kgmon
kldxref pkgbase: Put a lot of binaries and lib in FreeBSD-runtime 2019-09-05 14:13:08 +00:00
lastlogin
lpr Fix clang -Wcast-qual issues 2019-05-04 02:09:30 +00:00
lptcontrol
mailstats
mailwrapper Sync with NetBSD/OpenBSD. 2020-04-16 03:23:19 +00:00
makefs Fix an indentation bug in r357169. 2020-01-30 18:34:08 +00:00
makemap
manctl
memcontrol
mergemaster Use full path to sysctl(8) since /sbin is not in PATH. 2019-12-04 04:01:53 +00:00
mfiutil
mixer mixer: call the cleanup function in a test 2020-02-06 14:31:29 +00:00
mld6query Remove the USE_RFC2292BIS option and reap dead code 2019-07-22 20:11:33 +00:00
mlx5tool Use size_t for byte_to_write variable when comparing to eeprom_info_out_len 2019-10-02 10:58:27 +00:00
mlxcontrol
mount_smbfs
mountd Add a reference to the NFSv3 RFC. 2019-08-08 21:08:13 +00:00
moused
mpsutil Add support for some IOCFacts fields that are available with mpr (12Gb) 2020-04-16 04:17:06 +00:00
mptable
mptutil mptutil: emit a warning on big-endian architectures 2019-07-22 17:25:35 +00:00
mtest
ndiscvt Stop linking to libl by specifying we do not need yywrap 2019-09-10 07:28:27 +00:00
ndp
newsyslog newsyslog: Add fallthrough comments to appease Coverity. 2020-03-24 18:17:10 +00:00
nfscbd Change the type of "len" to avoid warnings. 2020-04-18 23:46:58 +00:00
nfsd Update the man page to reflect the addition of NFSv4.2 (r355677). 2019-12-20 21:45:20 +00:00
nfsdumpstate Add #ifdef INET6 around declaration of nbuf. 2019-04-28 22:37:59 +00:00
nfsrevoke
nfsuserd Delete the BUGS entry related to failing when jails are enabled. 2019-04-06 22:14:03 +00:00
ngctl Update Makefile.depend files 2019-12-11 17:37:53 +00:00
nghook
nmtree
nologin Fix a typo 2020-04-15 17:11:44 +00:00
nscd
ntp PACKAGE_STRING should be the same as PACKAGE_VERSION. 2020-03-18 22:14:25 +00:00
nvram
ofwdump
pciconf When printing out the contents of the VSEC, include the contents of the 2020-03-20 23:26:37 +00:00
periodic Add extremely useful calendar(1) application to FreeBSD 2020-03-03 00:20:08 +00:00
pkg Rework the logic for installing the pkg(8) configuration. 2019-10-08 18:58:23 +00:00
pmc pmc: diable position-independent builds, they fail to link on amd64 2020-04-03 16:10:42 +00:00
pmcannotate
pmccontrol
pmcstat pmc: Add include path for libpmcstat as it is an internallib 2020-03-25 01:32:16 +00:00
pmcstudy Replace -Werror with ${WERROR} in pmcstudy 2019-08-25 22:06:26 +00:00
pnfsdscopymr
pnfsdsfile
pnfsdskill
pnpinfo
portsnap Remove INDEX-10 reference, as 10.x is now EoL. 2019-04-16 14:07:14 +00:00
powerd powerd.8: Improve style & fix typos 2020-03-03 13:25:08 +00:00
ppp Remove all the RELEASE_CRUNCH defines, they are useless. 2019-12-16 21:06:24 +00:00
pppctl
praliases
praudit
prometheus_sysctl_exporter
pstat - Implement -h (human readable) for the size of the underlying block disk. 2020-02-20 21:12:10 +00:00
pw pw: do not removed home directories if not owned 2020-03-23 08:23:22 +00:00
pwd_mkdb pkgbase: Put a lot of binaries and lib in FreeBSD-runtime 2019-09-05 14:13:08 +00:00
pwm Remove "all rights reserved" from copyright for the file I own. 2019-12-03 21:00:45 +00:00
quot
quotaon
rarpd
repquota
rip6query
rmt tag /etc/rmt symlink with pkgbase package 2020-02-12 17:30:09 +00:00
route6d
rpc.lockd Add and document options to allow rpc.lockd and rpc.statd to run in the 2019-11-22 16:53:30 +00:00
rpc.statd Add and document options to allow rpc.lockd and rpc.statd to run in the 2019-11-22 16:53:30 +00:00
rpc.umntall
rpc.yppasswdd yp*: fix -fno-common build 2020-04-06 23:16:05 +00:00
rpc.ypupdated yp*: fix -fno-common build 2020-04-06 23:16:05 +00:00
rpc.ypxfrd yp*: fix -fno-common build 2020-04-06 23:16:05 +00:00
rpcbind Update Makefile.depend files 2019-12-11 17:37:53 +00:00
rrenumd by specifyng we do not use yywrap we can avoid linking to libl and liby 2019-09-10 07:20:32 +00:00
rtadvctl Fix grammar. 2019-03-05 02:53:41 +00:00
rtadvd Remove obsolete compatibility code from rtadvd. 2019-07-17 16:50:53 +00:00
rtprio
rtsold Update Makefile.depend files 2019-12-11 17:37:53 +00:00
rwhod
sa Add some HISTORY sections to manpages 2020-02-19 12:49:49 +00:00
sendmail Update Makefile.depend files 2019-12-11 17:37:53 +00:00
service service(8): set the environment of the "daemon" class before invoking 2020-02-05 04:32:49 +00:00
services_mkdb Normalize deployment tools usage and definitions by putting into one place 2020-04-07 02:46:22 +00:00
sesutil sesutil: fix Coverity CIDs 2020-02-13 15:28:56 +00:00
setfib
setfmac
setpmac
smbmsg
snapinfo
spi
spkrtest
spray
syslogd Restore local kernel "prog" filtering lost in r332099. 2020-04-28 16:07:15 +00:00
sysrc Update the spelling of my name 2019-04-22 17:52:46 +00:00
tcpdchk
tcpdmatch
tcpdrop
tcpdump Remove useless linking to libl 2020-03-23 14:44:23 +00:00
tests
traceroute Update Makefile.depend files 2019-12-11 17:37:53 +00:00
traceroute6 pkgbase: Put a lot of binaries and lib in FreeBSD-runtime 2019-09-05 14:13:08 +00:00
trim trim(8): candelete() returns wrong results because fd is opened O_WRONLY 2020-04-23 20:14:59 +00:00
trpt
tzsetup Remove sparc64 ifdef 2020-02-10 17:16:41 +00:00
uathload
uefisign Stop hardcoding WARNS in uefisign(8). 2020-04-01 15:10:26 +00:00
ugidfw
uhsoctl
unbound Unbound's config.h is manually maintained, using a ./configure produced 2020-01-13 06:55:31 +00:00
usbconfig Implement dump_stats command for usbconfig(8). 2019-12-27 20:37:14 +00:00
usbdump Fix parsing of corrupt data in usbdump(8). Check that the transfer 2019-06-25 13:15:29 +00:00
utx
valectl valectl: fix typo in man page 2020-03-31 16:47:15 +00:00
vidcontrol Fix restoring the geometry when recovering from an error. Just restore the 2019-04-08 04:07:37 +00:00
vigr
vipw
wake
watch Remove sio(4). 2019-11-21 01:24:49 +00:00
watchdogd
wlandebug wlandebug: Add include path for libifconfig as it is a internallib 2020-03-25 01:31:26 +00:00
wpa Fix build when WITHOUT_WPA_SUPPLICANT_EAPOL option used. 2020-01-21 20:21:52 +00:00
yp_mkdb
ypbind
ypldap yp*: fix -fno-common build 2020-04-06 23:16:05 +00:00
yppoll
yppush Increase YPMAXRECORD to 16M to be compatible with Linux. 2019-08-12 20:27:33 +00:00
ypserv yp*: fix -fno-common build 2020-04-06 23:16:05 +00:00
ypset
zic
zonectl
zzz
Makefile retire amd(8) 2020-03-09 20:46:43 +00:00
Makefile.amd64 Remove kgzip and kgzldr. 2019-05-24 05:34:21 +00:00
Makefile.arm
Makefile.arm64
Makefile.i386 Remove kgzip and kgzldr. 2019-05-24 05:34:21 +00:00
Makefile.inc
Makefile.mips
Makefile.powerpc
Makefile.riscv