I have a wmv file (about 130MB) in the sd card, i reset and reboot the
device , the mediaserver process will occupy 90%+ cpu and keep that status
until the battery dry out.
I used gdb to debug the mediaserver process, but it seems I can't get the
all threads info, normally I just can see one thread. At one time, I get
all the thread info occasionally, and I will attach them below.
It's odd that I wrote some debug log info in the code but the log can't
output, it seems the stack below may not belong my problematic wmv file but
some files in the phone.
I am sorry I can't attach that wmv file for it's too large comparing to the
permission of gmail.
(gdb) info threads
> 9 Thread 715 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15
> 8 Thread 714 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> 7 Thread 713 0x84963b44 in BS_flush16 ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> 6 Thread 712 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> 5 Thread 199 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15
> 4 Thread 198 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> 3 Thread 197 0xffff0520 in ?? ()
> 2 Thread 196 0xffff0520 in ?? ()
> * 1 Thread 96 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> (gdb)
> (gdb) t 1
> [Switching to thread 1 (Thread 96)]#0 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> 200 ldmia sp!, {r4, r7}
> (gdb) bt
> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0x2043c,
> mutex=0x20424, reltime=0x0) at bionic/libc/bionic/pthread.c:1451
> #2 0x80212338 in __pthread_cond_timedwait (cond=0x2043c, mutex=0x20424,
> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474
> #3 0x8386d926 in android::Condition::wait (this=0x20360,
> buffer=0xbebd3a28,
> options=<value optimized out>)
> at frameworks/base/include/utils/threads.h:451
> #4 android::OMXCodec::read (this=0x20360, buffer=0xbebd3a28,
> options=<value optimized out>)
> at frameworks/base/media/libstagefright/OMXCodec.cpp:4244
> #5 0x83874c60 in extractVideoFrameWithCodecFlags (
> client=<value optimized out>, trackMeta=..., source=..., flags=1,
> frameTimeUs=-1, seekMode=2)
> at
> frameworks/base/media/libstagefright/StagefrightMetadataRetriever.cpp:316
> #6 0x83875086 in android::StagefrightMetadataRetriever::getFrameAtTime (
> this=<value optimized out>, timeUs=-1, option=2)
> at
> frameworks/base/media/libstagefright/StagefrightMetadataRetriever.cpp:447
> #7 0x8221a9ec in android::MetadataRetrieverClient::getFrameAtTime (
> this=0xebf0, timeUs=-1, option=2)
> at
> frameworks/base/media/libmediaplayerservice/MetadataRetrieverClient.cpp:2---Type
> <return> to continue, or q <return> to quit---
> 10
> #8 0x80942886 in android::BnMediaMetadataRetriever::onTransact
> (this=0xebf0,
> code=<value optimized out>, data=<value optimized out>,
> reply=0xbebd3b60,
> flags=16) at
> frameworks/base/media/libmedia/IMediaMetadataRetriever.cpp:210
> #9 0x80817566 in android::BBinder::transact (this=0xebf4, code=4,
> data=...,
> reply=0xbebd3b60, flags=16) at
> frameworks/base/libs/binder/Binder.cpp:107
> #10 0x8081a72c in android::IPCThreadState::executeCommand (this=0xab50,
> cmd=<value optimized out>)
> at frameworks/base/libs/binder/IPCThreadState.cpp:1012
> #11 0x8081a90e in android::IPCThreadState::joinThreadPool (this=0xab50,
> isMain=true) at frameworks/base/libs/binder/IPCThreadState.cpp:457
> #12 0x00008bda in main (argc=<value optimized out>, argv=<value optimized
> out>)
> at frameworks/base/media/mediaserver/main_mediaserver.cpp:66
> (gdb) t 2
> [Switching to thread 2 (Thread 196)]#0 0xffff0520 in ?? ()
> (gdb) bt
> #0 0xffff0520 in ?? ()
> Cannot access memory at address 0x69647538
> (gdb) t 3
> [Switching to thread 3 (Thread 197)]#0 0xffff0520 in ?? ()
> (gdb) bt
> #0 0xffff0520 in ?? ()
> Cannot access memory at address 0x69647538
> (gdb) t 3
> [Switching to thread 3 (Thread 197)]#0 0xffff0520 in ?? ()
> (gdb) bt
> #0 0xffff0520 in ?? ()
> (gdb) t 4
> [Switching to thread 4 (Thread 198)]#0 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> 200 ldmia sp!, {r4, r7}
> (gdb) bt
> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0xcd00,
> mutex=0xccfc, reltime=0x0) at bionic/libc/bionic/pthread.c:1451
> #2 0x80212338 in __pthread_cond_timedwait (cond=0xcd00, mutex=0xccfc,
> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474
> #3 0x8002b154 in android::Condition::wait (this=0xccd8)
> at frameworks/base/include/utils/threads.h:451
> #4 android::AudioFlinger::MixerThread::threadLoop (this=0xccd8)
> at frameworks/base/services/audioflinger/AudioFlinger.cpp:1861
> #5 0x8061d6ae in android::Thread::_threadLoop (user=<value optimized out>)
> at frameworks/base/libs/utils/Threads.cpp:770
> #6 0x8061dc0c in thread_data_t::trampoline (t=<value optimized out>)
> at frameworks/base/libs/utils/Threads.cpp:127
> #7 0x802129f8 in __thread_entry (
> func=0x8061db79 <thread_data_t::trampoline(thread_data_t const*)>,
> arg=0xc8a0, tls=<value optimized out>) at
> bionic/libc/bionic/pthread.c:207
> #8 0x802125c4 in pthread_create (thread_out=<value optimized out>,
> attr=0xbebd3884,
> start_routine=0x8061db79 <thread_data_t::trampoline(thread_data_t
> const*)>, arg=0xc8a0) at bionic/libc/bionic/pthread.c:343
> #9 0x00000000 in ?? ()
> (gdb) t 5
> [Switching to thread 5 (Thread 199)]#0 __ioctl ()
> at bionic/libc/arch-arm/syscalls/__ioctl.S:15
> 15 ldmfd sp!, {r4, r7}
> (gdb) bt
> #0 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15
> #1 0x80227230 in ioctl (fd=<value optimized out>, request=8)
> at bionic/libc/bionic/ioctl.c:41
> #2 0x80819f14 in android::IPCThreadState::talkWithDriver (this=0x104b0,
> doReceive=true) at frameworks/base/libs/binder/IPCThreadState.cpp:791
> #3 0x8081a8f0 in android::IPCThreadState::joinThreadPool (this=0x104b0,
> isMain=true) at frameworks/base/libs/binder/IPCThreadState.cpp:446
> #4 0x8081fe88 in android::PoolThread::threadLoop (this=0xc7a8)
> at frameworks/base/libs/binder/ProcessState.cpp:69
> #5 0x8061d6ae in android::Thread::_threadLoop (user=<value optimized out>)
> at frameworks/base/libs/utils/Threads.cpp:770
> #6 0x8061dc0c in thread_data_t::trampoline (t=<value optimized out>)
> at frameworks/base/libs/utils/Threads.cpp:127
> #7 0x802129f8 in __thread_entry (
> func=0x8061db79 <thread_data_t::trampoline(thread_data_t const*)>,
> arg=0xeae8, tls=<value optimized out>) at
> bionic/libc/bionic/pthread.c:207
> #8 0x802125c4 in pthread_create (thread_out=<value optimized out>,
> attr=0xbebd3b7c,
> start_routine=0x8061db79 <thread_data_t::trampoline(thread_data_t
> const*)>, arg=0xeae8) at bionic/libc/bionic/pthread.c:343
> #9 0x00000000 in ?? ()
> (gdb) t 6
> [Switching to thread 6 (Thread 712)]#0 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> 200 ldmia sp!, {r4, r7}
> (gdb) bt
> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0x2d974,
> mutex=0x2d970, reltime=0x0) at bionic/libc/bionic/pthread.c:1451
> #2 0x80212338 in __pthread_cond_timedwait (cond=0x2d974, mutex=0x2d970,
> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474
> #3 0x84701e2c in MM_SignalQ_Wait (handle=0x2d6e0, ppvUserArg=0x40094ed4)
> at vendor/qcom/proprietary/mm-osal/./src/MMSignal.c:268
> #4 0x84618c94 in FileSourceHelper::SourceThread (this=0x2d0b0)
> at
> vendor/qcom/proprietary/mm-parser/main/FileSource/src/filesourcehelper.cpp:3690
> #5 0x84618cd4 in FileSourceHelper::SourceThreadEntry (ptr=0x2d0b0)
> at
> vendor/qcom/proprietary/mm-parser/main/FileSource/src/filesourcehelper.cpp:3667
> #6 0x802129f8 in __thread_entry (
> func=0x84618ccd <FileSourceHelper::SourceThreadEntry(void*)>,
> arg=0x2d0b0,
> tls=<value optimized out>) at bionic/libc/bionic/pthread.c:207
> #7 0x802125c4 in pthread_create (thread_out=<value optimized out>,
> attr=0xbebd382c,
> start_routine=0x84618ccd <FileSourceHelper::SourceThreadEntry(void*)>,
> arg=0x2d0b0) at bionic/libc/bionic/pthread.c:343
> #8 0x00000000 in ?? ()
> (gdb) t 7
> [Switching to thread 7 (Thread 713)]#0 0x84963b44 in BS_flush16 ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> (gdb) bt
> #0 0x84963b44 in BS_flush16 ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #1 0x8494a52c in BS_getBits ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #2 0x849315f0 in decodeBitsOfESCCode ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #3 0x84990d98 in DecodeInverseIntraBlockQuantizeInterlace411 ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #4 0x84991920 in DecodeIntraBlockYInterlace411 ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #5 0x84991fb8 in DecodeFrameIMBInterlace411 ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #6 0x84992404 in decodeIInterlace411 ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #7 0x84962aa4 in WMVideoDecDecodeDataInternal ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_v---Type
> <return> to continue, or q <return> to quit---
> icuna/symbols/system/lib/libOmxWmvDec.so
> #8 0x8496318c in WMVideoDecDecodeData ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #9 0x849311f8 in WMVDecoder::Decode(VDEC_INPUT_BUFFER*, bool) ()
> from
> /home/ckt/work/R7627USNSKQLYA113023_shared/out/target/product/msm7627a_vicuna/symbols/system/lib/libOmxWmvDec.so
> #10 0x84920c7c in VideoDecoder::Decode (this=<value optimized out>,
> input=0x40f61cbc, checkBufAvail=false)
> at
> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/vdecoder_i.cpp:84
> #11 0x84922c2a in vdec_post_input_buffer (dec=<value optimized out>,
> frame=<value optimized out>, cookie=0x2e9d8)
> at
> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/vdec.cpp:913
> #12 0x84927828 in omx_vdec::push_one_input_buffer (this=0x3cf98,
> buffer=0x2e9d8)
> at
> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:6149
> #13 0x8492a346 in omx_vdec::empty_this_buffer_proxy (this=0x3cf98,
> hComp=<value optimized out>, buffer=0x2e9d8)
> at
> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:5361
> ---Type <return> to continue, or q <return> to quit---
> #14 0x8492a3ec in omx_vdec::empty_this_buffer_proxy_frame_based
> (this=0x3cf98,
> hComp=0x3cf9c, buffer=0x2e9d8)
> at
> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:5022
> #15 0x8492bd20 in omx_vdec::process_event_cb (ctxt=<value optimized out>,
> id=8 '\b')
> at
> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:1233
> #16 0x8492bdfc in message_thread (input=<value optimized out>)
> at
> vendor/qcom/proprietary/mm-video/qdsp5/vdec-omxrv9/../vdec-common/src/omx_vdec.cpp:211
> #17 0x802129f8 in __thread_entry (func=0x8492bdbd <message_thread(void*)>,
> arg=0x3cf98, tls=<value optimized out>) at
> bionic/libc/bionic/pthread.c:207
> #18 0x802125c4 in pthread_create (thread_out=<value optimized out>,
> attr=0x80238d28, start_routine=0x8492bdbd <message_thread(void*)>,
> arg=0x3cf98) at bionic/libc/bionic/pthread.c:343
> #19 0x00000000 in ?? ()
> (gdb) t 8
> [Switching to thread 8 (Thread 714)]#0 __futex_syscall3 ()
> at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> 200 ldmia sp!, {r4, r7}
> (gdb) bt
> #0 __futex_syscall3 () at bionic/libc/arch-arm/bionic/atomics_arm.S:200
> #1 0x80212264 in __pthread_cond_timedwait_relative (cond=0x19cf4,
> mutex=0x19ce8, reltime=0x0) at bionic/libc/bionic/pthread.c:1451
> #2 0x80212338 in __pthread_cond_timedwait (cond=0x19cf4, mutex=0x19ce8,
> abstime=0x0, clock=0) at bionic/libc/bionic/pthread.c:1474
> #3 0x83e0a7b4 in android::Condition::wait (this=0x19ce0)
> at frameworks/base/include/utils/threads.h:451
> #4 android::OMX::CallbackDispatcher::threadEntry (this=0x19ce0)
> at frameworks/base/media/libstagefright/omx/OMX.cpp:135
> #5 0x83e0a806 in android::OMX::CallbackDispatcher::ThreadWrapper (
> me=0xfffffe00) at frameworks/base/media/libstagefright/omx/OMX.cpp:120
> #6 0x802129f8 in __thread_entry (
> func=0x83e0a801
> <android::OMX::CallbackDispatcher::ThreadWrapper(void*)>,
> arg=0x19ce0, tls=<value optimized out>) at
> bionic/libc/bionic/pthread.c:207
> #7 0x802125c4 in pthread_create (thread_out=<value optimized out>,
> attr=0xbebd3890,
> start_routine=0x83e0a801
> <android::OMX::CallbackDispatcher::ThreadWrapper(void*)>, arg=0x19ce0) at
> bionic/libc/bionic/pthread.c:343
> #8 0x00000000 in ?? ()
> (gdb) t 9
> [Switching to thread 9 (Thread 715)]#0 __ioctl ()
> at bionic/libc/arch-arm/syscalls/__ioctl.S:15
> 15 ldmfd sp!, {r4, r7}
> (gdb) bt
> #0 __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:15
> #1 0x80227230 in ioctl (fd=<value optimized out>, request=0)
> at bionic/libc/bionic/ioctl.c:41
> #2 0x84a0094a in adsp_task_event (data=0x84a021a4)
> at vendor/qcom/proprietary/mm-core/adspsvc/src/adsprtossvc.c:174
> #3 0x802129f8 in __thread_entry (func=0x84a008f9 <adsp_task_event>,
> arg=0x84a021a4, tls=<value optimized out>)
> at bionic/libc/bionic/pthread.c:207
> #4 0x802125c4 in pthread_create (thread_out=<value optimized out>,
> attr=0x80238d28, start_routine=0x84a008f9 <adsp_task_event>,
> arg=0x84a021a4) at bionic/libc/bionic/pthread.c:343
> #5 0x00000000 in ?? ()
> (gdb)
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en