[Debian/Xorg glamo] Power leak in X server blanker

Rask Ingemann Lambertsen ccc94453 at vip.cybercity.dk
Sun Jul 19 15:13:34 CEST 2009


   The DPMS support in the Xorg glamo video driver turns _on_ the display
refresh after 20 minutes, which increases current draw by about 38 mA.

   On a sunny day, I found that with the display supposedly blanked and
sunlight hitting the display at just the right angle, I could see the cursor
blinking in a terminal window and the LXDE clock updating. I.e. display
refresh was enabled with no backlight, thereby wasting power. And measuring
battery current over time confirmes it:

# echo >/sys/class/power_supply/usb/device/usb_curlim 0

$ for i in {' ',1,2,3,4,5}{0,1,2,3,4,5,6,7,8,9}; do \
	echo -n "After ${i} minute(s): "; \
	cat /sys/class/power_supply/battery/current_now ; \
	sleep 60; \
done
After  0 minute(s): 178125
After  1 minute(s): 41625
After  2 minute(s): 40312
After  3 minute(s): 40125
After  4 minute(s): 40125
After  5 minute(s): 40312
[...]
After 15 minute(s): 39937
After 16 minute(s): 39937
After 17 minute(s): 40125
After 18 minute(s): 39937
After 19 minute(s): 39937
After 20 minute(s): 39937
After 21 minute(s): 78000
After 22 minute(s): 78000
After 23 minute(s): 78000
After 24 minute(s): 78000
[...]
After 56 minute(s): 78562
After 57 minute(s): 78562
After 58 minute(s): 78562
After 59 minute(s): 78750

   The culprit would appear to be the X server DPMS support:

$ xset -display :0 -q
Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  auto repeat delay:  500    repeat rate:  30
  auto repeating keys:  00ffffffdffffbbf
                        fadfffdfffdfe5ef
                        ffffffffffffffff
                        ffffffffffffffff
  bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  2/1    threshold:  4
Screen Saver:
  prefer blanking:  yes    allow exposures:  yes
  timeout:  600    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0    WhitePixel:  65535
Font Path:
  /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType,built-ins
DPMS (Energy Star):
  Standby: 1200    Suspend: 1800    Off: 2400
  DPMS is Enabled
  Monitor is On


   Suggestion: Add this

xset -dpms s off

to your ~/.xsession because with FSO already managing display power, there's
no benefit from the X blanker or X DPMS support. The improvement is
as expected:

$ for i in {' ',1,2,3,4,5}{0,1,2,3,4,5,6,7,8,9}; do \
	echo -n "After ${i} minute(s): "; \
	cat /sys/class/power_supply/battery/current_now ; \
	sleep 60; \
done
After  0 minute(s): 165000
After  1 minute(s): 41437
After  2 minute(s): 41062
After  3 minute(s): 39375
After  4 minute(s): 39562
After  5 minute(s): 39375
After  6 minute(s): 39187
[...]
After 53 minute(s): 38437
After 54 minute(s): 38625
After 55 minute(s): 38625
After 56 minute(s): 38812
After 57 minute(s): 38625
After 58 minute(s): 39000
After 59 minute(s): 40312

-- 
Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a year



More information about the support mailing list