lkml.org 
[lkml]   [2008]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: oops/warning report for the week of November 26, 2008
    Arjan van de Ven wrote:
    > On Thu, 27 Nov 2008 21:18:36 +0100
    > Ingo Molnar <mingo@elte.hu> wrote:
    >
    >> * Arjan van de Ven <arjan@linux.intel.com> wrote:
    >>
    >>> Ingo Molnar wrote:
    >>>> * Arjan van de Ven <arjan@linux.intel.com> wrote:
    >>>>
    >>>>> Rank 8: mtrr_trim_uncached_memory (warning)
    >>>>> Reported 227 times (619 total reports)
    >>>>> There is a high number of machines where our MTRR checks
    >>>>> trigger. I suspect we are too picky in accepting the MTRR
    >>>>> configuration.
    >>>> the warning here means: "the BIOS messed up but we fixed it up for
    >>>> you just fine".
    >>> I don't believe that right now. we see so many of these, including
    >>> many "there's no MTRRs at all", that I am seriously suspecting that
    >>> our code is just incorrect somehow and triggering too much.
    >> well we looked at existing reports and Linux was right to fix them
    >> up. Show us one that is incorrect, then we can fix it up.
    >>
    >> the "no MTRR's" are vmware/(also qemu?) guests not implementing a
    >> full CPU emulation.
    >
    > ... and it's still our fault in part, since we don't even check to see
    > if a cpu claims to support MTRR before complaining about it...
    >
    > easy to fix though:
    >
    > From 7e987ae541c41ce908b414fee9d8e2fd2099a083 Mon Sep 17 00:00:00 2001
    > From: Arjan van de Ven <arjan@linux.intel.com>
    > Date: Thu, 27 Nov 2008 12:25:47 -0800
    > Subject: [PATCH] x86: make sure the CPU advertizes MTRR support before complaining about the lack thereoff...
    >
    > We complain loudly if a CPU does not have MTRR support... but we don't check if the CPU
    > exposes MTRR support in the CPUID flags first. While this might not fix all of the
    > broken virtualization systems out there, it will at least fix those that properly don't
    > advertize things they don't support.
    >
    > Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    > ---
    > arch/x86/kernel/cpu/mtrr/main.c | 2 ++
    > 1 files changed, 2 insertions(+), 0 deletions(-)
    >
    > diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
    > index 1159e26..0044e61 100644
    > --- a/arch/x86/kernel/cpu/mtrr/main.c
    > +++ b/arch/x86/kernel/cpu/mtrr/main.c
    > @@ -1567,6 +1567,8 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
    > * Make sure we only trim uncachable memory on machines that
    > * support the Intel MTRR architecture:
    > */
    > + if (!cpu_has_mtrr)
    > + return 0;

    that is not needed, we already check that in mtrr_bp_init before this function is called, and it will assign mtrr_if

    and
    #define is_cpu(vnd) (mtrr_if && mtrr_if->vendor == X86_VENDOR_##vnd)

    will make it sure mtrr is there.

    ps: here INTEL mean any cpu has same interface like intel cpu's

    YH

    > if (!is_cpu(INTEL) || disable_mtrr_trim)
    > return 0;
    > rdmsr(MTRRdefType_MSR, def, dummy);



    \
     
     \ /
      Last update: 2008-11-27 22:23    [W:0.026 / U:155.640 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site