[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Frequency scaling not working

  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: sriram govindan <sriram_ite@xxxxxxxxxxx>
  • Date: Wed, 25 Apr 2007 00:52:02 +0100 (BST)
  • Delivery-date: Tue, 24 Apr 2007 16:50:39 -0700
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.co.in; h=X-YMail-OSG:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=z1rJUT5s9y3Nx61ugf02FcvIJJWlRzaEzcYK+eg6ELtWGilHd/Kyp6+NLySSw/R7SkcpNGPHn1VDVPIIsz0QB1U/z1Klw54tNSW1weWSHA2L/fPyP+y8BYTPrr0ClwsOmS3EnhCrJI+Ff8a7ecU6DWBq9sjIyfrIZUfjI0aqxyI=;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Regarding Frequency Scaling support in Xen, i think the problem is,

"Writes to few of the MSRs are being ignored in Xen, Eg: Write to the MSR MSR_IA32_THERM_CONTROL (alias, IA32_CLOCK_MODULATION, 19A)
is being ignored in Xen, which is used to enable clock modulation driver for frequency scaling. But, the same MSR write works fine for linux.

Xen was able to access other MSRs like PERF_CTL (but i am yet to check if they could write in to it)

Also, I found that in /arch/i386/Kconfig, most of the modules are disabled for Xen including the MSR module, HyperThread support, SMT scheduler support, Machine Status Check support and Advanced Power Management support
are diabled for Xen. I enabled few of those by changing the config and was able to have the MSR module working. Other modules when enabled gave compile time errors.

Regarding HyperThreading support,

Example: When i change frequency of a processor in linux, its corresponding hyperthread's frequency is also automatically changed, wheareas in Xen, the frequency driver does not detect the hyperthread as a logical processor, it thinks of it as a separate physical processor (SMP).

To quote from the Intel Arch Manual,

"For Hyper-Threading Technology enabled processors, the IA32_CLOCK_MODULATION register is duplicated for each logical processor. In order for the On-demand clock modulation feature to work properly, the feature must be enabled on all the logical processors within a physical processor. If the programmed duty cycle is not identical for all the logical processors, the processor clock will modulate to the highest duty cycle programmed."

But this has got nothing to do with writes to the MSRs not getting realized, because i have booted my machine as a uniprocessor now..

Thanks for the response,
Expecting to learn more about this,


Mark Williamson <mark.williamson@xxxxxxxxxxxx> wrote:
> I installed the latest version of xen (3.0.4_1). I used userspace governor
> to change frequency of my xeon dual processor SMT. The driver used is
> p4-clockmod.
> Changes to the frequency (through the /sys interface) is not getting
> reflected to the hardware. From previous posts, i understand that rdmsr and
> wrmsr has to be replaced with dom0_msr operations. Even after doing the
> modifications, still the frequency is not getting changed and the domain0
> hypercall is returning a negative value when reads and writes are made to
> the dom0_msr.

I'm not sure frequency scaling is supported by 3.0.4, although I expect it
will be one day.

> Also, In xen SMT seems to have some problems. cpumask (affected cpus) does
> not seem to include the hyperthread.

I'm not entirely sure I understand the question here... The hyperthreads
should be enumerated as separate processors and Just Work. What behaviour
are you seeing?


Dave: Just a question. What use is a unicyle with no seat? And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

Xen-devel mailing list

SHOUT IT OUT! Tell everyone, from anywhere, that you're online on Yahoo! Messenger
Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.