[libvirt] [PATCH] virt-host-validate: warn if kvm_hv is not loaded for POWER hosts

Daniel Henrique Barboza danielhb413 at gmail.com
Fri Mar 13 16:28:51 UTC 2020


Hey Cole. I took my sweet time but I got some answers here:

On 12/17/19 2:58 PM, Cole Robinson wrote:
> On 12/12/19 4:11 PM, Daniel Henrique Barboza wrote:
>> POWER hosts does not implement CPU virtualization extensions like
>> x86 or s390x. Instead, all bare-metal POWER hosts are considered
>> to be virtualization ready.
>>
>> For POWER, the validation is done by checking the virtualization
>> kernel modules, kvm_hv and kvm_pr, to see if they are either not
>> installed or not loaded in the host. If the KVM modules aren't
>> present, we should not just warn but fail to validate.
>>
>> This patch implements this support. If kvm_hv is not installed,
>> which can be determined by 'modinfo' returning not-zero return
>> code, fail the verification. If kvm_hv is installed but not
>> loaded, show a warning. The exception are POWER8 hosts, which can
>> work with kvm_pr. In its case, ACK the use of kvm_pr if kvm_hv
>> is not loaded/present.
> 
> For x86, we check for /dev/kvm being available and usable. This side
> steps whether kvm is a module or not, in theory it could be compiled
> into the kernel. Is there anything in /dev we can check for power8?

The device /dev/kvm exists in Power even without the KVM module loaded.
This is why we must check for kvm being loaded instead of relying in the
/dev/kvm device being present.

About KVM being compiled into the kernel, this is not possible for ppc64
at all - it must be a module. And in a quick check here it seems to be
case for KVM_INTEL as well - you can choose either 'm' or 'N' in the
config. You can't built it in the kernel.


> 
> I don't follow the reasoning for for why the module is installed vs
> loaded matters for FAIL vs WARN. Can you expand on that a bit more?
> 
> Rather than parsing /proc/modinfo, can we check for /sys/module/$modname
> instead, or something under that directory?


I'll drop the verification I was doing with modinfo to check for the
module existence. Instead I'll just check for the 'kvm_hv' module being
loaded and fire a WARN in case it isn't, regardless of being a Power 8
that can work with kvm_pr. This can be done by checking /proc/modules.

kvm_pr is too slow for most usages and, now that PowerPC has nested
support with kvm_hv, kvm_pr is now even more niche. The average user will want
to use kvm_hv instead.




Thanks,


DHB


> 
> - Cole
> 




More information about the libvir-list mailing list