User:Hlangos: Difference between revisions
Line 36: | Line 36: | ||
|} |
|} |
||
As you can see the differences in system load are quite dramatic. The dominating factor is the number of USB transfers. Looking at the sources the dib0700 driver seems to use 39480 byte buffers. I have to get my hands on one of those devices! :-) |
As you can see the differences in system load are quite dramatic. The dominating factor is the number of USB transfers. Looking at the dvb sources, the dib0700 driver seems to use 39480 byte buffers. I have to get my hands on one of those devices! :-) |
||
=== Detailed powertop measurements === |
=== Detailed powertop measurements === |
Revision as of 22:04, 11 April 2009
System Load
Comparison
The following table shows system load. That is time spent in C0(cpu running) in contrast to time spent in one of the sleep states. It should be noted that the work is being done at 188MHz on a 1.5GHz CPU. If your machine has a multicore desktop CPU running at full speed all the time you will probably not even notice that there IS a load on the machine.
Device | MSI DigiVOX mini II V3.0 |
Fujitsu-Siemens DVB-T Mobile TV Tuner |
Toshiba USB DVB-T Tuner PX1211E-1TVD |
Sino Video SV3420D-V02 |
---|---|---|---|---|
driver | af9015 | vp7045 | dib3000mc | ec168 |
Picture | todo | |||
usb transfer blocksize |
512 | 4096 | 4096 | 16384 |
zap w/o pid filter |
27.6 | 5.8 | 5.8 | 2.3 |
vdr w/o pid filter |
34.3 | 14.8 | 13.4 | 4.4 |
zap with pid filter |
1.1 | - | 0.5 | - |
vdr with pid filter |
14.7 | - | 8.0 | - |
As you can see the differences in system load are quite dramatic. The dominating factor is the number of USB transfers. Looking at the dvb sources, the dib0700 driver seems to use 39480 byte buffers. I have to get my hands on one of those devices! :-)
Detailed powertop measurements
More details:
I ran zap and vdr on a system that is idle. Without zap or vdr the system does about 5 wakups per second and spends about 0.1% of its time in C0 (cpu running).
Polling of the remote is disabled using the module option disable_rc_polling=1 for the dvb_usb module.
The hardware PID filter is enabled with the option force_pid_filter_usage=1 for the dvb_usb module.
vdr is the one from e-tobi.net/vdr-experimental lenny vdr-extensions here's the list of plugins that were enabled during the test: | Searching for plugins (VDR 1.6.0-2/1.6.0) (cache hit): epgsearch quickepgsearch conflictcheckonly live epgsearchonly ffnetdev streamdev-server.
MSI DigiVOX mini II rev.3
Compiled and installed according to the instructions on MSI_DigiVox_mini_II_V3.0.
The device has a hardware PID filter, but the maximum block size for transfers over USB seems to be limited to 512 byte. This causes a lot of protocol overhead.
##################################################### ==================== remote disabled, pid filter disabled ------------------ running zap PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) (27.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.0ms ( 0.0%) 188 Mhz 100.0% C3 0.3ms (72.4%) Wakeups-from-idle per second : 2721.4 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 63.1% (4686.6) /sys/bus/usb/devices/5-1 36.7% (2724.0) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 0.1% ( 7.1) zap : schedule_timeout (process_timeout) 0.0% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.0% ( 1.6) <kernel module> : ehci_work (ehci_watchdog) 0.0% ( 1.6) xfsbufd : schedule_timeout (process_timeout) 0.0% ( 1.0) kdvb-ad-0-fe-0 : schedule_timeout (process_timeout) 0.0% ( 1.0) ifconfig : b44_open (b44_timer) 0.0% ( 1.0) zap : do_nanosleep (hrtimer_wakeup) 0.0% ( 0.5) <kernel core> : neigh_table_init_no_netlink (neigh_periodic_timer) ------------------- running vdr PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) (34.4%) 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.4ms (36.3%) 188 Mhz 100.0% C3 0.2ms (29.3%) Wakeups-from-idle per second : 2580.6 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 59.1% (4300.1) /sys/bus/usb/devices/5-1 37.6% (2730.7) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 3.0% (221.1) vdr : futex_wait (hrtimer_wakeup) 0.1% ( 6.1) 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.5) vdr : hrtick_set (hrtick) 0.0% ( 1.0) ifconfig : b44_open (b44_timer) 0.0% ( 1.0) vdr : do_nanosleep (hrtimer_wakeup) 0.0% ( 1.0) tail : do_nanosleep (hrtimer_wakeup) 0.0% ( 0.9) <kernel module> : ehci_work (ehci_watchdog) ####################################### ------------------ remote disabled, pid filter enabled: ------------------ running 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 11.4ms (98.9%) Wakeups-from-idle per second : 89.0 interval: 15.0s no ACPI power usage estimate available Top causes for wakeups: 47.5% ( 63.9) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 31.9% ( 43.0) /sys/bus/usb/devices/5-1 8.1% ( 10.9) <kernel module> : ehci_work (ehci_watchdog) 5.6% ( 7.6) zap : schedule_timeout (process_timeout) 1.5% ( 2.0) xfsaild : schedule_timeout (process_timeout) 1.3% ( 1.7) xfsbufd : schedule_timeout (process_timeout) 0.7% ( 1.0) zap : do_nanosleep (hrtimer_wakeup) 0.7% ( 1.0) ifconfig : b44_open (b44_timer) 0.7% ( 1.0) kdvb-ad-0-fe-0 : schedule_timeout (process_timeout) 0.4% ( 0.5) <kernel core> : neigh_table_init_no_netlink (neigh_periodic_timer) ------------------ running vdr PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) (14.7%) 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.2%) 188 Mhz 100.0% C3 1.1ms (85.1%) Wakeups-from-idle per second : 823.2 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 46.2% (784.8) /sys/bus/usb/devices/5-1 39.4% (668.4) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 13.0% (221.3) vdr : futex_wait (hrtimer_wakeup) 0.4% ( 6.9) <kernel module> : ehci_work (ehci_watchdog) 0.4% ( 6.3) vdr : schedule_timeout (process_timeout) 0.1% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.1% ( 1.6) xfsbufd : schedule_timeout (process_timeout) 0.1% ( 1.0) tail : do_nanosleep (hrtimer_wakeup) 0.1% ( 1.0) ifconfig : b44_open (b44_timer) 0.1% ( 1.0) vdr : do_nanosleep (hrtimer_wakeup) 0.1% ( 0.9) kdvb-ad-0-fe-0 : schedule_timeout (process_timeout) 0.0% ( 0.5) <kernel core> : neigh_table_init_no_netlink (neigh_periodic_timer) #########################################
Fujitsu-Siemens DVB-T Mobile TV Tuner
It doesn't have a hardware PID filter but uses 4096 byte bulk transfers over USB. Thus has less USB protocol overhead.
--------------------------- without remote, without pid filter ------------------ zap PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) ( 5.7%) 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 2.0ms (94.3%) Wakeups-from-idle per second : 473.5 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 55.7% (592.2) USB device 5-1 : DVB-T 2 (Afatech) 42.9% (455.9) <interrupt> : uhci_hcd:usb1, ehci_hcd:usb5, HDA Intel 0.5% ( 5.7) zap : schedule_timeout (process_timeout) 0.2% ( 2.4) kdvb-ad-0-fe-0 : schedule_timeout (process_timeout) 0.2% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.2% ( 1.6) xfsbufd : schedule_timeout (process_timeout) 0.1% ( 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) (13.0%) 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.1%) 188 Mhz 100.0% C3 1.5ms (86.8%) Wakeups-from-idle per second : 611.1 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 45.1% (540.5) USB device 5-1 : DVB-T 2 (Afatech) 34.9% (418.2) <interrupt> : uhci_hcd:usb1, ehci_hcd:usb5, HDA Intel 18.4% (220.8) vdr : futex_wait (hrtimer_wakeup) --------------------------
Toshiba USB DVB-T TV PX1211E-1TVD
This device has a hardware PID filter and uses 4096 Byte bulk transfers.
[329345.857835] dvb-usb: found a 'LITE-ON USB2.0 DVB-T Tuner' in warm state. [329345.859820] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [329345.862374] DVB: registering new adapter (LITE-ON USB2.0 DVB-T Tuner) [329345.875554] DVB: registering adapter 0 frontend 0 (DiBcom 3000MC/P)... [329345.898401] MT2060: successfully identified (IF1 = 1220) [329346.390290] dvb-usb: LITE-ON USB2.0 DVB-T Tuner successfully initialized and connected. [329346.390729] usbcore: registered new interface driver dvb_usb_dibusb_mc ===================================== without pid filter ============ zap PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) ( 5.8%) 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.0%) 188 Mhz 100.0% C3 2.0ms (94.2%) Wakeups-from-idle per second : 484.0 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 55.9% (611.8) USB device 5-1 : DVB-T 2 (Afatech) 42.9% (469.2) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 0.5% ( 5.5) zap : schedule_timeout (process_timeout) 0.2% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.1% ( 1.6) xfsbufd : schedule_timeout (process_timeout) 0.1% ( 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) (13.4%) 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.1%) 188 Mhz 100.0% C3 1.4ms (86.5%) Wakeups-from-idle per second : 616.6 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 45.5% (553.8) /sys/bus/usb/devices/5-1 35.0% (425.1) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 18.2% (221.1) vdr : futex_wait (hrtimer_wakeup) 0.5% ( 5.9) vdr : schedule_timeout (process_timeout) 0.2% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.1% ( 1.8) xfsbufd : schedule_timeout (process_timeout) 0.1% ( 1.0) ifconfig : b44_open (b44_timer) 0.1% ( 1.0) tail : do_nanosleep (hrtimer_wakeup) 0.1% ( 1.0) vdr : do_nanosleep (hrtimer_wakeup) 0.0% ( 0.5) <kernel core> : neigh_table_init_no_netlink (neigh_periodic_timer) 0.0% ( 0.5) <kernel core> : schedule_delayed_work_on (delayed_work_timer_fn) 0.0% ( 0.5) kdvb-ad-0-fe-0 : schedule_timeout (process_timeout) =================================with pid filter ==================== zap PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) ( 0.5%) 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 36.1ms (99.5%) Wakeups-from-idle per second : 27.6 interval: 20.0s no ACPI power usage estimate available Top causes for wakeups: 31.2% ( 10.0) syslogd : ehci_irq (ehci_watchdog) 29.0% ( 9.3) zap : schedule_timeout (process_timeout) 8.7% ( 2.8) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 6.2% ( 2.0) xfsaild : schedule_timeout (process_timeout) 5.8% ( 1.9) USB device 5-1 : DVB-T 2 (Afatech) 5.3% ( 1.7) xfsbufd : schedule_timeout (process_timeout) 3.1% ( 1.0) ifconfig : b44_open (b44_timer) 3.1% ( 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) ( 8.0%) 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.0%) 188 Mhz 100.0% C3 3.0ms (91.9%) Wakeups-from-idle per second : 311.3 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 50.1% (221.4) vdr : futex_wait (hrtimer_wakeup) 24.3% (107.5) /sys/bus/usb/devices/5-1 20.3% ( 89.5) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 1.7% ( 7.3) <kernel module> : ehci_work (ehci_watchdog) 1.4% ( 6.0) vdr : schedule_timeout (process_timeout) 0.5% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.4% ( 1.8) xfsbufd : schedule_timeout (process_timeout) 0.2% ( 1.0) ifconfig : b44_open (b44_timer) 0.2% ( 1.0) vdr : do_nanosleep (hrtimer_wakeup) 0.2% ( 1.0) tail : do_nanosleep (hrtimer_wakeup) 0.1% ( 0.5) kdvb-ad-0-fe-0 : schedule_timeout (process_timeout)
SinoVideo SV3420D-V02
This device is based on the E3C_EC168 Chip. Support is very experimental and based on USB sniffing. Most features will not work. It probably does not have a pid filter but thats just one of the many unknowns. If anybody gets hold of the EC168 or EC188 specs please please send me a copy.
The name and number schema seems a little intransparent for the whole family of devices but they are cheap as chips. I picked up mine new via ebay from a Chinese shop for less than 6 Euros (+pp), including remote and antenna. It was sold to me as SV3420B but the PCB says SV3420D-V02. I've seen pictures of the device under a lot of different pseudo brands. (Try a google image search for "3420 DVB-T".)
The driver CD is named "SV3420A" and all files are timestamped September 2007. So my guess is that the only changes that happened between the "A" version an the current "D-V02" version are changes to the case design, the PCB layout and maybe some minor components. Since the windows driver seems to be the same for all those devices, my guess is that the Linux driver should also work equally for all of them.
[1217714.429823] usb 5-1: new high speed USB device using ehci_hcd and address 11 [1217714.561392] usb 5-1: configuration #1 chosen from 1 choice [1217714.572099] input: HID 18b4:1689 as /class/input/input9 [1217714.600549] input,hidraw0: USB HID v1.11 Keyboard [HID 18b4:1689] on usb-0000:00:1d.7-1 [1217714.601760] usb 5-1: New USB device found, idVendor=18b4, idProduct=1689 [1217714.601896] usb 5-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Without any driver the device is recognized as hid raw device.
[1220628.851806] dvb-usb: found a 'E3C EC168 DVB-T USB2.0 reference design' in cold state, will try to load a firmware [1220628.852984] firmware: requesting dvb-usb-ec168.fw [1220629.527759] dvb-usb: downloading firmware from file 'dvb-usb-ec168.fw' [1220629.551527] dvb-usb: found a 'E3C EC168 DVB-T USB2.0 reference design' in warm state. [1220629.552845] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [1220629.554959] DVB: registering new adapter (E3C EC168 DVB-T USB2.0 reference design) [1220629.558609] DVB: registering adapter 0 frontend 0 (E3C EC100 DVB-T)... [1220629.559342] MXL5005S: Attached at address 0xc6 [1220629.560823] dvb-usb: E3C EC168 DVB-T USB2.0 reference design successfully initialized and connected. [1220629.561204] usbcore: registered new interface driver dvb_usb_ec168
After compiling the ec168 driver as described in a possible way to get the ec168 working the device is registered by the dvb_usb framework.
Having it recognized as hid device causes additional 10 wakups per second and an idle load in C0 of 0.4%. I unloaded the usbhid module to have the same baseline for my load tests.
====================================== running zap PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) ( 2.3%) 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.0%) 188 Mhz 100.0% C3 7.4ms (97.7%) Wakeups-from-idle per second : 132.2 interval: 15.0s no ACPI power usage estimate available Top causes for wakeups: 51.2% (135.7) USB device 5-1 : TvTUNER (SKGZ) 42.7% (113.1) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 2.7% ( 7.1) zap : schedule_timeout (process_timeout) 0.8% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.7% ( 1.7) xfsbufd : schedule_timeout (process_timeout) 0.4% ( 1.0) ifconfig : b44_open (b44_timer) 0.4% ( 1.0) zap : do_nanosleep (hrtimer_wakeup) 0.2% ( 0.6) kdvb-ad-0-fe-0 : schedule_timeout (process_timeout) ======================================= running vdr PowerTOP version 1.10 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) ( 4.4%) 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.0%) 188 Mhz 100.0% C3 3.5ms (95.6%) Wakeups-from-idle per second : 278.3 interval: 10.0s no ACPI power usage estimate available Top causes for wakeups: 70.8% (222.8) vdr : futex_wait (hrtimer_wakeup) 7.9% ( 24.7) <interrupt> : uhci_hcd:usb1, HDA Intel, ehci_hcd:usb5 7.4% ( 23.3) /sys/bus/usb/devices/5-1 6.3% ( 19.7) vdr : schedule_timeout (process_timeout) 4.4% ( 13.8) <kernel module> : ehci_work (ehci_watchdog) 0.6% ( 2.0) xfsaild : schedule_timeout (process_timeout) 0.5% ( 1.6) xfsbufd : schedule_timeout (process_timeout) 0.3% ( 1.0) ifconfig : b44_open (b44_timer) 0.3% ( 1.0) vdr : do_nanosleep (hrtimer_wakeup) 0.3% ( 1.0) tail : do_nanosleep (hrtimer_wakeup)