Commit 168ccc11 authored by Jan Kiszka's avatar Jan Kiszka Committed by Blue Swirl
Browse files

kvm: Improve upgrade notes when facing unsupported kernels



Users complained that it is not obvious what to do when kvm refuses to
build or run due to an unsupported host kernel, so let's improve the
hints.

Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
parent 4ca1a9c6
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1158,7 +1158,9 @@ EOF
	| grep "error: " \
	| awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'`
      if test "$kvmerr" != "" ; then
        kvm="no - (${kvmerr})"
        kvm="no - (${kvmerr})\n\
    NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \
recent kvm-kmod from http://sourceforge.net/projects/kvm."
      fi
    fi
  fi
@@ -1377,7 +1379,7 @@ echo "vde support $vde"
echo "AIO support       $aio"
echo "IO thread         $io_thread"
echo "Install blobs     $blobs"
echo "KVM support       $kvm"
echo -e "KVM support       $kvm"
echo "fdt support       $fdt"
echo "preadv support    $preadv"

+7 −3
Original line number Diff line number Diff line
@@ -404,6 +404,9 @@ static void kvm_reset_vcpus(void *opaque)

int kvm_init(int smp_cpus)
{
    static const char upgrade_note[] =
        "Please upgrade to at least kernel 2.6.29 or recent kvm-kmod\n"
        "(see http://sourceforge.net/projects/kvm).\n";
    KVMState *s;
    int ret;
    int i;
@@ -454,7 +457,8 @@ int kvm_init(int smp_cpus)
     */
    if (!kvm_check_extension(s, KVM_CAP_USER_MEMORY)) {
        ret = -EINVAL;
        fprintf(stderr, "kvm does not support KVM_CAP_USER_MEMORY\n");
        fprintf(stderr, "kvm does not support KVM_CAP_USER_MEMORY\n%s",
                upgrade_note);
        goto err;
    }

@@ -465,8 +469,8 @@ int kvm_init(int smp_cpus)
        ret = -EINVAL;

        fprintf(stderr,
                "KVM kernel module broken (DESTROY_MEMORY_REGION)\n"
                "Please upgrade to at least kvm-81.\n");
                "KVM kernel module broken (DESTROY_MEMORY_REGION).\n%s",
                upgrade_note);
        goto err;
    }