Re: [PATCH v2] kvm: x86: Limit the number of "kvm: disabled by bios" messages

From: Paolo Bonzini
Date: Fri Feb 28 2020 - 05:37:42 EST


On 27/02/20 19:00, Erwan Velu wrote:
> In older version of systemd(219), at boot time, udevadm is called with :
> /usr/bin/udevadm trigger --type=devices --action=add"
>
> This program generates an echo "add" in /sys/devices/system/cpu/cpu<x>/uevent,
> leading to the "kvm: disabled by bios" message in case of your Bios disabled
> the virtualization extensions.
>
> On a modern system running up to 256 CPU threads, this pollutes the Kernel logs.
>
> This patch offers to ratelimit this message to avoid any userspace program triggering
> this uevent printing this message too often.
>
> This patch is only a workaround but greatly reduce the pollution without
> breaking the current behavior of printing a message if some try to instantiate
> KVM on a system that doesn't support it.
>
> Note that recent versions of systemd (>239) do not have trigger this behavior.
>
> This patch will be useful at least for some using older systemd with recent Kernels.
>
> Signed-off-by: Erwan Velu <e.velu@xxxxxxxxxx>
> ---
> arch/x86/kvm/x86.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 359fcd395132..c8a90231befe 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -7308,12 +7308,12 @@ int kvm_arch_init(void *opaque)
> }
>
> if (!ops->cpu_has_kvm_support()) {
> - printk(KERN_ERR "kvm: no hardware support\n");
> + pr_err_ratelimited("kvm: no hardware support\n");
> r = -EOPNOTSUPP;
> goto out;
> }
> if (ops->disabled_by_bios()) {
> - printk(KERN_ERR "kvm: disabled by bios\n");
> + pr_err_ratelimited("kvm: disabled by bios\n");
> r = -EOPNOTSUPP;
> goto out;
> }
>

Queued, thanks.

Paolo