#
cef5e56f |
|
08-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: add CAP_SEEK to our dirfd rights In the case of hostbase_fd, this is infact a bug fix; we have a seek callback that the host: filesystem may use in loader, and we really don't have a good excuse to break it. bootfd-derived fds will only be used with fdlopen(3) and rtld doesn't seem to need pread / lseek at all for it today, but there's no reason to break if it finds a good reason to later. Suggested by: markj
|
#
a4a838a3 |
|
08-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: make error printing consistent Previously we used a mix of perror(3) + exit(3) and err(3); standardize on the latter instead. This does remove one free() in an error path, because we're decidedly leaking a lot more than just the loader name there (loader handle, vcpu, vmctx...) anyways. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D43331
|
#
f9b17005 |
|
05-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: fix comment style Reported by: jrtc27 Fixes: c067be72e83 ("bhyveload: limit rights on the dirfds we create")
|
#
24cd5c26 |
|
04-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: support guest rebooting from the loader userboot has a EXIT_REBOOT code that it uses when the 'reboot' loader command is executed. Use that and longjmp back to reinit the VM entirely with a reboot request. This fixes the 'reboot' option in the loader menu to actually reboot rather than shutdown the VM. The JMP_* constants are introduced to keep track of why we're doing a longjmp, though they aren't currently used. We'll notably still do a complete reload of the interpreter to give the rebooted VM that new loader smell. It just seemed forward thinking to just keep track of the different setjmp points. While we're here, we don't actually need to keep the fd we passed to fdlopen(3), so let's avoid leaking it. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D43300
|
#
c067be72 |
|
04-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: limit rights on the dirfds we create In neither case do we need write access to the directories we're working with; userboot doesn't support fo_write on the host device, and the bootfd is only ever needed for loader loading. This improves on 8bf0882e18 ("bhyveload: enter capability mode [...]") so that arbitrary code in the loader can't open writable fds to either of the directories we need to maintain access to. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D43315
|
#
67082f07 |
|
03-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: fix non -l use explicit_loader_fd should have been initialized to -1, not 0, but my last round of testing was only with -l... Fixes: bf7c4fcbbb ("bhyveload: hold /boot and do relative [...]") Pointy hat: kevans
|
#
8bf0882e |
|
03-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: enter capability mode after we setup the vcpu Reviewed by: allanjude (earlier version), emaste, markj Differential Revision: https://reviews.freebsd.org/D43286
|
#
bf7c4fcb |
|
03-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: hold /boot and do relative lookups for the loader The next change will push bhyveload into capability mode right after we allocate vcpu state, before we've setup or entered the loader, to limit the surface area that a rogue loader script can touch. With an explicit -l loader, we don't need to preopen /boot because changing interpreters isn't allowed. We'll just dlopen() entirely in advance in that case to eliminate some complexity. Reviewed by: allanjude (earlier version), markj Differential Revision: https://reviews.freebsd.org/D43285
|
#
6779d44b |
|
03-Jan-2024 |
Kyle Evans <kevans@FreeBSD.org> |
bhyveload: use a dirfd to support -h Don't allow lookups from the loader scripts, which in rare cases may be in guest control depending on the setup, to leave the specified host root. Open the root dir and strictly do RESOLVE_BENEATH lookups from there. cb_open() has been restructured a bit to work nicely with this, using fdopendir() in the directory case and just using the fd we already opened in the regular file case. hostbase_open() was split out to provide an obvious place to apply rights(4) if that's something we care to do. Reviewed by: allanjude (earlier version), markj Differential Revision: https://reviews.freebsd.org/D43284
|
#
1d386b48 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
b3e76948 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
eebd9d53 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: Simplify BSD-2-Clause AND BSD-2-Clause After removing the -FreeBSD and -NetBSD, we're left with a nuber of BSD-2-Clause AND BSD-2-Clause, so tidy that up. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
7d9ef309 |
|
24-Mar-2023 |
John Baldwin <jhb@FreeBSD.org> |
libvmmapi: Add a struct vcpu and use it in most APIs. This replaces the 'struct vm, int vcpuid' tuple passed to most API calls and is similar to the changes recently made in vmm(4) in the kernel. struct vcpu is an opaque type managed by libvmmapi. For now it stores a pointer to the VM context and an integer id. As an immediate effect this removes the divergence between the kernel and userland for the instruction emulation code introduced by the recent vmm(4) changes. Since this is a major change to the vmmapi API, bump VMMAPI_VERSION to 0x200 (2.0) and the shared library major version. While here (and since the major version is bumped), remove unused vcpu argument from vm_setup_pptdev_msi*(). Add new functions vm_suspend_all_cpus() and vm_resume_all_cpus() for use by the debug server. The underyling ioctl (which uses a vcpuid of -1) remains unchanged, but the userlevel API now uses separate functions for global CPU suspend/resume. Reviewed by: corvink, markj Differential Revision: https://reviews.freebsd.org/D38124
|
#
ad43dd69 |
|
03-Mar-2023 |
Mark Johnston <markj@FreeBSD.org> |
bhyveload: Address compiler warnings and bump WARNS Mostly sprinkle __unused. Also duplicate strings passed to addenv() so that constant string literals can be passed. No functional change intended. Reviewed by: corvink, rew, jhb MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D38840
|
#
5a023bd2 |
|
05-Dec-2022 |
Robert Wing <rew@FreeBSD.org> |
bhyveload: open guest boot disk image O_RDWR When a boot environment has been booted via the bootonce feature, userboot clears the bootonce value from an nvlist but fails to write the updated nvlist back to disk. The failure occurs because bhyveload opens the guest boot disk image O_RDONLY, fix this by opening it O_RDWR. Reviewed by: imp, markj, jhb Differential Revision: https://reviews.freebsd.org/D37274
|
#
cc71ff72 |
|
07-Oct-2020 |
Conrad Meyer <cem@FreeBSD.org> |
bhyveload(8): Implement loader_callbacks::diskwrite The method was optional prior to r365938, which made it mandatory but did add any test that an implementation provides the method nor implement it for bhyveload. The code path might not be hit unless the user's loader was configured to write to a file on disk, such as with nextboot(8). Reviewed by: grehan, tsoome Approved by: bhyve X-MFC-With: r365938 Differential Revision: https://reviews.freebsd.org/D26710
|
#
53f151f9 |
|
25-Mar-2020 |
Simon J. Gerraty <sjg@FreeBSD.org> |
Fix pkgfs stat so it satisfies libsecureboot We need a valid st_dev, st_ino and st_mtime to correctly track which files have been verified and to update our notion of time. ve_utc_set(): ignore utc if it would jump our current time by more than VE_UTC_MAX_JUMP (20 years). Allow testing of install command via userboot. Need to fix its stat implementation too. bhyveload also needs stat fixed - due to change to userboot.h Call ve_error_get() from vectx_close() when hash is wrong. Track the names of files we have hashed into pcr For the purposes of measured boot, it is important to be able to reproduce the hash reflected in loader.ve.pcr so loader.ve.hashed provides a list of names in the order they were added. Reviewed by: imp MFC after: 1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org//D24027
|
#
a0bc451f |
|
12-Jul-2019 |
Sean Chittenden <seanc@FreeBSD.org> |
usr.sbin/bhyveload: don't leak an fd if a device can't be opened Coverity CID: 1194167 Approved by: markj, jhb Differential Revision: https://reviews.freebsd.org/D20935
|
#
d3d381b2 |
|
31-Aug-2018 |
Kyle Evans <kevans@FreeBSD.org> |
userboot: handle guest interpreter mismatches more intelligently The switch to lualoader creates a problem with userboot: the host is inclined to build userboot with Lua, but the host userboot's interpreter must match what's available on the guest. For almost all FreeBSD guests in the wild, Lua is not yet available and a Lua-based userboot will fail. This revision updates userboot protocol to version 5, which adds a swap_interpreter callback to request a different interpreter, and tries to determine the proper interpreter to be used based on how the guest /boot/loader is compiled. This is still a bit of a guess, but it's likely the best possible guess we can make in order to get it right. The interpreter is now embedded in the resulting executable, so we can open /boot/loader on the guest and hunt that down to derive the interpreter it was built with. Using -l with bhyveload will not allow an intepreter swap, even if the loader specified happens to be a userboot with the wrong interpreter. We'll simply complain about the mismatch and bail out. For legacy guests without the interpreter marker, we assume they're 4th. For new guests with the interpreter marker, we'll read it and swap over to the proper interpreter if it doesn't match what the userboot we're using was compiled with. Both flavors of userboot are installed by default, userboot_4th.so and userboot_lua.so. This fixes the build WITHOUT_FORTH as a coincidence, which was broken by userboot being forced to 4th. Reviewed by: imp, jhb, araujo (earlier version) Approved by: re (gjb) Differential Revision: https://reviews.freebsd.org/D16945
|
#
55afc65e |
|
12-Jun-2018 |
Marcelo Araujo <araujo@FreeBSD.org> |
style(9) remove unnecessary blank tabs. Obtained from: TrueOS MFC after: 4 weeks. Sponsored by: iXsystems Inc.
|
#
cb37fc82 |
|
05-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
De-const to match changes in userboot.h Sponsored by: Netflix
|
#
e8e6a5f9 |
|
05-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Make putenv and getenv match the userland definition of these functions, tweak man page and one variable that shouldn't be const anymore. Sponsored by: Netflix
|
#
1de7b4b8 |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
various: general adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. No functional change intended.
|
#
6589ee29 |
|
21-Jun-2017 |
Andriy Gapon <avg@FreeBSD.org> |
bhyveload: correctly query size of disks On FreeBSD fstat(2) works fine for querying sizes of plain files, but not so much for character devices. So, use DIOCGMEDIASIZE to try to get the correct size for disks and disk-like devices (e.g. zvols). PR: 220186 Reviewed by: tsoome, grehan MFC after: 1 week
|
#
6ee52c65 |
|
26-Jun-2016 |
Roman Bogorodskiy <novel@FreeBSD.org> |
bhyve: improve memory size documentation A couple of minor memory size option related nits: - use common name 'memsize' (instead of 'max-size' or just 'size') - bhyve: update usage with memsize unit suffix, drop legacy "MB" unit - bhyveload: update usage with memsize unit suffix - bhyve(8): document default size - bhyveload(8): use memsize formatting like it's done in bhyve(8) Reviewed by: wblock, grehan Approved by: re (kib), wblock, grehan Differential Revision: https://reviews.freebsd.org/D6952
|
#
8f61276d |
|
05-Apr-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
bhyveload: fix from loading undefined size. We were setting an incorrect/undefined size and as it came out the st struct was not really being used at all. This was actually a bug but by sheer luck it had no visual effect. CID: 1194320 Reviewed by: grehan
|
#
568e3a8d |
|
26-Feb-2016 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Add option -C to have the guest memory included in core files. This aids in debugging OS loaders.
|
#
48f337b8 |
|
26-Feb-2016 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Support version 4 of the userboot structure by implementing the vm_set_register() and vm_set_desc() callbacks.
|
#
8c96dcc1 |
|
07-Oct-2015 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Add option -l for specifying which OS loader to dlopen(3). By default this is /boot/userboot.so. This option allows for the development and use of other OS loaders.
|
#
9b1aa8d6 |
|
18-Jun-2015 |
Neel Natu <neel@FreeBSD.org> |
Restructure memory allocation in bhyve to support "devmem". devmem is used to represent MMIO devices like the boot ROM or a VESA framebuffer where doing a trap-and-emulate for every access is impractical. devmem is a hybrid of system memory (sysmem) and emulated device models. devmem is mapped in the guest address space via nested page tables similar to sysmem. However the address range where devmem is mapped may be changed by the guest at runtime (e.g. by reprogramming a PCI BAR). Also devmem is usually mapped RO or RW as compared to RWX mappings for sysmem. Each devmem segment is named (e.g. "bootrom") and this name is used to create a device node for the devmem segment (e.g. /dev/vmm/testvm.bootrom). The device node supports mmap(2) and this decouples the host mapping of devmem from its mapping in the guest address space (which can change). Reviewed by: tychon Discussed with: grehan Differential Revision: https://reviews.freebsd.org/D2762 MFC after: 4 weeks
|
#
0db293c1 |
|
18-May-2015 |
Allan Jude <allanjude@FreeBSD.org> |
Fix off-by-one in array index bounds check bhyveload would allow you to create 33 entries on an array that only has 32 slots Differential Revision: https://reviews.freebsd.org/D2569 Reviewed by: araujo Approved by: neel MFC after: 1 week Sponsored by: ScaleEngine Inc.
|
#
cde1f5b8 |
|
27-Jun-2014 |
John Baldwin <jhb@FreeBSD.org> |
Sort command flags in usage output and the manpages.
|
#
be679db4 |
|
23-Jun-2014 |
Neel Natu <neel@FreeBSD.org> |
Provide APIs to directly get 'lowmem' and 'highmem' size directly. Previously the sizes were inferred indirectly based on the size of the mappings at 0 and 4GB respectively. This works fine as long as size of the allocation is identical to the size of the mapping in the guest's address space. However, if the mapping is disjoint then this assumption falls apart (e.g., due to the legacy BIOS hole between 640KB and 1MB).
|
#
5fcf252f |
|
07-Jun-2014 |
Neel Natu <neel@FreeBSD.org> |
Add ioctl(VM_REINIT) to reinitialize the virtual machine state maintained by vmm.ko. This allows the virtual machine to be restarted without having to destroy it first. Reviewed by: grehan
|
#
cf087c12 |
|
22-Feb-2014 |
Peter Grehan <grehan@FreeBSD.org> |
ZFS boot support for bhyveload. Modelled after the i386 zfsloader. However, with no 2nd stage zfsboot to search for a bootable dataset, attempt a ZFS boot if there is more than one ZFS dataset found during the disk probe. sys/boot/userboot/zfs - build the ZFS boot library sys/boot/userboot/userboot/ conf.c - Add the ZFS pool and filesystem tables devicename.c - correctly format ZFS devices main.c - increase the size of the libstand malloc pool to account for the increased usage from ZFS buffers - probe for a ZFS dataset, and if one is found, attempt to boot from it. usr.sbin/bhyveload/bhyveload.c - allow multiple invocations of the '-d' option to specify multiple disks e.g. a raidz set. Up to 32 disks are supported. Tested with various combinations of GPT, MBR, single and multiple disks, RAID-Z, mirrors. Reviewed by: neel Discussed with: avg Tested by: Michael Dexter and others MFC after: 3 weeks
|
#
00f3efe1 |
|
04-Feb-2014 |
John Baldwin <jhb@FreeBSD.org> |
Add support for FreeBSD/i386 guests under bhyve. - Similar to the hack for bootinfo32.c in userboot, define _MACHINE_ELF_WANT_32BIT in the load_elf32 file handlers in userboot. This allows userboot to load 32-bit kernels and modules. - Copy the SMAP generation code out of bootinfo64.c and into its own file so it can be shared with bootinfo32.c to pass an SMAP to the i386 kernel. - Use uint32_t instead of u_long when aligning module metadata in bootinfo32.c in userboot, as otherwise the metadata used 64-bit alignment which corrupted the layout. - Populate the basemem and extmem members of the bootinfo struct passed to 32-bit kernels. - Fix the 32-bit stack in userboot to start at the top of the stack instead of the bottom so that there is room to grow before the kernel switches to its own stack. - Push a fake return address onto the 32-bit stack in addition to the arguments normally passed to exec() in the loader. This return address is needed to convince recover_bootinfo() in the 32-bit locore code that it is being invoked from a "new" boot block. - Add a routine to libvmmapi to setup a 32-bit flat mode register state including a GDT and TSS that is able to start the i386 kernel and update bhyveload to use it when booting an i386 kernel. - Use the guest register state to determine the CPU's current instruction mode (32-bit vs 64-bit) and paging mode (flat, 32-bit, PAE, or long mode) in the instruction emulation code. Update the gla2gpa() routine used when fetching instructions to handle flat mode, 32-bit paging, and PAE paging in addition to long mode paging. Don't look for a REX prefix when the CPU is in 32-bit mode, and use the detected mode to enable the existing 32-bit mode code when decoding the mod r/m byte. Reviewed by: grehan, neel MFC after: 1 month
|
#
384305ff |
|
26-Nov-2013 |
Peter Grehan <grehan@FreeBSD.org> |
Don't create an initial value for the host filesystem of "/". This has the unintended effect of booting the host kernel if a disk image open fails. Discussed with: neel
|
#
6380102c |
|
26-Nov-2013 |
Peter Grehan <grehan@FreeBSD.org> |
Allow bhyve and bhyveload to attach to tty devices. bhyveload: introduce the -c <device> parameter to select a tty for output (or "stdio") bhyve: allow the puc and lpc-com backends to accept a tty in addition to "stdio" When used in conjunction with the null-modem device, nmdm(4), this allows attach/detach to the guest console and multiple concurrent serial ports. kgdb on a serial port is now functional. Reviewed by: neel Requested by: Almost everyone that has used bhyve MFC after: 10.0
|
#
b5331f4d |
|
23-Oct-2013 |
Neel Natu <neel@FreeBSD.org> |
Tidy usage messages for bhyve and bhyveload. Submitted by: jhb
|
#
b6afa84b |
|
16-Oct-2013 |
Neel Natu <neel@FreeBSD.org> |
Add an option to bhyveload(8) that allows setting a loader environment variable from the command line. The option syntax is "-e <name=value>". It may be used multiple times to set multiple environment variables. Reviewed by: grehan Requested by: alfred
|
#
200758f1 |
|
08-Oct-2013 |
Neel Natu <neel@FreeBSD.org> |
Parse the memory size parameter using expand_number() to allow specifying the memory size more intuitively (e.g. 512M, 4G etc). Submitted by: rodrigc Reviewed by: grehan Approved by: re (blanket)
|
#
318224bb |
|
05-Oct-2013 |
Neel Natu <neel@FreeBSD.org> |
Merge projects/bhyve_npt_pmap into head. Make the amd64/pmap code aware of nested page table mappings used by bhyve guests. This allows bhyve to associate each guest with its own vmspace and deal with nested page faults in the context of that vmspace. This also enables features like accessed/dirty bit tracking, swapping to disk and transparent superpage promotions of guest memory. Guest vmspace: Each bhyve guest has a unique vmspace to represent the physical memory allocated to the guest. Each memory segment allocated by the guest is mapped into the guest's address space via the 'vmspace->vm_map' and is backed by an object of type OBJT_DEFAULT. pmap types: The amd64/pmap now understands two types of pmaps: PT_X86 and PT_EPT. The PT_X86 pmap type is used by the vmspace associated with the host kernel as well as user processes executing on the host. The PT_EPT pmap is used by the vmspace associated with a bhyve guest. Page Table Entries: The EPT page table entries as mostly similar in functionality to regular page table entries although there are some differences in terms of what bits are used to express that functionality. For e.g. the dirty bit is represented by bit 9 in the nested PTE as opposed to bit 6 in the regular x86 PTE. Therefore the bitmask representing the dirty bit is now computed at runtime based on the type of the pmap. Thus PG_M that was previously a macro now becomes a local variable that is initialized at runtime using 'pmap_modified_bit(pmap)'. An additional wrinkle associated with EPT mappings is that older Intel processors don't have hardware support for tracking accessed/dirty bits in the PTE. This means that the amd64/pmap code needs to emulate these bits to provide proper accounting to the VM subsystem. This is achieved by using the following mapping for EPT entries that need emulation of A/D bits: Bit Position Interpreted By PG_V 52 software (accessed bit emulation handler) PG_RW 53 software (dirty bit emulation handler) PG_A 0 hardware (aka EPT_PG_RD) PG_M 1 hardware (aka EPT_PG_WR) The idea to use the mapping listed above for A/D bit emulation came from Alan Cox (alc@). The final difference with respect to x86 PTEs is that some EPT implementations do not support superpage mappings. This is recorded in the 'pm_flags' field of the pmap. TLB invalidation: The amd64/pmap code has a number of ways to do invalidation of mappings that may be cached in the TLB: single page, multiple pages in a range or the entire TLB. All of these funnel into a single EPT invalidation routine called 'pmap_invalidate_ept()'. This routine bumps up the EPT generation number and sends an IPI to the host cpus that are executing the guest's vcpus. On a subsequent entry into the guest it will detect that the EPT has changed and invalidate the mappings from the TLB. Guest memory access: Since the guest memory is no longer wired we need to hold the host physical page that backs the guest physical page before we can access it. The helper functions 'vm_gpa_hold()/vm_gpa_release()' are available for this purpose. PCI passthru: Guest's with PCI passthru devices will wire the entire guest physical address space. The MMIO BAR associated with the passthru device is backed by a vm_object of type OBJT_SG. An IOMMU domain is created only for guest's that have one or more PCI passthru devices attached to them. Limitations: There isn't a way to map a guest physical page without execute permissions. This is because the amd64/pmap code interprets the guest physical mappings as user mappings since they are numerically below VM_MAXUSER_ADDRESS. Since PG_U shares the same bit position as EPT_PG_EXECUTE all guest mappings become automatically executable. Thanks to Alan Cox and Konstantin Belousov for their rigorous code reviews as well as their support and encouragement. Thanks for John Baldwin for reviewing the use of OBJT_SG as the backing object for pci passthru mmio regions. Special thanks to Peter Holm for testing the patch on short notice. Approved by: re Discussed with: grehan Reviewed by: alc, kib Tested by: pho
|
#
b060ba50 |
|
18-Mar-2013 |
Neel Natu <neel@FreeBSD.org> |
Simplify the assignment of memory to virtual machines by requiring a single command line option "-m <memsize in MB>" to specify the memory size. Prior to this change the user needed to explicitly specify the amount of memory allocated below 4G (-m <lowmem>) and the amount above 4G (-M <highmem>). The "-M" option is no longer supported by 'bhyveload' and 'bhyve'. The start of the PCI hole is fixed at 3GB and cannot be directly changed using command line options. However it is still possible to change this in special circumstances via the 'vm_set_lowmem_limit()' API provided by libvmmapi. Submitted by: Dinakar Medavaram (initial version) Reviewed by: grehan Obtained from: NetApp
|
#
e37bc321 |
|
07-Jan-2013 |
Neel Natu <neel@FreeBSD.org> |
Reduce the default memory allocation for a VM from 768MB to 128MB. Obtained from: NetApp
|
#
c3e9ce33 |
|
06-Nov-2012 |
Neel Natu <neel@FreeBSD.org> |
Use the new userboot 'getenv' callback to set a couple of environment variables in the guest. The variables are: smbios.bios.vendor=BHYVE and boot_serial=1 The FreeBSD guest uses the "smbios.bios.vendor" environment variable to detect whether or not it is running as a guest inside a hypervisor. The "boot_serial=1" is temporary and will be dropped when bhyve can do VGA emulation. Obtained from: NetApp
|
#
c487da1e |
|
06-Jul-2011 |
Neel Natu <neel@FreeBSD.org> |
'bhyveload' is a userspace FreeBSD loader that can load the kernel + metadata inside a BHyVe-based virtual machine. It is a thin wrapper on top of userboot.so which is a variant of the FreeBSD loader packaged as a shared library. 'bhyveload' provides callbacks that are utilized by userboot.so to do things like console i/o, disk i/o, set virtual machine registers etc. Thanks for Doug Rabson (dfr@) for making this happen.
|