freebsd-dev/sys/modules
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
..
3dfx
3dfx_linux
aac
aacraid [aacraid] Port driver to big-endian 2020-03-05 20:04:41 +00:00
accf_data
accf_dns
accf_http
acl_nfs4
acl_posix1e
acpi
adlink
ae
aesni Move all sources from the llvm project into contrib/llvm-project. 2019-12-20 19:53:05 +00:00
age
agp
ahci
aic7xxx
alc
ale
allwinner arm: allwinner: aw_mmc: Make it possible to unload the module 2020-04-16 16:00:21 +00:00
alq
am335x_dmtpps
amd_ecc_inject
amdgpio
amdsbwd
amdsmb
amdsmn
amdtemp
amr
an
aout
apm
ar71xx
arcmsr
arm_ti Add module makefiles for Texas Instruments ARM SoCs. 2019-06-16 01:22:44 +00:00
armv8crypto
asmc
ata
ath
ath_ahb
ath_dfs
ath_hal
ath_hal_ar5210
ath_hal_ar5211
ath_hal_ar5212
ath_hal_ar5416
ath_hal_ar9300
ath_main
ath_pci
ath_rate
autofs
bce
bcm283x_clkman
bcm283x_pwm
bfe
bge Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
bhnd
bios
blake2 Move all sources from the llvm project into contrib/llvm-project. 2019-12-20 19:53:05 +00:00
bnxt
bridgestp
bwi
bwn
bxe
bytgpio
cam We don't need $M/$M in the path anymore. 2020-03-15 17:40:14 +00:00
cardbus
carp
cas Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
cbb We'll never have multiple slots a cardbus bridge. So, replace exca 2019-12-16 21:34:51 +00:00
cc
ccp
cd9660
cd9660_iconv
ce Disable new clang 10.0.0 warnings about misleading indentation in ce(4) 2020-02-13 19:25:49 +00:00
cfi
cfiscsi
chromebook_platform
chvgpio
ciss
cloudabi
cloudabi32
cloudabi64
cmx
coretemp
cp Disable new clang 10.0.0 warnings about misleading indentation in ce(4) 2020-02-13 19:25:49 +00:00
cpsw
cpuctl
cpufreq cpufreq(4): Add support for Intel Speed Shift 2020-01-22 23:28:42 +00:00
crypto Expose zlib's utility functions in Z_SOLO library when building kernel. 2019-08-07 01:41:17 +00:00
cryptodev
ctl
cuse
cxgb None of these use opt_sched.h 2020-04-28 16:09:18 +00:00
cxgbe None of these use opt_sched.h 2020-04-28 16:09:18 +00:00
dc
dcons
dcons_crom
dpms
dtb modules: dtb: allwinner: Remove sun50i-a64-sid.dtso 2020-04-14 22:16:40 +00:00
dtrace Stop compiling dtrace modules with -DSMP. 2020-02-05 19:08:45 +00:00
dummynet
efirt Add missing DPSRCS entry for assym.inc. 2019-06-11 23:35:49 +00:00
em Use symlinks for kernel modules rather than hardlinks 2019-04-20 12:51:05 +00:00
ena Introduce NETMAP support in ENA 2019-10-31 15:51:18 +00:00
epoch_test
esp Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
et
evdev
exca
ext2fs
fdc
fdescfs
fdt
ffec
filemon
firewire
firmware
fusefs Remove the fuse.ko -> fusefs.ko symlink 2019-08-07 20:28:27 +00:00
fxp
gem Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
geom Remove GEOM_SCHED class and gsched tool. 2019-12-29 21:16:03 +00:00
glxiic
glxsb
gpio Add module build stuff for gpioths(4), a driver for DHT11/DHT22 sensors. 2019-12-07 17:54:40 +00:00
hifn
hme Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
hpt27xx
hptiop
hptmv Harmonize the hptmv blob's build rule with that of other hpt* drivers. 2019-10-02 16:18:50 +00:00
hptnr
hptrr
hwpmc Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
hwpmc_mips24k Add dependent header files 2019-03-28 08:30:45 +00:00
hwpmc_mips74k Add dependent header files 2019-03-28 08:30:45 +00:00
hyperv
i2c iicbus(4): Add support for ACPI-based children enumeration 2020-03-09 20:31:38 +00:00
iavf Use symlinks for kernel modules rather than hardlinks 2019-04-20 12:51:05 +00:00
ibcore Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
ichwd
ida
if_bridge
if_disc
if_edsc
if_enc
if_epair
if_gif
if_gre Add GRE-in-UDP encapsulation support as defined in RFC8086. 2019-04-24 09:05:45 +00:00
if_lagg modules: adding some missing opt_* dependencies 2020-01-29 22:43:56 +00:00
if_me
if_ndis
if_stf
if_tuntap if_tuntap: remove if_{tun,tap}.ko -> if_tuntap.ko links 2019-10-21 20:28:38 +00:00
if_vlan modules: adding some missing opt_* dependencies 2020-01-29 22:43:56 +00:00
if_vxlan
iflib Fix make in sys/modules 2019-03-28 08:59:11 +00:00
iir
imgact_binmisc
imx
intelspi
io
ioat
ip6_mroute_mod
ip_mroute_mod
ipdivert
ipfilter Whitespace adjustment. 2019-06-06 03:02:25 +00:00
ipfw
ipfw_nat
ipfw_nat64 Follow RFC 4443 p2.2 and always use own addresses for reflected ICMPv6 2019-12-12 13:28:46 +00:00
ipfw_nptv6
ipfw_pmod
ipmi
ipoib Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
ips
ipsec Revert r347402. After r347429 symlink is no longer needed. 2019-05-13 08:34:13 +00:00
ipw
ipwfw
isci
iscsi
iscsi_initiator
iser Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
isp Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
ispfw Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
itwd itwd(4): driver for watchdog function in ITE Super I/O chips 2019-10-16 14:57:38 +00:00
iwi
iwifw
iwm iwm: Add device configuration definitions for 9000-series chips. 2019-11-07 23:35:54 +00:00
iwmfw Downgrade the firmware images imported in r354201. 2019-11-03 03:23:27 +00:00
iwn
iwnfw Stop using .OODATE for extracting firmware. 2019-06-12 00:03:00 +00:00
ix Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
ixl
ixv Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
jme
kbdmux
kgssapi
kgssapi_krb5 Remove support for Kernel GSS algorithms deprecated in r348875. 2020-04-10 23:08:41 +00:00
khelp
krpc Split XDR into separate kernel module. Make krpc depend on xdr. 2020-04-17 06:04:20 +00:00
ksyms
ktls_ocf Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
le Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
lge
libalias
libiconv
libmchain
lindebugfs Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
linprocfs Add warning to the Linuxulator makefiles that building it outside of a 2019-05-13 18:28:40 +00:00
linsysfs Add warning to the Linuxulator makefiles that building it outside of a 2019-05-13 18:28:40 +00:00
linux More fixes to build the kernel with a compiler that defaults to -fno-common 2020-04-18 12:54:40 +00:00
linux64 More fixes to build the kernel with a compiler that defaults to -fno-common 2020-04-18 12:54:40 +00:00
linux_common Add warning to the Linuxulator makefiles that building it outside of a 2019-05-13 18:28:40 +00:00
linuxkpi Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
lio Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_ntpd
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
mac_veriexec
mac_veriexec_sha1
mac_veriexec_sha256
mac_veriexec_sha384
mac_veriexec_sha512
malo
md
mdio
mem
mfi
mgb Introduce if_mgb driver for Microchip LAN743x PCIe NIC 2019-11-06 19:51:40 +00:00
mii
mlx
mlx4 Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx4en Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx4ib Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx5 Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx5en Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx5fpga_tools Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlx5ib Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mlxfw Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mly
mmc
mmcnull
mmcsd
mpr
mps
mpt
mqueue
mrsas
msdosfs
msdosfs_iconv
msk
mthca Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
mvs
mwl
mwlfw Stop using .OODATE for extracting firmware. 2019-06-12 00:03:00 +00:00
mxge Expose zlib's utility functions in Z_SOLO library when building kernel. 2019-08-07 01:41:17 +00:00
my
nctgpio
ndis
netfpga10g
netgraph ng_ubt(4): do not attach Intel Wireless 8260/8265 in bootloader mode. 2019-08-18 22:11:42 +00:00
netmap
nfe
nfscl
nfscommon Fix build in sys/modules/nfscommon 2019-04-10 16:48:45 +00:00
nfsd Re-organize the NFS file handle affinity code for the NFS server. 2020-04-14 00:01:26 +00:00
nfslockd
nfssvc
nge
nmdm
ntb Forgotten part of r351137. 2019-08-16 20:30:31 +00:00
nullfs
nvd
nvdimm nvdimm(4): Fix Clang build after r353110 2019-10-04 21:47:09 +00:00
nvme Create a AHCI attachment for nvme. 2019-08-21 22:18:01 +00:00
nvram
oce Remove more manual additions of -DSMP. 2020-02-06 21:01:19 +00:00
ocs_fc Don't delete .depend files outside of cleandepend. 2019-06-12 23:09:10 +00:00
opal_nvram powerpc64/powernv: Add opal NVRAM driver for PowerNV systems 2019-09-14 03:30:34 +00:00
opensolaris Export cpu_core from opensolaris.ko. 2019-04-20 11:34:53 +00:00
otus
otusfw
ow
padlock
padlock_rng
pccard
pcfclock
pchtherm Add Platform Controller Hub built-in thermal management device driver. 2020-03-31 06:25:43 +00:00
pf Add a missing include of opt_sctp.h. 2019-10-12 23:01:16 +00:00
pflog
pfsync
plip
pms
powermac_nvram
ppbus
ppc
ppi
pps
procfs Retire procfs-based process debugging. 2020-04-01 19:22:09 +00:00
proto
pseudofs
pst
pty
puc
pwm Add ofw_pwmbus to enumerate pwmbus devices on systems configured with fdt 2019-06-17 03:32:05 +00:00
qlnx Introduce LINUXKPI_GENSRCS. 2020-03-20 21:06:58 +00:00
qlxgb
qlxgbe
qlxge
ral
ralfw Stop using .OODATE for extracting firmware. 2019-06-12 00:03:00 +00:00
random_fortuna
random_other
rc
rc4
rccgpio
rdma None of these use opt_sched.h 2020-04-28 16:09:18 +00:00
rdrand_rng
re
rl
rndtest
rockchip arm64: rockchip: Add a module for rk_spi 2020-01-02 17:44:41 +00:00
rp
rpi_ft5406
rtwn
rtwn_pci
rtwn_usb
rtwnfw Stop using .OODATE for extracting firmware. 2019-06-12 00:03:00 +00:00
s3
safe
sbni
scc Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
sdhci
sdhci_acpi
sdhci_pci
sdio Add opt_cam.h so we can build this outside of a kernel build. 2019-06-13 22:03:53 +00:00
sem
send
sfxge None of these use opt_sched.h 2020-04-28 16:09:18 +00:00
sge
sgx
sgx_linux
siftr
siis
sis
sk
smartpqi
smbfs
snp
sound Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
speaker
spi
spigen
splash
sppp
ste
stge
superio add superio driver 2019-07-01 17:05:41 +00:00
sym
syscons Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
sysvipc
tcp This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control. This 2019-09-24 18:18:11 +00:00
tests
ti Add module makefiles for Texas Instruments ARM SoCs. 2019-06-16 01:22:44 +00:00
tmpfs Make TMPFS_PAGES_MINRESERVED a kernel option 2019-03-25 07:46:20 +00:00
toecore
tpm Revert r357349, since the clang 10.0.0 warning was actually correct, and 2020-02-01 16:57:04 +00:00
tsec
twa
twe
tws
uart Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00
ubsec
ubser
uchcom
ucycom
udf
udf_iconv
ufs
uinput
unionfs
usb Fix build of stand/usb . 2020-01-23 10:40:34 +00:00
veriexec
vesa
vge
viawd
videomode
virtio
vkbd
vmd This driver attaches to the Intel VMD drive and connects a new PCI domain 2019-10-10 03:12:17 +00:00
vmm Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
vmware vmxnet3: add support for RSS kernel option 2020-01-23 11:05:03 +00:00
vnic
vr
vte
wbwd
wi
wlan
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi
wpifw
wtap
x86bios
xdr Split XDR into separate kernel module. Make krpc depend on xdr. 2020-04-17 06:04:20 +00:00
xl
xz
zfs Remove duplicate lz4 implementations 2019-11-02 12:28:04 +00:00
zlib Remove zlib 1.0.4 from kernel. 2019-08-25 17:13:00 +00:00
Makefile Split XDR into separate kernel module. Make krpc depend on xdr. 2020-04-17 06:04:20 +00:00
Makefile.inc