• T
    ppc: Disable huge page support if it is not available for main RAM · 86b50f2e
    Thomas Huth 提交于
    On powerpc, we must only signal huge page support to the guest if
    all memory areas are capable of supporting huge pages. The commit
    2d103aae ("fix hugepage support when using memory-backend-file")
    already fixed the case when the user specified the mem-path property
    for NUMA memory nodes instead of using the global "-mem-path" option.
    However, there is one more case where it currently can go wrong.
    When specifying additional memory DIMMs without using NUMA, e.g.
    
     qemu-system-ppc64 -enable-kvm ... -m 1G,slots=2,maxmem=2G \
        -device pc-dimm,id=dimm-mem1,memdev=mem1 -object \
        memory-backend-file,policy=default,mem-path=/...,size=1G,id=mem1
    
    the code in getrampagesize() currently assumes that huge pages
    are possible since they are enabled for the mem1 object. But
    since the main RAM is not backed by a huge page filesystem,
    the guest Linux kernel then crashes very quickly after being
    started. So in case the we've got "normal" memory without NUMA
    and without the global "-mem-path" option, we must not announce
    huge pages to the guest. Since this is likely a mis-configuration
    by the user, also spill out a message in this case.
    Signed-off-by: NThomas Huth <thuth@redhat.com>
    Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
    86b50f2e
kvm.c 72.2 KB