Bug 14149

Summary: No deep processor C-state after hibernate with radeon
Product: xorg Reporter: Pär Andersson <paran>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
good-0x4C66-0
none
bad-0x4C66-0
none
good-again-0x4C66-0 none

Description Pär Andersson 2008-01-20 06:37:53 UTC
Created attachment 13811 [details]
good-0x4C66-0

Description:

When idle the processor typically spends >95% time in C4 sleep. Howver
after acpi hibernate the processor never goes lower than C2. Even
though there are no wakeup events detected.

Restarting the X-server, or switching VT and starting and stoping
another X-server fixes the problem so the processor starts entering
lower C-states again.

If I kill X before hibernating the problem does not
occur. Backgrounding X by switching to a VT before hibernating have no
effect.

Attaching output from radeondump:
good-0x4C66-0 - after boot.
bad-0x4C66-0 - after hibernate, no deep C-states.
good-again-0x4C66-0 - restored good state by starting and stopping a second X-server.

Hardware and software:
Dell D600 (Pentium M 1.8, 1G)
Ubuntu 7.10
kernel: own compiled 2.6.24-rc8
xf86-video-ati: 6.7.195(ubuntu packaged), 6.7.197 and latest git.

VGA card:
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV250 [Mobility FireGL 9000] (rev 02)


Here are also sample output from intel powertop in the good versus bad state which shows the C-state problem:
good-0x4C66-0:

Cn                Avg residency       P-states (frequencies)
C0 (cpu running)        ( 0.4%)         1.80 Ghz     0.0%
C1                0.0ms ( 0.0%)         1.60 Ghz     0.0%
C2               11.9ms ( 2.9%)         1400 Mhz     0.0%
C3                1.0ms ( 0.0%)          600 Mhz   100.0%
C4               71.3ms (96.6%)

Wakeups-from-idle per second : 16.2     interval: 20.0s
Power usage (ACPI estimate): 15.3W (4.9 hours) (long term: 15.9W,/4.7h)

Top causes for wakeups:
  28.7% (  4.5)              Xorg : do_setitimer (it_real_fn)
  24.5% (  3.8)       <interrupt> : PS/2 keyboard/mouse/touchpad
  11.6% (  1.8)              rxvt : schedule_timeout (process_timeout)
   6.5% (  1.0)            dhcdbd : schedule_timeout (process_timeout)
   6.5% (  1.0)    NetworkManager : tg3_open (tg3_timer)
   4.8% (  0.8)              Xorg : schedule_timeout (process_timeout)
   3.2% (  0.5)         gpg-agent : schedule_timeout (process_timeout)
   3.2% (  0.5)    NetworkManager : schedule_timeout (process_timeout)
   3.2% (  0.5)   <kernel module> : neigh_table_init_no_netlink (neigh_periodic_timer)
   3.2% (  0.5)   <kernel module> : ipw_up (delayed_work_timer_fn)
   1.6% (  0.2)     <kernel core> : neigh_table_init_no_netlink (neigh_periodic_timer)
   1.3% (  0.2)     <kernel core> : __netdev_watchdog_up (dev_watchdog)
   0.6% (  0.1)         ssh-agent : schedule_timeout (process_timeout)
   0.6% (  0.1)         ssh-agent : do_setitimer (it_real_fn)
   0.3% (  0.1)     <kernel core> : ip_rt_init (delayed_work_timer_fn)

   

bad-0x4C66-0:

Cn                Avg residency       P-states (frequencies)
C0 (cpu running)        ( 0.1%)         1.80 Ghz     0.0%
C1                0.0ms ( 0.0%)         1.60 Ghz     0.0%
C2              126.6ms (99.0%)         1400 Mhz     0.0%
C3                0.0ms ( 0.0%)          600 Mhz   100.0%
C4               10.8ms ( 0.9%)

Wakeups-from-idle per second :  8.6     interval: 5.0s
Power usage (ACPI estimate): 15.8W (4.6 hours)

Top causes for wakeups:
  27.0% (  2.0)             emacs : schedule_timeout (process_timeout)
  13.5% (  1.0)              bash : tg3_resume (tg3_timer)
  13.5% (  1.0)            dhcdbd : schedule_timeout (process_timeout)
   8.1% (  0.6)   <kernel module> : ipw_up (delayed_work_timer_fn)
   8.1% (  0.6)         gpg-agent : schedule_timeout (process_timeout)
   5.4% (  0.4)              Xorg : do_setitimer (it_real_fn)
   5.4% (  0.4)              Xorg : schedule_timeout (process_timeout)
   5.4% (  0.4)    NetworkManager : schedule_timeout (process_timeout)
   5.4% (  0.4)   <kernel module> : neigh_table_init_no_netlink (neigh_periodic_timer)
   2.7% (  0.2)       <interrupt> : PS/2 keyboard/mouse/touchpad
   2.7% (  0.2)     <kernel core> : neigh_table_init_no_netlink (neigh_periodic_timer)
   2.7% (  0.2)     <kernel core> : __netdev_watchdog_up (dev_watchdog)
Comment 1 Pär Andersson 2008-01-20 06:38:21 UTC
Created attachment 13812 [details]
bad-0x4C66-0
Comment 2 Pär Andersson 2008-01-20 06:38:41 UTC
Created attachment 13813 [details]
good-again-0x4C66-0
Comment 3 Alex Deucher 2008-12-03 01:12:43 UTC
Is this still an issue with a newer driver (6.9.0 or newer)?
Comment 4 Alex Deucher 2009-06-11 09:47:45 UTC
This should be fixed.  closing due to lack of feedback.
Comment 5 Pär Andersson 2009-06-15 10:13:16 UTC
(In reply to comment #4)
> This should be fixed.  closing due to lack of feedback.

Whoops, I missed the comment requesting feedback.

Unfortunately the laptop that had this problem is broken. If I ever resurrect it I will test this, but lets leave this bug resolved. :-)

Pär

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.