lkml.org 
[lkml]   [2012]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [Xen-devel] Stop the continuous flood of (XEN) traps.c:2432:d0 Domain attempted WRMSR ..
    On Wed, Mar 28, 2012 at 04:29:07PM -0400, Konrad Rzeszutek Wilk wrote:
    > > >
    > > > Jesse, and Matthew,
    > > >
    > > > Is there a way to make the intel_ips.c driver be in a "low-power" state?
    > > >
    > > > My first thought about fixing this was that we could allow the
    > > > hypervisor to allow those RDMSR but the Linux kernel has no power to
    > > > actually influence the power management (as the hypervisor is in charge
    > > > of that) - so would the driver be capable of just sitting back and
    > > > not influencing the CPU?
    > >
    > > Yeah it's easy enough to turn off or disable. But it doesn't currently
    > > export any knobs for controlling behavior. I don't have any issue with
    > > exposing some though...
    >
    > Pasi,
    >
    > Could you test the two patches independetly of each other? Meaning
    > test the Linux one without the Xen one, and vice-versa.
    >

    Sure, I'll give it a try during the weekend when I'm able to access the box in question.

    Thanks!

    -- Pasi




    > diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
    > index 88a98cf..7276831 100644
    > --- a/drivers/platform/x86/intel_ips.c
    > +++ b/drivers/platform/x86/intel_ips.c
    > @@ -1407,6 +1407,10 @@ static struct ips_mcp_limits *ips_detect_cpu(struct ips_driver *ips)
    > }
    >
    > rdmsrl(TURBO_POWER_CURRENT_LIMIT, turbo_power);
    > + if (turbo_power == 0) {
    > + ips->turbo_toggle_allowed = false;
    > + return NULL;
    > + }
    > tdp = turbo_power & TURBO_TDP_MASK;
    >
    > /* Sanity check TDP against CPU */

    > diff -r 8e2690dbec49 xen/arch/x86/traps.c
    > --- a/xen/arch/x86/traps.c Sat Mar 24 13:13:49 2012 -0400
    > +++ b/xen/arch/x86/traps.c Wed Mar 28 16:27:31 2012 -0400
    > @@ -1746,7 +1746,8 @@ void (*pv_post_outb_hook)(unsigned int p
    > static inline uint64_t guest_misc_enable(uint64_t val)
    > {
    > val &= ~(MSR_IA32_MISC_ENABLE_PERF_AVAIL |
    > - MSR_IA32_MISC_ENABLE_MONITOR_ENABLE);
    > + MSR_IA32_MISC_ENABLE_MONITOR_ENABLE |
    > + MSR_IA32_MISC_ENABLE_TURBO);
    > val |= MSR_IA32_MISC_ENABLE_BTS_UNAVAIL |
    > MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL |
    > MSR_IA32_MISC_ENABLE_XTPR_DISABLE;
    > diff -r 8e2690dbec49 xen/include/asm-x86/msr-index.h
    > --- a/xen/include/asm-x86/msr-index.h Sat Mar 24 13:13:49 2012 -0400
    > +++ b/xen/include/asm-x86/msr-index.h Wed Mar 28 16:27:31 2012 -0400
    > @@ -327,6 +327,7 @@
    > #define MSR_IA32_MISC_ENABLE_MONITOR_ENABLE (1<<18)
    > #define MSR_IA32_MISC_ENABLE_LIMIT_CPUID (1<<22)
    > #define MSR_IA32_MISC_ENABLE_XTPR_DISABLE (1<<23)
    > +#define MSR_IA32_MISC_ENABLE_TURBO (1<<38)
    >
    > #define MSR_IA32_TSC_DEADLINE 0x000006E0
    > #define MSR_IA32_ENERGY_PERF_BIAS 0x000001b0



    \
     
     \ /
      Last update: 2012-03-29 00:11    [W:0.026 / U:0.580 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site