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