[pulseaudio-discuss] Re : Effects of Clock Resolution on Pulseaudio

Nick Thompson rextanka at comcast.net
Tue Jul 22 17:13:46 PDT 2008


A while back, the subject of Arm performance came up.  I've been  
profiling 0.9.8, and we are porting 0.9.10 to our device this week so  
we'll look at that soon.  Output from oprofile is below.

Let me know what is and is not useful here.

On May 5, 2008, at 4:59 PM, Lennart Poettering wrote:

>>>
>>> Most likely someone needs to spend some time to optimize the inner
>>> loops (mixing, resampling, converting)  a bit better for ARM.
>>
>> Well the observations taken are when a single 44K file is being  
>> played with
>> pacat ..  (so no resampling, mixing or converting comes into  
>> picture) ...
>>
>> So i am not sure what part of Pulseaudio is causing high CPU  
>> Utilization ..
>
> Hmm, could you do some profiling then? Just the most basic. I.e. what
> functions take up most CPU.

I'll add more detail in a bit when we get to 0.9.10, h  
pa_volume_memchunk seems to be a big hitter on arm systems:

> $ opreport -l /usr/bin/pulseaudio
> warning: /bridgedriver could not be found.
> CPU: CPU with timer interrupt, speed 0 MHz (estimated)
> Profiling through timer interrupt
> samples  %        image name               symbol name
> 3581     46.4763  libpulsecore.so.5.0.0    pa_volume_memchunk
> 432       5.6067  libc-2.5.so              memcpy
> 277       3.5951  libm-2.5.so              __adddf3
> 183       2.3751  libpulsecore.so.5.0.0    .plt
> 176       2.2842  libc-2.5.so              strcmp
> 141       1.8300  libm-2.5.so              __muldf3
> 77        0.9994  libm-2.5.so              __ieee754_pow
> 70        0.9085  System.map-2.6.24-palm-joplin-3430 mutex_trylock
> 62        0.8047  libpulsecore.so.5.0.0    pa_mainloop_dispatch
> 62        0.8047  libpulsecore.so.5.0.0    pa_rtpoll_run
> 58        0.7528  libpstream.so            do_something
> 51        0.6619  System.map-2.6.24-palm-joplin-3430 do_sys_poll
> 46        0.5970  libpulsecore.so.5.0.0    pa_msgobject_check_type
> 44        0.5711  libm-2.5.so              __ieee754_log
> 39        0.5062  libc-2.5.so              memset
> 37        0.4802  module-alsa-sink.so      thread_func
> 36        0.4672  libm-2.5.so              __exp1
> 36        0.4672  libpulsecore.so.5.0.0    pa_memblock_unref
> 31        0.4023  System.map-2.6.24-palm-joplin-3430 eventfd_write
> 27        0.3504  libc-2.5.so              poll
> 27        0.3504  libm-2.5.so              __cmpdf2
> 27        0.3504  libpulsecore.so.5.0.0    pa_mainloop_prepare
> 26        0.3374  System.map-2.6.24-palm-joplin-3430 lock_super
> 25        0.3245  System.map-2.6.24-palm-joplin-3430 vector_swi
> 25        0.3245  libc-2.5.so              __libc_disable_asynccancel
> 25        0.3245  libprotocol-native.so    playback_stream_check_type
> 25        0.3245  libpulsecore.so.5.0.0    __udivdi3
> 25        0.3245  libpulsecore.so.5.0.0    pa_run_once
> 25        0.3245  libpulsecore.so.5.0.0    pa_sink_input_check_type
> 24        0.3115  libpulsecore.so.5.0.0    fill_mix_info
> 23        0.2985  libasound.so.2.0.0       snd_pcm_hw_avail_update
> 23        0.2985  libpulsecore.so.5.0.0    pa_asyncmsgq_get
> 23        0.2985  libpulsecore.so.5.0.0    pa_flist_pop
> 23        0.2985  libpulsecore.so.5.0.0    pa_sink_render_into
> 23        0.2985  module-alsa-source.so    thread_func
> 22        0.2855  libprotocol-native.so    sink_input_peek_cb
> 21        0.2726  System.map-2.6.24-palm-joplin-3430 eventfd_read
> 21        0.2726  System.map-2.6.24-palm-joplin-3430  
> sys_sched_get_priority_max
> 21        0.2726  libpulsecore.so.5.0.0    pa_flist_push
> 20        0.2596  libprotocol-native.so    .plt
> 20        0.2596  libpstream.so            .plt
> 20        0.2596  libpulsecore.so.5.0.0    pa_hashmap_iterate
> 19        0.2466  libm-2.5.so              __aeabi_cdcmple
> 19        0.2466  libprotocol-native.so    sink_input_drop_cb
> 19        0.2466  libpulsecore.so.5.0.0    inputs_drop
> 19        0.2466  libpulsecore.so.5.0.0    pa_sink_input_peek
> 18        0.2336  libpulsecore.so.5.0.0    pa_memblock_acquire
> 18        0.2336  libpulsecore.so.5.0.0    pa_object_check_type
> 17        0.2206  libm-2.5.so              powl
> 17        0.2206  libpulsecore.so.5.0.0    pa_memblockq_drop
> 17        0.2206  libpulsecore.so.5.0.0    pa_once_begin
> 17        0.2206  libpulsecore.so.5.0.0    pa_sink_input_drop
> 17        0.2206  libpulsecore.so.5.0.0    pa_sink_render_into_full
> 17        0.2206  libpulsecore.so.5.0.0    pa_source_post
> 17        0.2206  libpulsecore.so.5.0.0    stat_add
> 16        0.2077  System.map-2.6.24-palm-joplin-3430 __copy_from_user
> 16        0.2077  libc-2.5.so              sigprocmask
> 16        0.2077  libpulsecore.so.5.0.0    flush
> 16        0.2077  libpulsecore.so.5.0.0    mainloop_defer_enable
> 16        0.2077  libpulsecore.so.5.0.0    pa_asyncmsgq_post
> 16        0.2077  libpulsecore.so.5.0.0    pa_mainloop_poll
> 16        0.2077  libpulsecore.so.5.0.0    pa_memblock_ref
> 15        0.1947  System.map-2.6.24-palm-joplin-3430 sock_fasync
> 15        0.1947  libprotocol-native.so    output_stream_check_type
> 15        0.1947  libpulsecore.so.5.0.0    __udivsi3
> 15        0.1947  libpulsecore.so.5.0.0    pa_sink_check_type
> 14        0.1817  System.map-2.6.24-palm-joplin-3430 unix_autobind
> 14        0.1817  libprotocol-native.so    request_bytes
> 14        0.1817  libpthread-2.5.so        pthread_mutex_lock
> 14        0.1817  libpulsecore.so.5.0.0    pa_asyncq_pop
> 13        0.1687  System.map-2.6.24-palm-joplin-3430 fget_light
> 13        0.1687  System.map-2.6.24-palm-joplin-3430 update_curr_rt
> 13        0.1687  libasound.so.2.0.0       snd_pcm_mmap_commit
> 13        0.1687  libpulsecore.so.5.0.0    pa_memblock_new_fixed
> 13        0.1687  libpulsecore.so.5.0.0    pa_sample_size
> 12        0.1557  System.map-2.6.24-palm-joplin-3430 __copy_to_user
> 12        0.1557  System.map-2.6.24-palm-joplin-3430 __switch_to
> 12        0.1557  System.map-2.6.24-palm-joplin-3430 set_anon_super
> 12        0.1557  libasound.so.2.0.0       snd_pcm_mmap_begin
> 12        0.1557  libc-2.5.so              gettimeofday
> 12        0.1557  libc-2.5.so              ioctl
> 12        0.1557  libpthread-2.5.so         
> __pthread_disable_asynccancel
> 12        0.1557  libpulsecore.so.5.0.0    pa_fdsem_after_poll
> 12        0.1557  libpulsecore.so.5.0.0    pa_memblockq_pop_missing
> 11        0.1428  libasound.so.2.0.0       sync_ptr1
> 11        0.1428  libc-2.5.so              __libc_enable_asynccancel
> 11        0.1428  libm-2.5.so              __subdf3
> 11        0.1428  libpthread-2.5.so        read
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20080722/3e074e58/attachment.htm>


More information about the pulseaudio-discuss mailing list