On Tue, 11.09.07 19:28, DSK (dsk.in.2007 at gmail.com) wrote: > Each sample counts as 0.01 seconds. > % cumulative self self total > time seconds seconds calls us/call us/call name > 12.18 0.19 0.19 20503 9.27 pa_mainloop_dispatch > 10.26 0.35 0.16 440486 0.36 AO_compare_and_swap_emulation Hmm, apparently libatomic_ops doesn't know your architecture (which is ARM, if I remember?), and is emulating cmpxchg wiht mutexes. This is a huge hit on perfomance (but probably not the only problem you're experiencing.) Fixing this should be a top priority for getting PA working properly on ARM. To fix this, you need to add native atomic operation support to PA for your architecture. For that you should add a new arch-specific block to src/pulsecore/atomic.h, starting like this: #elif defined(__GNUC__) && defined(__arm__) /* ... */ #endif Inspiration for the needed assembly could be glib, or glibc, or even the kernel (the kernel however is problematic, since the kernel doesn't do a memory barrier for atomic ops, but otoh there's no smp for arm, is there? so this doesn't really matter). Since I have no access to ARM I unfortunately cannot help you much on implementing this. > 5.77 0.44 0.09 20503 4.39 pa_mainloop_prepare > 5.77 0.53 0.09 0 0.00 mainloop_io_enable > 3.85 0.59 0.06 79847 0.75 AO_store_full_emulation > 3.85 0.65 0.06 0 0.00 mainloop_defer_enable > 3.21 0.70 0.05 20503 2.44 pa_mainloop_iterate > 3.21 0.75 0.05 13920 3.59 pa_asyncq_pop > 3.21 0.80 0.05 0 0.00 __udivdi3 > 2.56 0.84 0.04 31016 1.29 pa_mainloop_wakeup > 2.56 0.88 0.04 29323 1.36 pa_flist_push > 2.56 0.92 0.04 20503 1.95 pa_mainloop_poll > 2.56 0.96 0.04 14476 2.76 pa_queue_pop > 1.92 0.99 0.03 64321 0.47 pa_run_once > 1.92 1.02 0.03 49234 0.61 pa_timeval_cmp > 1.92 1.05 0.03 32862 0.91 pa_gettimeofday > 1.92 1.08 0.03 16398 1.83 pa_timeval_diff > 1.92 1.11 0.03 8515 3.52 pa_asyncq_push > 1.92 1.14 0.03 8502 3.53 pa_asyncmsgq_post > 1.92 1.17 0.03 8484 3.54 pa_asyncmsgq_done > 1.92 1.20 0.03 3055 9.82 pa_memimport_get > 1.28 1.22 0.02 150456 0.13 pa_msgobject_check_type > 1.28 1.24 0.02 29575 0.68 pa_flist_pop > 1.28 1.26 0.02 17000 1.18 pa_fdsem_post > 1.28 1.28 0.02 14697 1.36 pa_mutex_unlock > 1.28 1.30 0.02 13918 1.44 pa_asyncmsgq_get > 1.28 1.32 0.02 7873 2.54 pa_write > 1.28 1.34 0.02 7611 2.63 pa_xfree > 1.28 1.36 0.02 5414 3.69 pa_queue_push Lennart -- Lennart Poettering Red Hat, Inc. lennart [at] poettering [dot] net ICQ# 11060553 http://0pointer.net/lennart/ GnuPG 0x1A015CC4