<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">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.<div><br></div><div>Let me know what is and is not useful here.<br><div><br><div><div>On May 5, 2008, at 4:59 PM, Lennart Poettering wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><blockquote type="cite"><blockquote type="cite"><br class="Apple-interchange-newline">Most likely someone needs to spend some time to optimize the inner<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">loops (mixing, resampling, converting) a bit better for ARM.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Well the observations taken are when a single 44K file is being played with<br></blockquote><blockquote type="cite">pacat .. (so no resampling, mixing or converting comes into picture) ...<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">So i am not sure what part of Pulseaudio is causing high CPU Utilization ..<br></blockquote><br>Hmm, could you do some profiling then? Just the most basic. I.e. what<br>functions take up most CPU.</span></blockquote></div><br></div><div>I'll add more detail in a bit when we get to 0.9.10, h<span class="Apple-style-span" style="font-family: Verdana; "> pa_volume_memchunk</span> seems to be a big hitter on arm systems:</div><div><br></div><div><blockquote type="cite" class="">
<!--StartFragment--><font face="Verdana, Helvetica, Arial"><span style="font-size:12.0px">$ opreport -l /usr/bin/pulseaudio<br>
warning: /bridgedriver could not be found.<br>
CPU: CPU with timer interrupt, speed 0 MHz (estimated)<br>
Profiling through timer interrupt<br>
samples % image name symbol name<br>
3581 46.4763 libpulsecore.so.5.0.0 pa_volume_memchunk<br>
432 5.6067 libc-2.5.so memcpy<br>
277 3.5951 libm-2.5.so __adddf3<br>
183 2.3751 libpulsecore.so.5.0.0 .plt<br>
176 2.2842 libc-2.5.so strcmp<br>
141 1.8300 libm-2.5.so __muldf3<br>
77 0.9994 libm-2.5.so __ieee754_pow<br>
70 0.9085 System.map-2.6.24-palm-joplin-3430 mutex_trylock<br>
62 0.8047 libpulsecore.so.5.0.0 pa_mainloop_dispatch<br>
62 0.8047 libpulsecore.so.5.0.0 pa_rtpoll_run<br>
58 0.7528 libpstream.so do_something<br>
51 0.6619 System.map-2.6.24-palm-joplin-3430 do_sys_poll<br>
46 0.5970 libpulsecore.so.5.0.0 pa_msgobject_check_type<br>
44 0.5711 libm-2.5.so __ieee754_log<br>
39 0.5062 libc-2.5.so memset<br>
37 0.4802 module-alsa-sink.so thread_func<br>
36 0.4672 libm-2.5.so __exp1<br>
36 0.4672 libpulsecore.so.5.0.0 pa_memblock_unref<br>
31 0.4023 System.map-2.6.24-palm-joplin-3430 eventfd_write<br>
27 0.3504 libc-2.5.so poll<br>
27 0.3504 libm-2.5.so __cmpdf2<br>
27 0.3504 libpulsecore.so.5.0.0 pa_mainloop_prepare<br>
26 0.3374 System.map-2.6.24-palm-joplin-3430 lock_super<br>
25 0.3245 System.map-2.6.24-palm-joplin-3430 vector_swi<br>
25 0.3245 libc-2.5.so __libc_disable_asynccancel<br>
25 0.3245 libprotocol-native.so playback_stream_check_type<br>
25 0.3245 libpulsecore.so.5.0.0 __udivdi3<br>
25 0.3245 libpulsecore.so.5.0.0 pa_run_once<br>
25 0.3245 libpulsecore.so.5.0.0 pa_sink_input_check_type<br>
24 0.3115 libpulsecore.so.5.0.0 fill_mix_info<br>
23 0.2985 libasound.so.2.0.0 snd_pcm_hw_avail_update<br>
23 0.2985 libpulsecore.so.5.0.0 pa_asyncmsgq_get<br>
23 0.2985 libpulsecore.so.5.0.0 pa_flist_pop<br>
23 0.2985 libpulsecore.so.5.0.0 pa_sink_render_into<br>
23 0.2985 module-alsa-source.so thread_func<br>
22 0.2855 libprotocol-native.so sink_input_peek_cb<br>
21 0.2726 System.map-2.6.24-palm-joplin-3430 eventfd_read<br>
21 0.2726 System.map-2.6.24-palm-joplin-3430 sys_sched_get_priority_max<br>
21 0.2726 libpulsecore.so.5.0.0 pa_flist_push<br>
20 0.2596 libprotocol-native.so .plt<br>
20 0.2596 libpstream.so .plt<br>
20 0.2596 libpulsecore.so.5.0.0 pa_hashmap_iterate<br>
19 0.2466 libm-2.5.so __aeabi_cdcmple<br>
19 0.2466 libprotocol-native.so sink_input_drop_cb<br>
19 0.2466 libpulsecore.so.5.0.0 inputs_drop<br>
19 0.2466 libpulsecore.so.5.0.0 pa_sink_input_peek<br>
18 0.2336 libpulsecore.so.5.0.0 pa_memblock_acquire<br>
18 0.2336 libpulsecore.so.5.0.0 pa_object_check_type<br>
17 0.2206 libm-2.5.so powl<br>
17 0.2206 libpulsecore.so.5.0.0 pa_memblockq_drop<br>
17 0.2206 libpulsecore.so.5.0.0 pa_once_begin<br>
17 0.2206 libpulsecore.so.5.0.0 pa_sink_input_drop<br>
17 0.2206 libpulsecore.so.5.0.0 pa_sink_render_into_full<br>
17 0.2206 libpulsecore.so.5.0.0 pa_source_post<br>
17 0.2206 libpulsecore.so.5.0.0 stat_add<br>
16 0.2077 System.map-2.6.24-palm-joplin-3430 __copy_from_user<br>
16 0.2077 libc-2.5.so sigprocmask<br>
16 0.2077 libpulsecore.so.5.0.0 flush<br>
16 0.2077 libpulsecore.so.5.0.0 mainloop_defer_enable<br>
16 0.2077 libpulsecore.so.5.0.0 pa_asyncmsgq_post<br>
16 0.2077 libpulsecore.so.5.0.0 pa_mainloop_poll<br>
16 0.2077 libpulsecore.so.5.0.0 pa_memblock_ref<br>
15 0.1947 System.map-2.6.24-palm-joplin-3430 sock_fasync<br>
15 0.1947 libprotocol-native.so output_stream_check_type<br>
15 0.1947 libpulsecore.so.5.0.0 __udivsi3<br>
15 0.1947 libpulsecore.so.5.0.0 pa_sink_check_type<br>
14 0.1817 System.map-2.6.24-palm-joplin-3430 unix_autobind<br>
14 0.1817 libprotocol-native.so request_bytes<br>
14 0.1817 libpthread-2.5.so pthread_mutex_lock<br>
14 0.1817 libpulsecore.so.5.0.0 pa_asyncq_pop<br>
13 0.1687 System.map-2.6.24-palm-joplin-3430 fget_light<br>
13 0.1687 System.map-2.6.24-palm-joplin-3430 update_curr_rt<br>
13 0.1687 libasound.so.2.0.0 snd_pcm_mmap_commit<br>
13 0.1687 libpulsecore.so.5.0.0 pa_memblock_new_fixed<br>
13 0.1687 libpulsecore.so.5.0.0 pa_sample_size<br>
12 0.1557 System.map-2.6.24-palm-joplin-3430 __copy_to_user<br>
12 0.1557 System.map-2.6.24-palm-joplin-3430 __switch_to<br>
12 0.1557 System.map-2.6.24-palm-joplin-3430 set_anon_super<br>
12 0.1557 libasound.so.2.0.0 snd_pcm_mmap_begin<br>
12 0.1557 libc-2.5.so gettimeofday<br>
12 0.1557 libc-2.5.so ioctl<br>
12 0.1557 libpthread-2.5.so __pthread_disable_asynccancel<br>
12 0.1557 libpulsecore.so.5.0.0 pa_fdsem_after_poll<br>
12 0.1557 libpulsecore.so.5.0.0 pa_memblockq_pop_missing<br>
11 0.1428 libasound.so.2.0.0 sync_ptr1<br>
11 0.1428 libc-2.5.so __libc_enable_asynccancel<br>
11 0.1428 libm-2.5.so __subdf3<br>
11 0.1428 libpthread-2.5.so read</span></font>
<!--EndFragment-->
</blockquote></div></div></body></html>