Dell Precision m4400 acline problems
Ian Smith
smithi at nimnet.asn.au
Mon Jun 28 16:23:19 UTC 2010
On Mon, 28 Jun 2010, Stefan Farfeleder wrote:
> 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).
Hi Stefan,
yes, p4tcc is unlikely to be doing you any good, and possibly some harm?
Try rebooting with these in /boot/loader.conf:
hint.p4tcc.0.disable="1"
hint.acpi_throttle.0.disable="1"
hint.p4tcc.1.disable="1"
hint.acpi_throttle.1.disable="1"
You need both per CPU, or acpi_throttle could attach when p4tcc doesn't.
It'd be an interesting data point if disabling p4tcc helped your issue.
Anyway, est provides enough freqs (and proper voltage settings, unlike
p4tcc) for power control should you need that, and if you chose to use
powerd later it might work better with just est, just anecdotally from
some recent discussions.
> > 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
Nothing jumped out at me ..
> > # 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
Ok, well, mmm.
Try disabling p4tcc. If that makes no difference, I've no clue at all.
cheers, Ian
More information about the freebsd-acpi
mailing list