[vdr] power consumption, powertop and wakups per second with a af9015 device, vp7045, and various plugins

Heinrich Langos henrik-vdr at prak.org
Fri Mar 27 10:57:40 CET 2009


Hi Antti,
On Wed, Mar 25, 2009 at 10:48:01PM +0200, Antti Palosaari wrote:
> Antti Palosaari wrote:
>> Heinrich Langos wrote:
>>> Moikka Antti,
>>>
>>>> vp7045 does not have PID-filters.
>>>> I think difference comes from different USB-transfer settings. 
>>>> vp7045  uses BULK packet size 4096 and af9015 uses BULK packet size 
>>>> 512 for  USB2.0 and BULK packet size 64 for USB1.1. Therefore 
>>>> af9015 sends 8  times more packets than vp7045 (I guess).
>>>>
>>>> One thing more you can test - use USB1.1. To force USB1.1 remove 
>>>> USB2.0  driver by rmmod ehci_hcd. After that plug af9015 stick and 
>>>> look from  logs it detects USB1.1 and uses PID-filters. af9015 
>>>> driver now uses  smaller packet size for transfer that can change 
>>>> load (bigger?).
>>
>>> seems you are right. The transfer with PID filter in usb 1.1 causes
>>> about 30% load in contrast to 19% with usb 2.0
>>>
>>> is there a way to increase the packet size for those bulk transfers?  
>>> for usb 2.0? for 1.1?
>>
>> Actually AF9015 chip offers registers to configure packet size. But  
>> those which are now used are default ones and rather many devices 
>> (other than af9015) are using just same. That's why I am not sure if I 
>> want change those to bigger ones.
>>
>> I will make test version that uses 4k packets for your tests. If it  
>> resolves problem then we should consider for example adding module 
>> param for setting desirable packet size. I will inform you when test 
>> version is ready - It takes day or two.
>
> Unfortunately 512 seems to be biggest allowed packet size so I cannot  
> increase it. Anyhow, there is other configurable parameter called packet  
> count. I increased that from 348 to 512 but I doubt it does not have any  
> effect. Feel free to test. If it does not change load then I think we  
> cannot do more.
> Test tree:
> http://linuxtv.org/hg/~anttip/af9015_powertop/

Thank you very much for your work and helpful information.
Sorry it took me some time to fire up that stick again.. here's the result:

In short the improvements (if any) are within the error margin. 
The snapshots below seem to indicate that load with pid filter is reduced
somewhat, but i assure you that you get loads from 1.4-1.0 and 22-16%
respectivly. So there seems no gain in changing the packet count constant. 
As usual I have included the details below. 

BTW: I got myself a "Toshiba USB DVB-T Tuner PX1211E-1TVD" based on the
DiB3000M-C/P. Unlike the siemens stick it has a pid filter. 
I only tested it without the pid filter yet, and it seems to perform as 
good as the siemens stick in terms of system load. So I guess it uses big
packets for the bulk transfers.

I hope I'll have some time to test it further this weekend. Hopefully it 
turns out to reduce the system load by the driver to a reasonable level.
If so I will finally get around to look into vdr itself as a cause of
wasted CPU cycles and energy... :-)


cheers
-henrik

Details:


# modprobe -v dvb_usb_af9015
insmod /lib/modules/2.6.26-1-686/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
insmod /lib/modules/2.6.26-1-686/kernel/drivers/media/dvb/dvb-usb/dvb-usb.ko disable_rc_polling=1
insmod /lib/modules/2.6.26-1-686/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
# dmesg | tail
[421479.228321] af9015: recv bulk message failed:-110
[421481.228225] af9015: recv bulk message failed:-110
[421481.236400] dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in warm state.
[421481.236940] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[421481.237973] DVB: registering new adapter (Afatech AF9015 DVB-T USB2.0 stick)
[421481.714270] af9013: firmware version:4.95.0
[421481.724131] DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)...
[421481.724847] tda18271 0-00c0: creating new instance
[421481.729438] TDA18271HD/C2 detected @ 0-00c0
[421481.994205] dvb-usb: Afatech AF9015 DVB-T USB2.0 stick successfully initialized and connected.
[421482.012365] usbcore: registered new interface driver dvb_usb_af9015
[421992.345780] tda18271: performing RF tracking filter calibration
[421997.798964] tda18271: RF tracking filter calibration complete



====================== no pid filter =========================

zap:
|      PowerTOP version 1.10      (C) 2007 Intel Corporation
| 
| Cn                Avg residency       P-states (frequencies)
| C0 (cpu running)        (30.8%)          750 Mhz     0.0%
| polling           0.2ms ( 0.0%)          563 Mhz     0.0%
| C1 halt           0.0ms ( 0.0%)          375 Mhz     0.0%
| C2                0.4ms ( 7.3%)          188 Mhz   100.0%
| C3                0.2ms (61.9%)
| 
| Wakeups-from-idle per second : 3100.6   interval: 10.0s
| no ACPI power usage estimate available
| 
| Top causes for wakeups:
|   60.5% (4774.2)   USB device  5-1 : DVB-T 2 (Afatech)
|   39.3% (3107.5)       <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5
|    0.1% (  5.7)               zap : schedule_timeout (process_timeout)
|    0.0% (  2.0)           xfsaild : schedule_timeout (process_timeout)
|    0.0% (  1.6)           xfsbufd : schedule_timeout (process_timeout)
|    0.0% (  1.2)           syslogd : ehci_irq (ehci_watchdog)
|    0.0% (  1.0)               zap : do_nanosleep (hrtimer_wakeup)
|    0.0% (  1.0)          ifconfig : b44_open (b44_timer)

vdr:
|      PowerTOP version 1.10      (C) 2007 Intel Corporation
| 
| Cn                Avg residency       P-states (frequencies)
| C0 (cpu running)        (34.6%)          750 Mhz     0.0%
| polling           0.0ms ( 0.0%)          563 Mhz     0.0%
| C1 halt           0.0ms ( 0.0%)          375 Mhz     0.0%
| C2                0.1ms ( 0.5%)          188 Mhz   100.0%
| C3                0.3ms (64.9%)
| 
| Wakeups-from-idle per second : 2588.7   interval: 10.0s
| no ACPI power usage estimate available
| 
| Top causes for wakeups:
|   59.3% (4318.9)   USB device  5-1 : DVB-T 2 (Afatech)
|   37.5% (2730.5)       <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5
|    3.0% (220.9)               vdr : futex_wait (hrtimer_wakeup)
|    0.1% (  6.2)               vdr : schedule_timeout (process_timeout)
|    0.0% (  2.0)           xfsaild : schedule_timeout (process_timeout)
|    0.0% (  1.6)           xfsbufd : schedule_timeout (process_timeout)
|    0.0% (  1.3)           syslogd : ehci_irq (ehci_watchdog)
|    0.0% (  1.1)               vdr : hrtick_set (hrtick)
|    0.0% (  1.0)               vdr : do_nanosleep (hrtimer_wakeup)
|    0.0% (  1.0)          ifconfig : b44_open (b44_timer)



====================== with hw pid filter =========================

# modprobe -v dvb-usb force_pid_filter_usage=1
insmod /lib/modules/2.6.26-1-686/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
insmod /lib/modules/2.6.26-1-686/kernel/drivers/media/dvb/dvb-usb/dvb-usb.ko force_pid_filter_usage=1 disable_rc_polling=1
# modprobe -v dvb_usb_af9015
insmod /lib/modules/2.6.26-1-686/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko


zap:
|      PowerTOP version 1.10      (C) 2007 Intel Corporation
| 
| Cn                Avg residency       P-states (frequencies)
| C0 (cpu running)        ( 1.1%)          750 Mhz     0.0%
| polling           0.0ms ( 0.0%)          563 Mhz     0.0%
| C1 halt           0.0ms ( 0.0%)          375 Mhz     0.0%
| C2                0.0ms ( 0.0%)          188 Mhz   100.0%
| C3               10.6ms (98.9%)
| 
| Wakeups-from-idle per second : 95.7     interval: 15.0s
| no ACPI power usage estimate available
| 
| Top causes for wakeups:
|   48.8% ( 70.1)       <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5
|   33.2% ( 47.7)   USB device  5-1 : DVB-T 2 (Afatech)
|    7.0% ( 10.1)           syslogd : ehci_irq (ehci_watchdog)
|    4.7% (  6.8)               zap : schedule_timeout (process_timeout)
|    1.4% (  2.0)           xfsaild : schedule_timeout (process_timeout)
|    1.2% (  1.7)           xfsbufd : schedule_timeout (process_timeout)
|    0.7% (  1.1)    kdvb-ad-0-fe-0 : schedule_timeout (process_timeout)
|    0.7% (  1.0)          ifconfig : b44_open (b44_timer)
|    0.7% (  1.0)               zap : do_nanosleep (hrtimer_wakeup)
 
 
vdr:
|      PowerTOP version 1.10      (C) 2007 Intel Corporation
| 
| Cn                Avg residency       P-states (frequencies)
| C0 (cpu running)        (16.8%)          750 Mhz     0.0%
| polling           0.1ms ( 0.0%)          563 Mhz     0.0%
| C1 halt           0.0ms ( 0.0%)          375 Mhz     0.0%
| C2                0.1ms ( 0.3%)          188 Mhz   100.0%
| C3                0.9ms (82.9%)
| 
| Wakeups-from-idle per second : 938.4    interval: 10.0s
| no ACPI power usage estimate available
| 
| Top causes for wakeups:
|   48.6% (988.7)   USB device  5-1 : DVB-T 2 (Afatech)
|   39.5% (804.2)       <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5
|   10.9% (221.1)               vdr : futex_wait (hrtimer_wakeup)
|    0.3% (  6.9)           syslogd : ehci_irq (ehci_watchdog)
|    0.3% (  6.0)               vdr : schedule_timeout (process_timeout)
|    0.1% (  2.0)           xfsaild : schedule_timeout (process_timeout)
|    0.1% (  1.6)           xfsbufd : schedule_timeout (process_timeout)
|    0.0% (  1.0)          ifconfig : b44_open (b44_timer)
|    0.0% (  1.0)               vdr : do_nanosleep (hrtimer_wakeup)
 




More information about the vdr mailing list