# Xeon EM64T & CPU Power Management?

## Master One

I was just wondering, how CPU power management works on a Xeon EM64T. It's about an IBM eServer with Xeon 3.2 EM64T, and I thought, it may be a good idea, to let it run a little cooler when idle by using the on-demand frequency govenor. I have all necessary option enabled in the kernel:

```
[*] CPU Frequency scaling

[ ]   Enable CPUfreq debugging

<*>   CPU frequency translation statistics

[*]     CPU frequency translation statistics details

     Default CPUFreq governor (userspace)  --->

<*>   'performance' governor

<*>   'powersave' governor

---   'userspace' governor for userspace frequency scaling

<*>   'ondemand' cpufreq policy governor

<*>   CPU frequency table helpers

---   CPUFreq processor drivers

< > AMD Opteron/Athlon64 PowerNow!

<*> Intel Enhanced SpeedStep

<M> ACPI Processor P-States driver

--- shared options

[ ] /proc/acpi/processor/../performance interface (deprecated)
```

But the folders /sys/devices/system/cpu/cpu0 and /sys/devices/system/cpu/cpu1 are emtpy, and cpufreq-info can't find anything:

```
 # cpufreq-info

cpufrequtils 0.2: cpufreq-info (C) Dominik Brodowski 2004

Bitte melden Sie Fehler an linux@brodo.de.

analysiere CPU 0:

  kein oder nicht bestimmbarer cpufreq-Treiber aktiv

analysiere CPU 1:

  kein oder nicht bestimmbarer cpufreq-Treiber aktiv
```

The proc filesystem is showing some more info:

```
# cat /proc/acpi/processor/CPU0/info

processor id:            0

acpi id:                 0

bus mastering control:   yes

power management:        no

throttling control:      yes

limit interface:         yes

# cat /proc/acpi/processor/CPU0/limit

active limit:            P0:T0

user limit:              P0:T0

thermal limit:           P0:T0

# cat /proc/acpi/processor/CPU0/power

active state:            C0

max_cstate:              C8

bus master activity:     00000000

states:

# cat /proc/acpi/processor/CPU0/throttling

state count:             8

active state:            T0

states:

   *T0:                  00%

    T1:                  12%

    T2:                  25%

    T3:                  37%

    T4:                  50%

    T5:                  62%

    T6:                  75%

    T7:                  87%
```

The ACPI Processor P-States driver can not be loaded:

```
# modprobe acpi-cpufreq

FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.11-gentoo-r7/kernel/arch/x86_64/kernel/cpufreq/acpi-cpufreq.ko): No such device
```

I have not much experience on power saving, but I had no problems at all, setting up a working environment following the Gentoo power management guide on my IBM ThinkPad T42p, using speedfreq in dynamic mode.

However, it does not seem to be that easy on that Xeon machine, except I am missing something here.

Any advice?

----------

## Master One

Noone any idea?

No XEON EM64T users with a 64bit (nocona) Gentoo installation here?

----------

## bollucks

cpufreq scaling is not yet supported on any SMP configuration by the current linux kernel

----------

## Master One

Oh, didn't know that. How strange, that the Xeon EM64T is explicitely mentioned in the kernel description of the Intel Enhanced SpeedStep CPUFreq processor driver.

So in that case I can completely disable the CPU Frequency scaling setting in my kernel config...  :Crying or Very sad: 

----------

## dstutz97

 *Quote:*   

> cpufreq scaling is not yet supported on any SMP configuration by the current linux kernel

 

Is this still the case?  I'm using 2.6.21-gentoo sources and if I 

```
ls /sys/devices/system/cpu/cpu0/
```

 then I don't see cpufreq at all.  I compiled in all the options as specified:

```
Power management options  --->

    ACPI (Advanced Configuration and Power Interface) Support  --->

        [*] ACPI Support

        <*>   Processor

    CPU Frequency scaling  --->

        [*] CPU Frequency scaling

        <*>   CPU frequency translation statistics

        <*>   'ondemand' cpufreq policy governor

        <*>   ACPI Processor P-States driver

```

This is on a Dell PowerEdge 2950 with a pair of Xeon E5335s.

----------

## kernelOfTruth

 *dstutz97 wrote:*   

>  *Quote:*   cpufreq scaling is not yet supported on any SMP configuration by the current linux kernel 
> 
> Is this still the case?  I'm using 2.6.21-gentoo sources and if I 
> 
> ```
> ...

 

 *Quote:*   

> /sys/devices/system/cpu/cpu0/cpufreq/
> 
> affected_cpus                  scaling_cur_freq
> 
> cpuinfo_cur_freq               scaling_driver
> ...

 

this is on a p5w dh deluxe MB + Core2 Duo (Dothan 6600)

 *Quote:*   

> [*] CPU Frequency scaling                                                       │ │  
> 
>   │ │          [ ]   Enable CPUfreq debugging                                                  │ │  
> 
>   │ │          <*>   CPU frequency translation statistics                                      │ │  
> ...

 

have you loaded all the necessary modules / compiled them in?

==> userspace is the important part

----------

## bbgermany

It doesnt seem to be a problem with SMP. I think its more a problem of the 64bit. I have a Genmtoo running in 32bit and 64bit on the same machine (dual boot). i cannot get the p4-clockmod or even the acpi-freq stuff running in 64bit. In the 32bit environment its running well, although its a "SMP" machine.

System specs: look at sig

----------

## dstutz97

 *kernelOfTruth wrote:*   

> have you loaded all the necessary modules / compiled them in?
> 
> ==> userspace is the important part

 

You can see I have the same stuff compiled in as you do but I don't even have the "cpufreq"folder in sysfs.  Userspace is not the important part, the kernel config is.  I have another Dell box here, a 2850, with a pair of dual-core Xeons running FC4 and I was able to just modprobe a couple things (acpi_cpufreq and cpufreq_ondemand) and then echo the ondemand governor into the proper place in sysfs and it worked although that system is running 32-bit Fedora so maybe as bbgermany said it has something to do with 32 vs 64. 

```
# cat /sys/devices/system/cpu/cpu[0-7]/cpufreq/scaling_governor

ondemand

ondemand

ondemand

ondemand

ondemand

ondemand

ondemand

ondemand

```

I just tried this on a 64bit RHEL 4.4 box and it didn't have the acpi-cpufreq driver and then I looked at a 64bit FC6 box and when I tried to load the acpi-cpufreq driver it gave me an error.  *shrug*.

----------

