Skip to contentSkip to conversation

question regarding intel_idle inside kvm

DISCUSSION Daniel Lezcano 2 participants 3 messages Mar 15, 2012 – Mar 19, 2012 KVM

lore
Share & tools
lore
#0 lore raw

Hi all,

I recently did some modification in the cpuidle core and the patches were merge to linux-next. Someone reported a problem with the intel_idle cpuidle driver.

I tried to reproduce the problem with kvm but the kernel fails to intialize the driver because of intel_intel_init function fails in the processor probe.

After digging a bit, I found it fails at:

drivers/idle/intel_idle.c

static int intel_idle_probe(void)
{

...

        if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
                return -ENODEV;

        ^^^^^

...

}

I assumed the virtualized processor does not support this, so I specified the "-cpu host" because the host was running the intel_idle driver. But the driver still fails in kvm.

I was wondering why that happens ? Does anyone have an idea of this problem ?

Thanks in advance
-- Daniel

#1 lore raw
Quoted 27 lines · Daniel Lezcano

Hi all,

I recently did some modification in the cpuidle core and the patches were merge to linux-next.
Someone reported a problem with the intel_idle cpuidle driver.

I tried to reproduce the problem with kvm but the kernel fails to intialize the driver because of intel_intel_init function fails in the processor probe.

After digging a bit, I found it fails at:

drivers/idle/intel_idle.c

static int intel_idle_probe(void)
{

...

        if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
                return -ENODEV;

        ^^^^^

...

Quoted 8 lines

}

I assumed the virtualized processor does not support this, so I specified the "-cpu host" because the host was running the intel_idle driver. But the driver still fails in kvm.

I was wondering why that happens ? Does anyone have an idea of this problem ?

intel_idle() uses mwait, which kvm does not virtualize (it's very expensive to do so and brings no benefits).

Signature · 1 line
error compiling committee.c: too many arguments to function
#2 lore raw
Quoted 30 lines · Avi Kivity
Quoted 29 lines · Daniel Lezcano

Hi all,

I recently did some modification in the cpuidle core and the patches were merge to linux-next.
Someone reported a problem with the intel_idle cpuidle driver.

I tried to reproduce the problem with kvm but the kernel fails to intialize the driver because of intel_intel_init function fails in the processor probe.

After digging a bit, I found it fails at:

drivers/idle/intel_idle.c

static int intel_idle_probe(void)
{

...

         if (boot_cpu_data.cpuid_level<  CPUID_MWAIT_LEAF)
                 return -ENODEV;

         ^^^^^

...

}

Quoted 8 lines
Quoted 6 lines

I assumed the virtualized processor does not support this, so I specified the "-cpu host" because the host was running the intel_idle driver. But the driver still fails in kvm.

I was wondering why that happens ? Does anyone have an idea of this problem ?

intel_idle() uses mwait, which kvm does not virtualize (it's very expensive to do so and brings no benefits).

Ok, thanks for the information. I was afraid of that :/ I will go to for a real host then :)

Thanks !
-- Daniel