• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Embedded Software » Linux » Linux forum » LPM ON/OFF fails
Share
Linux
  • Forum
Options
  • Subscribe via RSS

Forums

LPM ON/OFF fails

This question has suggested answer(s)
sachinpdesai
Posted by sachinpdesai
on Apr 26 2012 11:17 AM
Intellectual1260 points

We have an application running on ARM (Critex-A8) of DM3730 and an algorithm executing remotely on the DSP under the Codec Engine (2.26.02.11) framework. Under  normal execution the application runs for a preset amount time and then deletes the algorithm, does Engine_close and exits. We are able to do multiple run of the application in this way.

However if the application terminates abruptly (say through Ctrl-c) and thus unable to execute the normal shutdown of DSP, we sometime run into situation whereby we are unable to re-run the application. We get  following error

@1,158,020us: [+0 T:0x41a93490] OP - doCmd> Enter (cmdId=1, proc=0x62840)
@1,158,081us: [+0 T:0x41a93490] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x621c0]
@1,158,234us: [+0 T:0x40c49490] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x621c0] status[0]
@1,158,295us: [+0 T:0x40c49490] OP - getCmd_d> Exit (result=1)
@1,158,356us: [+0 T:0x40c49490] OP - Processor_create_d> Enter(proc=0x62840)
@1,158,417us: [+0 T:0x40c49490] ti.sdo.ce.ipc.Power - Power_on> Enter(handle=0x6285c)
@1,158,448us: [+2 T:0x40c49490] ti.sdo.ce.ipc.Power - Power_on> Opening Local Power Manager for the DSP on /dev/lpm0...
@1,158,570us: [+2 T:0x40c49490] ti.sdo.ce.ipc.Power - Power_on> Turning on DSP power...
@1,365,479us: [+7 T:0x40c49490] ti.sdo.ce.ipc.Power - Power_on> Turning on DSP power FAILED
@1,365,540us: [+2 T:0x40c49490] ti.sdo.ce.ipc.Power - Power_on> return (1)
@1,365,601us: [+6 T:0x40c49490] OP - Processor_create_d> Power_on failed.
@1,365,631us: [+2 T:0x40c49490] OP - Processor_create_d> return (0)
@1,365,692us: [+0 T:0x40c49490] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x621d8]
@1,365,784us: [+0 T:0x40c49490] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x621d8]
@1,365,815us: [+0 T:0x40c49490] OP - getCmd_d> Enter (proc=0x40c48dec)
@1,365,876us: [+0 T:0x40c49490] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x621c0] timeout[0xffffffff]
@1,365,937us: [+0 T:0x41a93490] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x621c0]
@1,365,967us: [+0 T:0x41a93490] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x621d8] timeout[0xffffffff]

We thought one way around this issue is to explicitly call lpmOFF followed by lpmON and then rerun the application. But the lpmOFF itself fails wiht folowing o/p

==== LPM OFF Test ====
app: LPM_open
app: LPM_set(LPM_CTRL_REFCOUNTOVR)
app: LPM_off
app: Error: LPM_off failed
app: LPM_close
==== LPM OFF test completed ====

We have following questions

1) How can we debug/fix this issue?

2) Our idea is to have signal handler installed in our application that will actually turn off/on the DSP core in the event of unexpected termination of the application. Is that doable?

3) Does LPM use DSPLink?

Sachin


Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Chris Ring
    Posted by Chris Ring
    on Apr 26 2012 11:40 AM
    Genius16190 points

    If you enable trace in the LPM driver, do the trace logs provide any more details why LPM_off() is failing?

    Chris

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • sachinpdesai
    Posted by sachinpdesai
    on Apr 26 2012 12:14 PM
    Intellectual1260 points

    The lpm is built with debug and the trace is turned on. I have put the trace in the posting as well. Are you expecting to see more trace?

    I have received some suggestion asking me to unloading/reloading LPM and DSPLINK before executing the lpmOFF/ON. On trying unload/load I get an error with unloading of dsplink

    root@dm37x-evm:~/afe# rmmod lpm_omap3530.ko

    root@dm37x-evm:~/afe# rmmod cmemk.ko

    [80146.277343] cmemk unregistered

    root@dm37x-evm:~/afe# rmmod dsplinkk.ko

    ERROR: Module dsplinkk is in use

    Note that I am able to unload all the modules if the application terminates correctly.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • sachinpdesai
    Posted by sachinpdesai
    on Apr 26 2012 20:44 PM
    Intellectual1260 points

    After searching the forum I found this posting http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/156125.aspx. Comparing the o/p listed there with our o/p when the application is improperly terminated shows striking similarities.

    STATUS: DEVNODE streamConfig done
    [   60.157257] BUG: sleeping function called from invalid context at arch/arm/mm/fault.c:295
    [   60.165863] in_atomic(): 0, irqs_disabled(): 128, pid: 1846, name: devnodeApp.xv7A
    [   60.173797] INFO: lockdep is turned off.
    [   60.177917] irq event stamp: 0
    [   60.181091] hardirqs last  enabled at (0): [<  (null)>]   (null)
    [   60.187408] hardirqs last disabled at (0): [<c0074618>] copy_process+0x370/0xea4
    [   60.195190] softirqs last  enabled at (0): [<c0074618>] copy_process+0x370/0xea4
    [   60.202972] softirqs last disabled at (0): [<  (null)>]   (null)
    [   60.209320] [<c004aaf8>] (unwind_backtrace+0x0/0xec) from [<c040b198>] (do_page_fault+0xc0/0x2d0)
    [   60.218627] [<c040b198>] (do_page_fault+0xc0/0x2d0) from [<c003a29c>] (do_DataAbort+0x34/0x98)
    [   60.227691] [<c003a29c>] (do_DataAbort+0x34/0x98) from [<c04093ac>] (__dabt_svc+0x4c/0x60)
    [   60.236358] Exception stack(0xc3803dd0 to 0xc3803e18)
    [   60.241668] 3dc0:                                     c7695008 00000000 00000000 c40760c0
    [   60.250244] 3de0: c7695018 c7695008 c0092240 00000013 fffffe00 c7695008 ffffffff c00721a0
    [   60.258819] 3e00: c3802000 c3803e18 c0408a58 c0219f50 60000093 ffffffff
    [   60.265777] [<c04093ac>] (__dabt_svc+0x4c/0x60) from [<c0219f50>] (do_raw_spin_trylock+0x4/0x4c)
    [   60.275024] [<c0219f50>] (do_raw_spin_trylock+0x4/0x4c) from [<c0408a58>] (_raw_spin_lock_irqsave+0x50/0x84)
    [   60.285339] [<c0408a58>] (_raw_spin_lock_irqsave+0x50/0x84) from [<c0092240>] (remove_wait_queue+0x14/0x50)
    [   60.295715] [<c0092240>] (remove_wait_queue+0x14/0x50) from [<bf01c15c>] (SYNC_WaitSEM+0x1c0/0x1f8 [dsplinkk])
    [   60.306365] [<bf01c15c>] (SYNC_WaitSEM+0x1c0/0x1f8 [dsplinkk]) from [<bf012134>] (LDRV_MSGQ_get+0x8c/0xcc [dsplinkk])
    [   60.317657] [<bf012134>] (LDRV_MSGQ_get+0x8c/0xcc [dsplinkk]) from [<bf01f444>] (DRV_Ioctl+0x1cc/0x7ac [dsplinkk])
    [   60.328643] [<bf01f444>] (DRV_Ioctl+0x1cc/0x7ac [dsplinkk]) from [<c0113858>] (do_vfs_ioctl+0x4e0/0x54c)
    [   60.338592] [<c0113858>] (do_vfs_ioctl+0x4e0/0x54c) from [<c0113914>] (sys_ioctl+0x50/0x74)
    [   60.347381] [<c0113914>] (sys_ioctl+0x50/0x74) from [<c0044cc0>] (ret_fast_syscall+0x0/0x3c)
    [   60.356231] Unable to handle kernel paging request at virtual address c7695008
    [   60.363800] pgd = c38bc000
    [   60.366638] [c7695008] *pgd=83b41011, *pte=00000000, *ppte=00000000
    [   60.373229] Internal error: Oops: 7 [#1]
    [   60.377349] last sysfs file: /sys/kernel/uevent_seqnum
    [   60.382751] Modules linked in: lpm_omap3530 dsplinkk cmemk
    [   60.388519] CPU: 0    Not tainted  (2.6.37-00005-g3daed69 #1)
    [   60.394561] PC is at do_raw_spin_trylock+0x4/0x4c
    [   60.399505] LR is at _raw_spin_lock_irqsave+0x50/0x84
    [   60.404785] pc : [<c0219f50>]    lr : [<c0408a58>]    psr: 60000093
    [   60.404815] sp : c3803e18  ip : c3802000  fp : c00721a0
    [   60.416839] r10: ffffffff  r9 : c7695008  r8 : fffffe00
    [   60.422332] r7 : 00000013  r6 : c0092240  r5 : c7695008  r4 : c7695018
    [   60.429168] r3 : c40760c0  r2 : 00000000  r1 : 00000000  r0 : c7695008
    [   60.436004] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [   60.443603] Control: 10c5387d  Table: 838bc019  DAC: 00000015
    [   60.449615] Process devnodeApp.xv7A (pid: 1846, stack limit = 0xc38022f0)
    [   60.456756] Stack: (0xc3803e18 to 0xc3804000)
    [   60.461303] 3e00:                                                       c7695018 c0408a58
    [   60.469909] 3e20: 00000002 00000000 c0092240 c7695008 40000013 c3803e5c c7695008 c3802000
    [   60.478485] 3e40: c3803e5c c0092240 c3802000 00000001 c7695000 bf01c15c 22222222 00000001
    [   60.487060] 3e60: c40760c0 c00721a0 c7695030 c7695030 c6902000 00000000 00008000 c3803f04
    [   60.495666] 3e80: c768f000 ffffffff 80008051 bf0230cc 80040800 bf012134 bf0230cc c018e03a
    [   60.504241] 3ea0: c4164e80 c018e03a 0000000a 418aabcc c3802000 418aabcc 418aabb4 bf01f444
    [   60.512817] 3ec0: 00000001 00000000 00000000 c0134d9c 00000000 c4164380 00000000 c0134d9c
    [   60.521423] 3ee0: 00000002 00000000 00000002 00008000 40cd6880 00010001 ffffffff 00000000
    [   60.529998] 3f00: 00000002 00000000 00000000 00000000 c4164e80 c018e03a 0000000a 418aabcc
    [   60.538574] 3f20: 00000000 c0113858 00000000 c0106398 00000000 00000000 00000001 c38deac0
    [   60.547149] 3f40: 0000000a c4164e80 0000000a 00000000 c3803f8c c0044e88 00000000 c010642c
    [   60.555755] 3f60: 00000001 00000000 00000000 418aabcc c018e03a 0000000a c4164e80 c3802000
    [   60.564331] 3f80: 00000000 c0113914 00000000 00000001 401f9000 00000001 000002f0 00000036
    [   60.572906] 3fa0: c0044e88 c0044cc0 401f9000 00000001 0000000a c018e03a 418aabcc 0000000a
    [   60.581512] 3fc0: 401f9000 00000001 000002f0 00000036 00000000 0005ff24 00061a44 418aabb4
    [   60.590087] 3fe0: 00000280 418aaa98 000382a0 4032345c 80000010 0000000a 00001b02 00000018
    [   60.598693] [<c0219f50>] (do_raw_spin_trylock+0x4/0x4c) from [<c0408a58>] (_raw_spin_lock_irqsave+0x50/0x84)
    [   60.609008] [<c0408a58>] (_raw_spin_lock_irqsave+0x50/0x84) from [<c0092240>] (remove_wait_queue+0x14/0x50)
    [   60.619323] [<c0092240>] (remove_wait_queue+0x14/0x50) from [<bf01c15c>] (SYNC_WaitSEM+0x1c0/0x1f8 [dsplinkk])
    [   60.629974] [<bf01c15c>] (SYNC_WaitSEM+0x1c0/0x1f8 [dsplinkk]) from [<bf012134>] (LDRV_MSGQ_get+0x8c/0xcc [dsplinkk])
    [   60.641265] [<bf012134>] (LDRV_MSGQ_get+0x8c/0xcc [dsplinkk]) from [<bf01f444>] (DRV_Ioctl+0x1cc/0x7ac [dsplinkk])
    [   60.652221] [<bf01f444>] (DRV_Ioctl+0x1cc/0x7ac [dsplinkk]) from [<c0113858>] (do_vfs_ioctl+0x4e0/0x54c)
    [   60.662200] [<c0113858>] (do_vfs_ioctl+0x4e0/0x54c) from [<c0113914>] (sys_ioctl+0x50/0x74)
    [   60.670959] [<c0113914>] (sys_ioctl+0x50/0x74) from [<c0044cc0>] (ret_fast_syscall+0x0/0x3c)
    [   60.679809] Code: c0517225 c05171a0 c05171ac e92d4010 (e5903000)
    [   60.686340] ---[ end trace 2002f53a4aa51445 ]---
    [   60.697875] Function : aic32xx_mute mute 1
    root@dm37x-evm:~/afe#

    what does this call trace indicate?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Chris Ring
    Posted by Chris Ring
    on May 14 2012 11:59 AM
    Suggested Answer
    Genius16190 points

    For the archives, this issue was caused by a DSP-side driver that had enabled a DSP-side resource and left it on.  As a result, the ARM-side LPM driver was unable to power off the DSP domain (until that DSP-side driver disabled the resource).

    Chris

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use