Re: [PATCH] X86: don't print a warning when MTRR are blank and running in KVM

From: Yinghai Lu
Date: Thu Feb 21 2008 - 14:54:21 EST


On Thu, Feb 21, 2008 at 6:50 AM, Joerg Roedel <joerg.roedel@xxxxxxx> wrote:
> Inside a KVM virtual machine the MTRRs are usually blank. This confuses Linux
> and causes a warning message at boot. This patch removes that warning message
> when running Linux as a KVM guest.
>
> Signed-off-by: Joerg Roedel <joerg.roedel@xxxxxxx>
> ---
> arch/x86/kernel/cpu/mtrr/main.c | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
> index b6e136f..47e624c 100644
> --- a/arch/x86/kernel/cpu/mtrr/main.c
> +++ b/arch/x86/kernel/cpu/mtrr/main.c
> @@ -43,6 +43,7 @@
> #include <asm/uaccess.h>
> #include <asm/processor.h>
> #include <asm/msr.h>
> +#include <asm/kvm_para.h>
> #include "mtrr.h"
>
> u32 num_var_ranges = 0;
> @@ -687,12 +688,14 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
> }
>
> /* kvm/qemu doesn't have mtrr set right, don't trim them all */
> - if (!highest_pfn) {
> + if (!highest_pfn && !kvm_para_available()) {
> printk(KERN_WARNING "WARNING: strange, CPU MTRRs all blank?\n");
> WARN_ON(1);
> - return 0;
> }
>
> + if (!highest_pfn)
> + return 0;
> +
> if (highest_pfn < end_pfn) {
> printk(KERN_WARNING "WARNING: BIOS bug: CPU MTRRs don't cover"
> " all of memory, losing %luMB of RAM.\n",
> --
> 1.5.3.7
>

Doest that WARN_ON(1) hurt?

or you may do some patch in qemu too.

so
rdmsr(MTRRdefType_MSR, def, dummy);
def &= 0xff;
if (def != MTRR_TYPE_UNCACHABLE)
return 0;

is happy out.

or set those MTRR entries in qemu...

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/