[pulseaudio-discuss] Daemon gets terminated
Lennart Poettering
lennart at poettering.net
Wed Sep 12 04:02:38 PDT 2007
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
More information about the pulseaudio-discuss
mailing list