Feature #13821


vmmctl ioctls should have more structure

Added by Patrick Mooney about 2 years ago. Updated almost 2 years ago.

Start date:
Due date:
% Done:


Estimated time:
Gerrit CR:
External Bug:


Currently, the ioctls to create or destroy a bhyve instance pass only a pointer to the name string of the VM as their data argument. This was to mimic the sysctl interface which FreeBSD exposed to VM creation and deletion. As bhyve is built out, it is apparent that when creating an instance, other attributes in addition to the name will be useful to have at create time. Tunable max CPUs, memory allocation strategy, and adjustable VMM capabilities (like APICv) all come to mind as possible additions there. The VMM_CREATE_VM and VMM_DESTROY_VM ioctls should be updated to pass their required data via structures which can be expanded.

Actions #1

Updated by Electric Monk about 2 years ago

  • Gerrit CR set to 1522
Actions #2

Updated by Patrick Mooney almost 2 years ago

The only flag set to be passed through the new VMM_CREATE_VM ioctl is VCF_RESERVOIR_MEM, toggling behavior covered by #13833. Booting up on a platform that included this change, I confirmed that normal bhyve operation is able to create and destroy instances normally (where the flags value passed through the ioctl is properly initialized to 0). I also checked that the flag for using reservoir memory is properly interpreted to set VCF_RESERVOIR_MEM in the flags for vm creation and that the resulting VM does, in fact, allocate its memory from the existing reservoir pool.

Actions #3

Updated by Patrick Mooney almost 2 years ago

I also tested this new interface with a version of Propolis which had been updated to use the new create/destroy request interface and it functioned properly.

Actions #4

Updated by Electric Monk almost 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit b57f5d3e6a2df8d435e606797cf3934811848343

commit  b57f5d3e6a2df8d435e606797cf3934811848343
Author: Patrick Mooney <>
Date:   2021-07-27T19:26:22.000Z

    13833 want bhyve memory reservoir
    13822 bhyve memory should exert memory pressure
    13834 want extensible page_resv
    13821 vmmctl ioctls should have more structure
    Reviewed by: Andy Fiddaman <>
    Reviewed by: Jason King <>
    Reviewed by: Dan Cross <>
    Reviewed by: Hans Rosenfeld <>
    Reviewed by: Mike Zeller <>
    Approved by: Dan McDonald <>


Also available in: Atom PDF