On 2014-04-29 15:30, Peter Meerwald wrote:
Hello,
Okay, so second iteration. The patch is no longer a draft, and numbers
look good; Peter Meerwald has confirmed my numbers of 15 - 25% less CPU in
low latency scenarios (right)?
here are the benchmark results (have been in private email to David so far
only):
measured with 'htop -d 50', accuracy +/- 0.7 probably, on beaglebaord-xm
(ARM Cortex-A8, TI OMAP3 @ 1GHz), gcc 4.8, kernel 3.14
srchannel iochannel
XXX PA ALSA paplay PA ALSA paplay
20 25.8 19.8 5.8 28.3 19.1 9.4
Total: 51.4 (srchannel) - 56.8 (iochannel) ~ 10% improvement
40 13.5 9.2 4.6 16.3 10.1 7.3
Total: 27.3 (srchannel) - 33.7 (iochannel) ~ 19% improvement
But as we can see, most of the improvement is actually on the client
side. And almost as much in absolute terms on the PA main thread side.
60 11.8 7.3 3.8 12.7 7.6 6.2
80 6.4 4.1 3.0 7.4 4.4 4.2
100 5.3 3.2 2.7 5.8 3.3 3.9
150 3.2 1.8 2.1 3.7 1.9 3.0
200 3.0 1.7 2.0 3.5 1.8 2.8
perf on ALSA thread with 20 msec (srchannel)
The ALSA thread logic should remain unchanged, regardless of protocol
mechanism. So maybe this is mostly a measure of the general accuracy :-)
I guess a perf on the client would show bigger differences.
5.57% pulseaudio [kernel.kallsyms] [k] snd_pcm_hwsync
2.25% pulseaudio [kernel.kallsyms] [k] finish_task_switch.isra.93
2.18% pulseaudio [kernel.kallsyms] [k] eventfd_write
1.71% pulseaudio libalsa-util.so [.] thread_func
1.69% pulseaudio [kernel.kallsyms] [k] __hrtimer_start_range_ns
1.56% pulseaudio [kernel.kallsyms] [k] vector_swi
1.45% pulseaudio [kernel.kallsyms] [k] do_sys_poll
1.42% pulseaudio [kernel.kallsyms] [k] snd_pcm_status
1.20% pulseaudio libpulsecommon-5.0.so [.] __udivsi3
1.10% pulseaudio [kernel.kallsyms] [k] clocksource_mmio_readl_up
1.06% pulseaudio libpulsecommon-5.0.so [.] stack_pop
0.99% pulseaudio [kernel.kallsyms] [k] __fget
0.93% pulseaudio libpulsecommon-5.0.so [.] stack_push
0.83% pulseaudio libpulsecommon-5.0.so [.] pa_memblock_unref
0.80% pulseaudio libpulsecore-5.0.so [.] pa_rtpoll_run
0.77% pulseaudio libc-2.18.so [.] memcpy
0.76% pulseaudio [kernel.kallsyms] [k] snd_pcm_sync_ptr
0.72% pulseaudio libpulsecore-5.0.so [.] pa_sink_input_peek
0.69% pulseaudio [kernel.kallsyms] [k] __copy_from_user
0.65% pulseaudio libpulsecommon-5.0.so [.] __udivdi3
0.63% pulseaudio libpulsecommon-5.0.so [.] do_write
perf on ALSA thread with 20 msec (iochannel)
4.89% pulseaudio [kernel.kallsyms] [k] snd_pcm_hwsync
2.43% pulseaudio [kernel.kallsyms] [k] finish_task_switch.isra.93
1.67% pulseaudio [kernel.kallsyms] [k] vector_swi
1.65% pulseaudio [kernel.kallsyms] [k] clocksource_mmio_readl_up
1.55% pulseaudio libalsa-util.so [.] thread_func
1.39% pulseaudio [kernel.kallsyms] [k] eventfd_write
1.25% pulseaudio [kernel.kallsyms] [k] do_sys_poll
1.25% pulseaudio libpulsecommon-5.0.so [.] __udivsi3
1.20% pulseaudio [kernel.kallsyms] [k] snd_pcm_status
1.19% pulseaudio [kernel.kallsyms] [k] __wake_up_sync_key
1.13% pulseaudio [kernel.kallsyms] [k] __hrtimer_start_range_ns
1.02% pulseaudio libpulsecommon-5.0.so [.] stack_pop
0.99% pulseaudio libpulsecommon-5.0.so [.] stack_push
0.97% pulseaudio libpulsecommon-5.0.so [.] do_pstream_read_write
0.92% pulseaudio [kernel.kallsyms] [k] __fget
0.77% pulseaudio libpulsecommon-5.0.so [.] pa_memblock_unref
0.69% pulseaudio libpulsecore-5.0.so [.] pa_rtpoll_run
0.68% pulseaudio [kernel.kallsyms] [k] __copy_from_user
0.68% pulseaudio libc-2.18.so [.] memcpy
regards, p.
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss