Dell Precision m4400 acline problems

Stefan Farfeleder stefan at fafoe.narf.at
Mon Jun 28 14:41:13 UTC 2010


Hi Ian,

On Fri, Jun 25, 2010 at 06:25:18PM +1000, Ian Smith wrote:
> 
> Stefan, I'm afraid that this isn't making a lot of sense, to me anyway.
> 
> You say that switching to battery "evidently causes the frequency to 
> decrease internally, ie. without dev.cpu.0.freq knowing" which, if true, 
> would indicate a serious bug, and not one I've seen mentioned before.
> 
> You said earlier that, on switching to battery, performance decreases to 
> 50% or less, and stays there when switching back to AC.  How exactly are 
> you measuring that performance, if dev.cpu.0.freq is then still showing 
> your top freq of 2801?

I'm using benchmarks/ubench (see numbers below), but the difference is
also trivially measurable just by switching virtual desktops.

> How are you lowering then raising the frequency? (show, don't tell)

$ sudo sysctl dev.cpu.0.freq=2450
$ sudo sysctl dev.cpu.0.freq=2801

BTW, my system uses the est and p4tcc frequency drivers:

p4tcc0: <CPU Frequency Thermal Control> on cpu0
p4tcc1: <CPU Frequency Thermal Control> on cpu1
est0: <Enhanced SpeedStep Frequency Control> on cpu0
est1: <Enhanced SpeedStep Frequency Control> on cpu1

$ sysctl dev.p4tcc     
dev.p4tcc.0.%desc: CPU Frequency Thermal Control
dev.p4tcc.0.%driver: p4tcc
dev.p4tcc.0.%parent: cpu0
dev.p4tcc.0.freq_settings: 10000/-1 8750/-1 7500/-1 6250/-1 5000/-1
3750/-1 2500/-1 1250/-1
dev.p4tcc.1.%desc: CPU Frequency Thermal Control
dev.p4tcc.1.%driver: p4tcc
dev.p4tcc.1.%parent: cpu1
dev.p4tcc.1.freq_settings: 10000/-1 8750/-1 7500/-1 6250/-1 5000/-1
3750/-1 2500/-1 1250/-1

$ sysctl dev.est  
dev.est.0.%desc: Enhanced SpeedStep Frequency Control
dev.est.0.%driver: est
dev.est.0.%parent: cpu0
dev.est.0.freq_settings: 2801/35000 2800/35000 2134/16607 1600/15000
800/12000
dev.est.1.%desc: Enhanced SpeedStep Frequency Control
dev.est.1.%driver: est
dev.est.1.%parent: cpu1
dev.est.1.freq_settings: 2801/35000 2800/35000 2134/16607 1600/15000
800/12000

What's maybe interesting is that the p4tcc frequencies are a _lot_
slower than the est ones (eg. 2450 (87.5% of 2800) is slower than 1600).

> Perhaps if you provide some more information when the machine is in both 
> AC and battery state, it may provide some clues as to what's going on.
> 
> Off the top of my head, posting the below for both states might help:
> 
> # sysctl dev.cpu hw.acpi

before:
dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.temperature: 48.0C
dev.cpu.0.freq: 2801
dev.cpu.0.freq_levels: 2801/35000 2450/30625 2134/16607 1867/14531
1600/15000 1400/13125 1200/11250 1000/9375 800/12000 700/10500 600/9000
500/7500 400/6000 300/4500 200/3000 100/1500
dev.cpu.0.cx_supported: C1/1 C2/1 C3/162
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 405us
dev.cpu.1.%desc: ACPI CPU
dev.cpu.1.%driver: cpu
dev.cpu.1.%location: handle=\_PR_.CPU1
dev.cpu.1.%pnpinfo: _HID=none _UID=0
dev.cpu.1.%parent: acpi0
dev.cpu.1.temperature: 48.0C
dev.cpu.1.cx_supported: C1/1 C2/1 C3/162
dev.cpu.1.cx_lowest: C1
dev.cpu.1.cx_usage: 100.00% 0.00% 0.00% last 383us
hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S3
hw.acpi.lid_switch_state: NONE
hw.acpi.standby_state: NONE
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 1
hw.acpi.s4bios: 1
hw.acpi.verbose: 0
hw.acpi.disable_on_reboot: 0
hw.acpi.handle_reboot: 0
hw.acpi.reset_video: 0
hw.acpi.cpu.cx_lowest: C1
hw.acpi.acline: 1
hw.acpi.battery.life: 96
hw.acpi.battery.time: -1
hw.acpi.battery.state: 2
hw.acpi.battery.units: 2
hw.acpi.battery.info_expire: 5
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 10
hw.acpi.thermal.user_override: 0
hw.acpi.thermal.tz0.temperature: 52.5C
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.passive_cooling: 0
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: -1
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 107.0C
hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
hw.acpi.thermal.tz0._TC1: -1
hw.acpi.thermal.tz0._TC2: -1
hw.acpi.thermal.tz0._TSP: -1

after:
dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.temperature: 45.0C
dev.cpu.0.freq: 2801
dev.cpu.0.freq_levels: 2801/35000 2450/30625 2134/16607 1867/14531
1600/15000 1400/13125 1200/11250 1000/9375 800/12000 700/10500 600/9000
500/7500 400/6000 300/4500 200/3000 100/1500
dev.cpu.0.cx_supported: C1/1 C2/1 C3/162
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 351us
dev.cpu.1.%desc: ACPI CPU
dev.cpu.1.%driver: cpu
dev.cpu.1.%location: handle=\_PR_.CPU1
dev.cpu.1.%pnpinfo: _HID=none _UID=0
dev.cpu.1.%parent: acpi0
dev.cpu.1.temperature: 44.0C
dev.cpu.1.cx_supported: C1/1 C2/1 C3/162
dev.cpu.1.cx_lowest: C1
dev.cpu.1.cx_usage: 100.00% 0.00% 0.00% last 439us
hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S3
hw.acpi.lid_switch_state: NONE
hw.acpi.standby_state: NONE
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 1
hw.acpi.s4bios: 1
hw.acpi.verbose: 0
hw.acpi.disable_on_reboot: 0
hw.acpi.handle_reboot: 0
hw.acpi.reset_video: 0
hw.acpi.cpu.cx_lowest: C1
hw.acpi.acline: 0
hw.acpi.battery.life: 96
hw.acpi.battery.time: 0
hw.acpi.battery.state: 1
hw.acpi.battery.units: 2
hw.acpi.battery.info_expire: 5
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 10
hw.acpi.thermal.user_override: 0
hw.acpi.thermal.tz0.temperature: 52.5C
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.passive_cooling: 0
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: -1
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 107.0C
hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
hw.acpi.thermal.tz0._TC1: -1
hw.acpi.thermal.tz0._TC2: -1
hw.acpi.thermal.tz0._TSP: -1

> # vmstat -i

before:
interrupt                          total       rate
irq1: atkbd0                       49579          1
irq9: acpi0                        68826          2
irq12: psm0                       478827         17
irq17: fwohci0                         2          0
irq19: cbb0 atapci1               191023          7
irq20: hpet0 uhci0*              3438755        128
irq22: uhci2 ehci0+                   26          0
cpu0:timer                      26706953        999
irq257: hdac0                         24          0
irq258: iwn0                     1342351         50
cpu1:timer                      26707465        999
Total                           58983831       2208

after:
interrupt                          total       rate
irq1: atkbd0                       49917          1
irq9: acpi0                        69077          2
irq12: psm0                       482043         17
irq17: fwohci0                         2          0
irq19: cbb0 atapci1               191120          7
irq20: hpet0 uhci0*              3448999        128
irq22: uhci2 ehci0+                   26          0
cpu0:timer                      26786502        999
irq257: hdac0                         24          0
irq258: iwn0                     1345908         50
cpu1:timer                      26787016        999
Total                           59160634       2208

> # whatever tool you are using to measure 'performance'

before:
Ubench CPU:   698410
Ubench MEM:   174244
--------------------
Ubench AVG:   436327

after:
Ubench CPU:   196190
Ubench MEM:    60082
--------------------
Ubench AVG:   128136


Cheers,
Stefan


More information about the freebsd-acpi mailing list