Checking bhyve supported features (sysctls)

Matt Churchyard matt.churchyard at userve.net
Thu Aug 16 16:01:28 UTC 2018


> Hello,
> 
> I'm looking for better ways to check for bhyve support / available features without trying to scan through dmesg output.

>Yes, it would be very good to remove that, as it usually tries to grep a non-existent file /var/run/dmesg.boot that is not created until after vm_bhyve has been called from /usr/local/etc/rc.d when you have things set to autostartup >in /etc/rc.conf


> 
> I notice that the following 2 sysctl's appear to be set to 1 as soon 
> as the vmm module is loaded
> 
> hw.vmm.vmx.initialized: 1
> hw.vmm.vmx.cap.unrestricted_guest: 1
> 
> Will these be available on both Intel & AMD processors as a way to determine if the module has loaded successfully and can run guests?
> 
> I also see the below sysctl related to iommu.
> 
> hw.vmm.iommu.initialized
> 
> Again, will this be set to 1 as soon as the module is loaded if iommu is supported, or only when it is used?
> There also seems to be a vmm.amdvi.enable sysctl. Would both these need checking or is vmm.iommu enough to determine support on any processor.

>Probalby the safest way for a shell script to decide if bhyve is up and running is to stat /dev/vmm, if that exists then the modules have loaded and initialized and bhyve should be ready to process guests.

Hmm, I don't get /dev/vmm unless I actually have running guests.

>sysctl's mentiond above would be a poor way to make this determination.

It would be nice if sysctls were better documented. If vmx.initialized is set once vmm has successfully loaded, I can't see a better way of checking for bhyve support (assuming it's not Intel specific). This entry definitely exists and is set to 0 if you load the module on a non-supported system, and set to 1 as soon as vmm loads on my Intel test system.

Matt

-- 
Rod Grimes                                                 rgrimes at freebsd.org


More information about the freebsd-virtualization mailing list