Hi, On Fri, Jan 27, 2023 at 11:39:05AM +0000, Suzuki K Poulose wrote: > From: Alexandru Elisei <alexandru.elisei@xxxxxxx> > > Commit e66942073035 ("kvm tools: Guest kernel compatability") added the > functionality that enables devices to print a warning message if the device > hasn't been initialized by the time the VM is destroyed. The purpose of > these messages is to let the user know if the kernel hasn't been built with > the correct Kconfig options to take advantage of the said devices (all > using virtio). > > Since then, kvmtool has evolved and now supports loading different payloads > (like firmware images), and having those warnings even when it is entirely > intentional for the payload not to touch the devices can be confusing for > the user and makes the output unnecessarily verbose in those cases. > > Add the --nocompat option to disable the warnings; the warnings are still > enabled by default. I had a conversation with Will regarding this some time ago, we settled on a different approach, by using --loglevel=<level>, similar to what Linux does. I'll put that on my TODO list and try to send patches soon-ish. Thanks, Alex > > Reported-by: Christoffer Dall <christoffer.dall@xxxxxxx> > Signed-off-by: Alexandru Elisei <alexandru.elisei@xxxxxxx> > Signed-off-by: Suzuki K Poulose <suzuki.poulose@xxxxxxx> > --- > builtin-run.c | 5 ++++- > guest_compat.c | 1 + > include/kvm/kvm-config.h | 1 + > 3 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/builtin-run.c b/builtin-run.c > index bb7e6e8d..f8edfb3f 100644 > --- a/builtin-run.c > +++ b/builtin-run.c > @@ -183,6 +183,8 @@ static int mem_parser(const struct option *opt, const char *arg, int unset) > OPT_BOOLEAN('\0', "nodefaults", &(cfg)->nodefaults, "Disable" \ > " implicit configuration that cannot be" \ > " disabled otherwise"), \ > + OPT_BOOLEAN('\0', "nocompat", &(cfg)->nocompat, "Disable" \ > + " compat warnings"), \ > OPT_CALLBACK('\0', "9p", NULL, "dir_to_share,tag_name", \ > "Enable virtio 9p to share files between host and" \ > " guest", virtio_9p_rootdir_parser, kvm), \ > @@ -797,7 +799,8 @@ static int kvm_cmd_run_work(struct kvm *kvm) > > static void kvm_cmd_run_exit(struct kvm *kvm, int guest_ret) > { > - compat__print_all_messages(); > + if (!kvm->cfg.nocompat) > + compat__print_all_messages(); > > init_list__exit(kvm); > > diff --git a/guest_compat.c b/guest_compat.c > index fd4704b2..a413c12c 100644 > --- a/guest_compat.c > +++ b/guest_compat.c > @@ -88,6 +88,7 @@ int compat__print_all_messages(void) > > printf("\n # KVM compatibility warning.\n\t%s\n\t%s\n", > msg->title, msg->desc); > + printf("\tTo stop seeing this warning, use the --nocompat option.\n"); > > list_del(&msg->list); > compat__free(msg); > diff --git a/include/kvm/kvm-config.h b/include/kvm/kvm-config.h > index 368e6c7d..88df7cc2 100644 > --- a/include/kvm/kvm-config.h > +++ b/include/kvm/kvm-config.h > @@ -30,6 +30,7 @@ struct kvm_config { > u64 vsock_cid; > bool virtio_rng; > bool nodefaults; > + bool nocompat; > int active_console; > int debug_iodelay; > int nrcpus; > -- > 2.34.1 >