This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSPLink scalability problems

Other Parts Discussed in Thread: CODECOMPOSER, OMAPL138, OMAP-L138

I'm having problems scaling down DSPlink. I am only using PROC, POOL, and NOTIFY and would like to remove the other components. The DSP/BIOS User's Guide (ver 1.65.00.02) states that undesired components can be scaled out by selecting only the appropriate components in the --comps option of dsplinkcfg. I am able to do this and I see a memory reduction on the memory map after rebuilding, as expected. However, after removing any one component or combination of components on the DSP side, my application no longer works properly. If I add all the components back in, the application works.

The following is what happens on normal operation:

GPP: PROC_setup
GPP: PROC_attach
GPP: PROC_load
GPP: PROC_start
DSP: main starts
DSP: main calls DSPLINK_init
GPP: PROC_start completes
GPP: task waits on a semaphore
DSP: main completes and releases semaphore
GPP: continues on about its business

When I remove a component on the DSP side, say ringio, the following occurs:

GPP: PROC_setup
GPP: PROC_attach
GPP: PROC_load
GPP: PROC_start
DSP: main starts
DSP: main calls DSPLINK_init
DSP: main completes and releases semaphore

Note how PROC_start never completes. Is there a step I'm missing when I remove a component? Do the components on the GPP side need to match the DSP side? Note that I have tried removing ringio from both sides as well as just on the DSP side and I get the same results.

Thanks,
Wes

  • hi Wes,

    What gets built into the DSP image is determined by the –D switches on build command. E.g. ensure -dRINGIO_COMPONENT -dZCPY_LINK is NOT on build switches. Also as you point out the Arm-side build needs to sync up w/ this by re-running the build script (typically via dsplinkcfg.pl) to ensure RingIO is excluded (USE_RINGIO = 0) (so that shared memory data structures matchup). doc\UserGuide.pdf has a good description of this.

    Helpful links: -

    - http://processors.wiki.ti.com/index.php/Building_DSPLink

    - http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_configuration_issues

    - http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_build_issues

    Regards, Alan

  • Hi Alan,

    Thank you for your reply. I forgot to include in my first message that I had taken RINGIO_COMPONENT out of the  Predefined Symbols in CodeComposer. I was not, however, also removing ZCPY_LINK. Unfortunately, removing ZCPY_LINK made no visible difference in my progress. I also tried adding the ringio components and library back in and removed MSGQ_COMPONENT and MSGQ_ZCPY_LINK and adjusted the dsplinkcfg options appropriately, but I get the same result. I read through the information on the links you provided again, but I can't seem to locate any problems in my build process.

    Here is my build sequence and parameters for removing RINGIO.

    On Windows:
    1. From DOS, cd to C:\ti\dsplink_1_65_00_02\dsplink\etc\host\scripts\msdos and run dsplinkcfg:
        dsplinkcfg --platform=OMAPL138 --nodsp=1 --dspcfg_0=OMAPL138GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=ARM --comps=ponslmc --DspTskMode=1

    2. Build DSPLink by changing directories to C:\ti\dsplink_1_65_00_02\dsplink\dsp\src and executing:
        gmake -s debug

    3. Copy the libraries to project workspace from:
        C:\ti\dsplink_1_65_00_02\dsplink\dsp\BUILD\OMAPL138GEM_0\xxx\BIN\DEBUG\     - (where xxx is DRV, POOLS, MPCS, MPLIST, MQT, DATA, NOTIFY)

    4. Remove RINGIO_COMPONENT and ZCPY_LINK from the Predefined Symbols in Code Composer.

    5. Rebuild project and copy the .out file to the NFS directory for the omap-l138.

    On Linux:
    1. cd $(DSPLINK) and run dsplinkcfg:
        perl config/bin/dsplinkcfg.pl  --platform=OMAPL138 --nodsp=1 --dspcfg_0=OMAPL138GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=ARM --comps=ponslmc
        --DspTskMode=1

    2. Build DSPLink by changing directories to gpp/src/
        $(XDCROOT)/gmake

    3. Build user application (UserApp).
        $(USERAPP)/gmake

    4. Copy the executable (UserApp) to the NFS directory for the omap-l138.

    Am I missing anything in this process? As I mentioned above, I'm at the same spot as I was in my original message: PROC_start never completes.

    Thanks,
    Wes

  • Wes,

    If you're just using PROC, POOL and NOTIFY, you should specify --comps=pon

    You don't need slmc (MPCS, MPLIST, MSGQ, CHNL) as well.

    After running dsplinkcfg.pl script, you need to rebuild both Linux and BIOS-sides (same as you are doing). You can also take a look at the generated CURRENTCFG.MK file for TI_DSPLINK_DSP0_ DEFINES field for the DSP build defines and match up for your CCS build for the DSP executable.

    Regards,
    Mugdha

  • Mugdha,

    Thank you for your reply.

    I have tried eliminating all the unnecessary components (i.e. --comps=pon), but since I was having trouble getting this to work, I tried to remove only one component at a time in hopes of removing as many variables as possible. However, with that said, I retried --comps=pon again this morning, but I get the same result. I also tried --comps=pons, since POOL requires MPCS and is included anyway. As you might have guessed, the result was not affected.

    I looked at CURRENTCFG.MK and both TI_DSPLINK_DSP0_DEFINES and TI_DSPLINK_DSP_COMMON_DEFINES match what I have in CCS.

    What else can I try?

    Thanks,
    Wes

  • Wes,

    To isolate the issue and figure out whether it's related to some mismatch in settings wtih CCS build, is it possible to build the DSP executable as well using make first? The components need to match up exactly between GPP and DSP, otherwise the GPP will hang in PROC_start due to not receiving the correct configuration status as it expects from the DSP.

    Somewhere some mismatch is happening.

    One more thing to try, which will tell if there's some basic issue in DSPLink scalability, is to check a DSPLink sample application with the scalability reduced. You could try mpcsxfer sample application which should work with these scalability options that you are trying. If that doesn't work, the DSPLink team may need to take a look at whether there's any issue in the scalability.

    Regards,
    Mugdha

  • Mugdha,

    Thank you again for your response.

    I tried your second suggestion (mpcsxfer sample application) first, since it seemed simpler. I built the DSP app with all DSPLink components. I modified the GPP app to include a print statement before and after the PROC_start call, and built it with all DSPLink components. After moving the two outputs to the NFS directory, I ran them without any problem and received the following output:

    root@arago:/opt/mpcsxfer# ./mpcsxfergpp /opt/mpcsxfer/mpcsxfer.out 10 2 0
    ========== Sample Application : MPCSXFER ==========
    Entered MPCSXFER_Create ()
    Calling PROC_start
    Completed PROC_start, status(0x8000)
    Leaving MPCSXFER_Create ()
    Entered MPCSXFER_Execute ()
    Leaving MPCSXFER_Execute ()
    Entered MPCSXFER_Delete ()
    Leaving MPCSXFER_Delete ()
    ====================================================

    I then removed ringio from both sides (--comps=ponslmc), rebuilt, and retried. Like my application, PROC_start never completes. Here is the output:

    root@arago:/opt/mpcsxfer# ./mpcsxfergpp /opt/mpcsxfer/mpcsxfer.out 10 2 0
    ========== Sample Application : MPCSXFER ==========
    Entered MPCSXFER_Create ()
    Calling PROC_start

    Could you run the sample application to see if you get the same results?

    Thanks,
    Wes

  • Hi Mugdha,

    Here is some more information. I turned on traces and found that the point of failure is in DRV_Invoke() when it makes the following call in the switch default:

    osStatus = ioctl (drv->driverHandle, cmdId, args);

    That is probably no surprise to you, but I have attached the output files for a successful case (mpcsxfer_all_race.txt) and the unsuccessful case with ringio removed (mpcsxfer_no_ringio_trace.txt).

    root@arago:/opt/mpcsxfer# ./mpcsxfergpp /opt/mpcsxfer/mpcsxfer.out 10 2 0
    ========== Sample Application : MPCSXFER ==========
    Entered MPCSXFER_Create ()
    Entered PROC_setup ()
            linkCfg [0x0]
    Entered DRV_Initialize ()
            drvObj  [0x307a4]
            arg     [0x0]
    Leaving DRV_Initialize ()       status [0x8000]
    Entered DRV_ProtectInit ()
            drvObj  [0x31008]
    Leaving DRV_ProtectInit ()      status [0x8000]
    Entered DRV_ProtectEnter ()
            drvObj  [0x31008]
    Leaving DRV_ProtectEnter ()     status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e011]
            arg1    [0xbeb87b50]
            arg2    [0x0]
    Entered DRV_installCleanupRoutines ()
            linkCfgPtr      [0x30774]
    Leaving DRV_installCleanupRoutines ()
    osStatus: 0
    Entered _POOL_init ()
    Leaving _POOL_init ()
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _MEM_USR_init ()
    Leaving _MEM_USR_init ()        status [0x8000]
    Entered _IDM_USR_init ()
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e053]
            arg1    [0xbeb87b24]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_init ()        status [0x8000]
    Entered _SYNC_USR_init ()
    Entered _IDM_USR_create ()
            key     [0x10080]
            attrs   [0xbeb87b2c]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e055]
            arg1    [0xbeb87b04]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_create ()      status [0x8000]
    Leaving _SYNC_USR_init ()       status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x2c0a0]
            csObj   [0x307ac]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x2c0a0]
            id      [0xbeb87b30]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e057]
            arg1    [0xbeb87b04]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Entered DRV_ProtectLeave ()
            drvObj  [0x31008]
    Leaving DRV_ProtectLeave ()     status [0x8000]
    Entered PROC_resetCurStatus ()
    Leaving PROC_resetCurStatus ()
    Leaving PROC_setup ()   status [0x8000]
    Entered PROC_attach ()
            procId  [0x0]
            attr    [0x0]
    Entered DRV_Initialize ()
            drvObj  [0x307a4]
            arg     [0x0]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving DRV_Initialize ()       status [0x8000]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e018]
            arg1    [0xbeb87b4c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _NOTIFY_init ()
            dspId   [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e049]
            arg1    [0xbeb87b04]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _NOTIFY_init ()         status [0x8000]
    Entered _MPCS_init ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e047]
            arg1    [0xbeb87b18]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _MPCS_open ()
            procId  [0x0]
            name    [0x295cc]
            mpcsHandle      [0x30efc]
            mpcsShObj       [0x40984180]
    Entered _MPCS_OS_open ()
            procId  [0x0]
            name    [0x295cc]
            mpcsHandle      [0x30efc]
            mpcsShObj       [0x40984180]
    Entered _MEM_USR_calloc ()
            ptr     [0x30efc]
            bytes   [0x10]
    _MEM_USR_calloc *ptr [0x310c8]
    Leaving _MEM_USR_calloc ()      status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x295cc]
            csObj   [0x310cc]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x295cc]
            id      [0xbeb87a90]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e057]
            arg1    [0xbeb87a64]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Leaving _MPCS_OS_open ()        status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Leaving _MPCS_init ()   status [0x8000]
    Entered _MPLIST_moduleInit ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e051]
            arg1    [0xbeb87b00]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered MPCS_create ()
            procId  [0x0]
            name    [0x29f78]
            mpcsShObj       [0x40021380]
            attrs   [0xbeb87afe]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_create ()  status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e052]
            arg1    [0xbeb87b00]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _MPLIST_moduleInit ()   status [0x8000]
    Entered _RingIO_moduleInit ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04f]
            arg1    [0xbeb87b00]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered MPCS_create ()
            procId  [0x0]
            name    [0x2c8f8]
            mpcsShObj       [0x40021400]
            attrs   [0xbeb87afe]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_create ()  status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e050]
            arg1    [0xbeb87b00]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _RingIO_moduleInit ()   status [0x8100]
    Entered _MPLIST_init ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e051]
            arg1    [0xbeb87b18]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _MPCS_open ()
            procId  [0x0]
            name    [0x29f78]
            mpcsHandle      [0x30b8c]
            mpcsShObj       [0x40021380]
    Entered _MPCS_OS_open ()
            procId  [0x0]
            name    [0x29f78]
            mpcsHandle      [0x30b8c]
            mpcsShObj       [0x40021380]
    Entered _MEM_USR_calloc ()
            ptr     [0x30b8c]
            bytes   [0x10]
    _MEM_USR_calloc *ptr [0x310f8]
    Leaving _MEM_USR_calloc ()      status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x29f78]
            csObj   [0x310fc]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x29f78]
            id      [0xbeb87a90]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e057]
            arg1    [0xbeb87a64]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Leaving _MPCS_OS_open ()        status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Leaving _MPLIST_init ()         status [0x8000]
    Entered _RingIO_init ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04f]
            arg1    [0xbeb87b18]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _MPCS_open ()
            procId  [0x0]
            name    [0x2c8f8]
            mpcsHandle      [0x30f1c]
            mpcsShObj       [0x4098d400]
    Entered _MPCS_OS_open ()
            procId  [0x0]
            name    [0x2c8f8]
            mpcsHandle      [0x30f1c]
            mpcsShObj       [0x4098d400]
    Entered _MEM_USR_calloc ()
            ptr     [0x30f1c]
            bytes   [0x10]
    _MEM_USR_calloc *ptr [0x31128]
    Leaving _MEM_USR_calloc ()      status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x2c8f8]
            csObj   [0x3112c]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x2c8f8]
            id      [0xbeb87a90]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e057]
            arg1    [0xbeb87a64]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Leaving _MPCS_OS_open ()        status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Leaving _RingIO_init ()         status [0x8100]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving PROC_attach ()  status [0x8000]
    Entered POOL_open ()
            poolId  [0x0]
            params  [0xbeb87bb8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e03f]
            arg1    [0xbeb87b48]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving POOL_open ()    status [0x8000]
    Entered POOL_alloc ()
            poolId  [0x0]
            bufPtr  [0x30784]
            size    [0x80]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e041]
            arg1    [0xbeb87b5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0x30784]
            xltFlag [0x2]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_alloc ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbeb87be4]
            dstAddrType     [0x3]
            srcAddr [0x40990000]
            srcAddrType     [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e043]
            arg1    [0xbeb87b5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87be4]
            xltFlag [0x300]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered POOL_alloc ()
            poolId  [0x0]
            bufPtr  [0x30788]
            size    [0x80]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e041]
            arg1    [0xbeb87b5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0x30788]
            xltFlag [0x2]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_alloc ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbeb87be0]
            dstAddrType     [0x3]
            srcAddr [0x40990080]
            srcAddrType     [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e043]
            arg1    [0xbeb87b5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87be0]
            xltFlag [0x300]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered MPCS_create ()
            procId  [0x0]
            name    [0x301e0]
            mpcsShObj       [0x0]
            attrs   [0xbeb87bb6]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered POOL_alloc ()
            poolId  [0x0]
            bufPtr  [0xbeb87b54]
            size    [0x180]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e041]
            arg1    [0xbeb87b24]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87b54]
            xltFlag [0x2]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_alloc ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbeb87b60]
            dstAddrType     [0x3]
            srcAddr [0x40990100]
            srcAddrType     [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e043]
            arg1    [0xbeb87b24]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87b60]
            xltFlag [0x300]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x180]
    Leaving POOL_writeback ()       status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_create ()  status [0x8000]
    Entered MPCS_open ()
            procId  [0x0]
            name    [0x301e0]
            mpcsHandle      [0x30780]
    Entered _MPCS_open ()
            procId  [0x0]
            name    [0x301e0]
            mpcsHandle      [0x30780]
            mpcsShObj       [0x0]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbeb87b34]
            dstAddrType     [0x0]
            srcAddr [0xc3f30100]
            srcAddrType     [0x3]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e043]
            arg1    [0xbeb87af4]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87b34]
            xltFlag [0x3]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x180]
    Leaving POOL_invalidate ()      status [0x8000]
    Entered _MPCS_OS_open ()
            procId  [0x0]
            name    [0x301e0]
            mpcsHandle      [0x30780]
            mpcsShObj       [0x40990100]
    Entered _MEM_USR_calloc ()
            ptr     [0x30780]
            bytes   [0x10]
    _MEM_USR_calloc *ptr [0x31158]
    Leaving _MEM_USR_calloc ()      status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x301e0]
            csObj   [0x3115c]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x301e0]
            id      [0xbeb87ad8]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e057]
            arg1    [0xbeb87aac]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Leaving _MPCS_OS_open ()        status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990000]
            size    [0x80]
    Leaving POOL_writeback ()       status [0x8000]
    Entered NOTIFY_register ()
            dspId   [0x0]
            ipsId   [0x0]
            eventNo [0x5]
            fnNotifyCbck    [0xa3b8]
            cbckArg [0x31188]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04b]
            arg1    [0xbeb87b44]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving NOTIFY_register ()      status [0x8000]
    Entered PROC_load ()
            procId  [0x0]
            imagePath       [0xbeb87ea1]
            argc    [0x2]
            argv    [0xbeb87bac]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e015]
            arg1    [0xbeb87b4c]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving PROC_load ()    status [0x8000]
    Calling PROC_start
    Entered PROC_start ()
            procId  [0x0]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e013]
            arg1    [0xbeb87b4c]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving PROC_start ()   status [0x8000]
    Completed PROC_start, status(0x8000)
    Entered NOTIFY_notify ()
            dspId   [0x0]
            ipsId   [0x0]
            eventNo [0x5]
            payload [0xc3f30000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04d]
            arg1    [0xbeb87b4c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving NOTIFY_notify ()        status [0x8000]
    Entered NOTIFY_notify ()
            dspId   [0x0]
            ipsId   [0x0]
            eventNo [0x5]
            payload [0xc3f30080]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04d]
            arg1    [0xbeb87b4c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving NOTIFY_notify ()        status [0x8000]
    Leaving MPCSXFER_Create ()
    Entered MPCSXFER_Execute ()
    Entered MPCS_enter ()
            mpcsHandle      [0x31158]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x31158]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31170]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x10]
    Leaving POOL_writeback ()       status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990200]
            size    [0x2]
    Leaving POOL_writeback ()       status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x180]
    Leaving POOL_invalidate ()      status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x40990000]
            size    [0x80]
    Leaving POOL_invalidate ()      status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x40990080]
            size    [0x80]
    Leaving POOL_invalidate ()      status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990000]
            size    [0x80]
    Leaving POOL_writeback ()       status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990080]
            size    [0x80]
    Leaving POOL_writeback ()       status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x31158]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x10]
    Leaving POOL_writeback ()       status [0x8000]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x31158]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31170]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Entered MPCS_enter ()
            mpcsHandle      [0x31158]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x31158]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31170]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x10]
    Leaving POOL_writeback ()       status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990200]
            size    [0x2]
    Leaving POOL_writeback ()       status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x180]
    Leaving POOL_invalidate ()      status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x40990000]
            size    [0x80]
    Leaving POOL_invalidate ()      status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x40990080]
            size    [0x80]
    Leaving POOL_invalidate ()      status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990000]
            size    [0x80]
    Leaving POOL_writeback ()       status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990080]
            size    [0x80]
    Leaving POOL_writeback ()       status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x31158]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x10]
    Leaving POOL_writeback ()       status [0x8000]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x31158]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31170]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCSXFER_Execute ()
    Entered MPCSXFER_Delete ()
    Entered PROC_stop ()
            procId  [0x0]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e014]
            arg1    [0xbeb87ba4]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 800c
    Leaving DRV_Invoke ()   status [0x800c]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving PROC_stop ()    status [0x800c]
    Entered NOTIFY_unregister ()
            dspId   [0x0]
            ipsId   [0x0]
            eventNo [0x5]
            fnNotifyCbck    [0xa3b8]
            cbckArg [0x31188]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04c]
            arg1    [0xbeb87ba4]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving NOTIFY_unregister ()    status [0x8000]
    Entered MPCS_close ()
            procId  [0x0]
            mpcsHandle      [0x31158]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered _MPCS_OS_close ()
            procId  [0x0]
            mpcsHandle      [0x31158]
    Entered _SYNC_USR_deleteCS ()
            csObj   [0x3115c]
    Entered _IDM_USR_releaseId ()
            key     [0x10080]
            id      [0x4]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e058]
            arg1    [0xbeb87b54]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8006
    Leaving DRV_Invoke ()   status [0x8006]
    Leaving _IDM_USR_releaseId ()   status [0x8006]
    Leaving _SYNC_USR_deleteCS ()   status [0x8006]
    Entered _MEM_USR_free ()
            ptr     [0xbeb87b90]
    Leaving _MEM_USR_free ()        status [0x8000]
    Leaving _MPCS_OS_close ()       status [0x8006]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_close ()   status [0x8006]
    Entered MPCS_delete ()
            procId  [0x0]
            name    [0x301e0]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbeb87bb8]
            dstAddrType     [0x0]
            srcAddr [0xc3f30100]
            srcAddrType     [0x3]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e043]
            arg1    [0xbeb87b84]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87bb8]
            xltFlag [0x3]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered POOL_free ()
            poolId  [0x0]
            buf     [0x40990100]
            size    [0x180]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e042]
            arg1    [0xbeb87b84]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87b90]
            xltFlag [0x200]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_free ()    status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_delete ()  status [0x8000]
    Entered POOL_free ()
            poolId  [0x0]
            buf     [0x40990080]
            size    [0x80]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e042]
            arg1    [0xbeb87bb4]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87bc0]
            xltFlag [0x200]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_free ()    status [0x8000]
    Entered POOL_free ()
            poolId  [0x0]
            buf     [0x40990000]
            size    [0x80]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e042]
            arg1    [0xbeb87bb4]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbeb87bc0]
            xltFlag [0x200]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_free ()    status [0x8000]
    Entered POOL_close ()
            poolId  [0x0]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e040]
            arg1    [0xbeb87ba0]
            arg2    [0x0]
    Status: 800d
    Leaving DRV_Invoke ()   status [0x800d]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving POOL_close ()   status [0x800d]
    Entered PROC_detach ()
            procId  [0x0]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e01f]
            arg1    [0xbeb87ba4]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered RingIO_exit ()
            procId  [0x0]
    Entered MPCS_close ()
            procId  [0x0]
            mpcsHandle      [0x31128]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered _MPCS_OS_close ()
            procId  [0x0]
            mpcsHandle      [0x31128]
    Entered _SYNC_USR_deleteCS ()
            csObj   [0x3112c]
    Entered _IDM_USR_releaseId ()
            key     [0x10080]
            id      [0x3]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e058]
            arg1    [0xbeb87adc]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8006
    Leaving DRV_Invoke ()   status [0x8006]
    Leaving _IDM_USR_releaseId ()   status [0x8006]
    Leaving _SYNC_USR_deleteCS ()   status [0x8006]
    Entered _MEM_USR_free ()
            ptr     [0xbeb87b18]
    Leaving _MEM_USR_free ()        status [0x8000]
    Leaving _MPCS_OS_close ()       status [0x8006]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_close ()   status [0x8006]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e050]
            arg1    [0xbeb87b6c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving RingIO_exit ()  status [0x8100]
    Entered _MPLIST_exit ()
            procId  [0x0]
    Entered MPCS_close ()
            procId  [0x0]
            mpcsHandle      [0x310f8]
    Entered MPCS_enter ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered _MPCS_OS_close ()
            procId  [0x0]
            mpcsHandle      [0x310f8]
    Entered _SYNC_USR_deleteCS ()
            csObj   [0x310fc]
    Entered _IDM_USR_releaseId ()
            key     [0x10080]
            id      [0x2]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e058]
            arg1    [0xbeb87adc]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8006
    Leaving DRV_Invoke ()   status [0x8006]
    Leaving _IDM_USR_releaseId ()   status [0x8006]
    Leaving _SYNC_USR_deleteCS ()   status [0x8006]
    Entered _MEM_USR_free ()
            ptr     [0xbeb87b18]
    Leaving _MEM_USR_free ()        status [0x8000]
    Leaving _MPCS_OS_close ()       status [0x8006]
    Entered MPCS_leave ()
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x310e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_close ()   status [0x8006]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e052]
            arg1    [0xbeb87b6c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _MPLIST_exit ()         status [0x8006]
    Entered _RingIO_moduleExit ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04f]
            arg1    [0xbeb87b68]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered MPCS_delete ()
            procId  [0x0]
            name    [0x2c8f8]
    Leaving MPCS_delete ()  status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e050]
            arg1    [0xbeb87b68]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _RingIO_moduleExit ()   status [0x8100]
    Entered _MPLIST_moduleExit ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e051]
            arg1    [0xbeb87b68]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered MPCS_delete ()
            procId  [0x0]
            name    [0x29f78]
    Leaving MPCS_delete ()  status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e052]
            arg1    [0xbeb87b68]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _MPLIST_moduleExit ()   status [0x8000]
    Entered _MPCS_exit ()
            procId  [0x0]
    Entered MPCS_close ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _MPCS_OS_close ()
            procId  [0x0]
            mpcsHandle      [0x310c8]
    Entered _SYNC_USR_deleteCS ()
            csObj   [0x310cc]
    Entered _IDM_USR_releaseId ()
            key     [0x10080]
            id      [0x1]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e058]
            arg1    [0xbeb87adc]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8006
    Leaving DRV_Invoke ()   status [0x8006]
    Leaving _IDM_USR_releaseId ()   status [0x8006]
    Leaving _SYNC_USR_deleteCS ()   status [0x8006]
    Entered _MEM_USR_free ()
            ptr     [0xbeb87b18]
    Leaving _MEM_USR_free ()        status [0x8000]
    Leaving _MPCS_OS_close ()       status [0x8006]
    Leaving MPCS_close ()   status [0x8006]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e048]
            arg1    [0xbeb87b6c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _MPCS_exit ()   status [0x8006]
    Entered _NOTIFY_exit ()
            dspId   [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e04a]
            arg1    [0xbeb87b74]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _NOTIFY_exit ()         status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e017]
            arg1    [0xbeb87ba4]
            arg2    [0x0]
    Status: 8009
    Leaving DRV_Invoke ()   status [0x8009]
    Entered DRV_Finalize ()
            drvObj  [0x31008]
            arg     [0x0]
    Leaving DRV_Finalize ()         status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x31020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving PROC_detach ()  status [0x8009]
    Entered PROC_destroy ()
    Entered DRV_ProtectEnter ()
            drvObj  [0x31008]
    Leaving DRV_ProtectEnter ()     status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e01e]
            arg1    [0xbeb87ba4]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _SYNC_USR_deleteCS ()
            csObj   [0x307ac]
    Entered _IDM_USR_releaseId ()
            key     [0x10080]
            id      [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e058]
            arg1    [0xbeb87b64]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8006
    Leaving DRV_Invoke ()   status [0x8006]
    Leaving _IDM_USR_releaseId ()   status [0x8006]
    Leaving _SYNC_USR_deleteCS ()   status [0x8006]
    Entered _SYNC_USR_exit ()
    Entered _IDM_USR_delete ()
            key     [0x10080]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e056]
            arg1    [0xbeb87b64]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_delete ()      status [0x8000]
    Leaving _SYNC_USR_exit ()       status [0x8000]
    Entered _IDM_USR_exit ()
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e054]
            arg1    [0xbeb87b7c]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    Completed ioctl
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_exit ()        status [0x8000]
    Entered _MEM_USR_exit ()
    Leaving _MEM_USR_exit ()        status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x31008]
            cmdId   [0xc018e012]
            arg1    [0xbeb87ba4]
            arg2    [0x0]
    Entered _POOL_exit ()
    Leaving _POOL_exit ()
    Status: 8008
    Leaving DRV_Invoke ()   status [0x8008]
    Entered DRV_ProtectLeave ()
            drvObj  [0x31008]
    Leaving DRV_ProtectLeave ()     status [0x8000]
    Entered DRV_ProtectExit ()
            drvObj  [0x31008]
    Leaving DRV_ProtectExit ()      status [0x8000]
    Entered DRV_Finalize ()
            drvObj  [0x31008]
            arg     [0x0]
    Leaving DRV_Finalize ()         status [0x8003]
    Leaving PROC_destroy ()         status [0x8008]
    Leaving MPCSXFER_Delete ()
    ====================================================
    Entered DSPLINK_atExitHandler ()
    =====================================================================
    IMPORTANT: There may be several error prints in the atExit handler.  
               These occur because DSPLink tries to clean up resources.  
               If resources are already freed, it will cause errors.     
               THESE ERRORS CAN BE SAFELY IGNORED.                       
    =====================================================================
    Entered MSGQ_transportClose ()
            procId  [0x0]
    
    Failure: Status:[0x80008002] File:[0x202] Line:[220]
    Leaving MSGQ_transportClose ()  status [0x80008002]
    Entered PROC_stop ()
            procId  [0x0]
    
    Failure: Status:[0x80008002] File:[0x200] Line:[1168]
    Leaving PROC_stop ()    status [0x80008002]
    Entered POOL_close ()
            poolId  [0x0]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x1]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x2]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x3]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x4]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x5]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x6]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x7]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x8]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x9]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0xa]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0xb]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0xc]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0xd]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0xe]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0xf]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x10]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x11]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x12]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x13]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x14]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x15]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x16]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x17]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x18]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x19]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x1a]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x1b]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x1c]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x1d]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x1e]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered POOL_close ()
            poolId  [0x1f]
    
    Failure: Status:[0x80008000] File:[0x203] Line:[221]
    Leaving POOL_close ()   status [0x80008000]
    Entered PROC_detach ()
            procId  [0x0]
    
    Failure: Status:[0x80008000] File:[0x200] Line:[663]
    Leaving PROC_detach ()  status [0x80008000]
    Entered PROC_destroy ()
    
    Failure: Status:[0x80008000] File:[0x200] Line:[344]
    
    Failure: Status:[0x80008000] File:[0x200] Line:[428]
    Leaving PROC_destroy ()         status [0x80008000]
    Leaving DSPLINK_atExitHandler ()
    
    

    root@arago:/opt/mpcsxfer# ./mpcsxfergpp /opt/mpcsxfer/mpcsxfer.out 10 2 0
    ========== Sample Application : MPCSXFER ==========
    Entered MPCSXFER_Create ()
    Entered PROC_setup ()
            linkCfg [0x0]
    Entered DRV_Initialize ()
            drvObj  [0x2b7a4]
            arg     [0x0]
    Leaving DRV_Initialize ()       status [0x8000]
    Entered DRV_ProtectInit ()
            drvObj  [0x2c008]
    Leaving DRV_ProtectInit ()      status [0x8000]
    Entered DRV_ProtectEnter ()
            drvObj  [0x2c008]
    Leaving DRV_ProtectEnter ()     status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e011]
            arg1    [0xbe96bb50]
            arg2    [0x0]
    Entered DRV_installCleanupRoutines ()
            linkCfgPtr      [0x2b774]
    Leaving DRV_installCleanupRoutines ()
    osStatus: 0
    Entered _POOL_init ()
    Leaving _POOL_init ()
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _MEM_USR_init ()
    Leaving _MEM_USR_init ()        status [0x8000]
    Entered _IDM_USR_init ()
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e053]
            arg1    [0xbe96bb24]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_init ()        status [0x8000]
    Entered _SYNC_USR_init ()
    Entered _IDM_USR_create ()
            key     [0x10080]
            attrs   [0xbe96bb2c]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e055]
            arg1    [0xbe96bb04]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_create ()      status [0x8000]
    Leaving _SYNC_USR_init ()       status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x20b28]
            csObj   [0x2b7ac]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x20b28]
            id      [0xbe96bb30]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e057]
            arg1    [0xbe96bb04]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Entered DRV_ProtectLeave ()
            drvObj  [0x2c008]
    Leaving DRV_ProtectLeave ()     status [0x8000]
    Entered PROC_resetCurStatus ()
    Leaving PROC_resetCurStatus ()
    Leaving PROC_setup ()   status [0x8000]
    Entered PROC_attach ()
            procId  [0x0]
            attr    [0x0]
    Entered DRV_Initialize ()
            drvObj  [0x2b7a4]
            arg     [0x0]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving DRV_Initialize ()       status [0x8000]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e018]
            arg1    [0xbe96bb4c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _NOTIFY_init ()
            dspId   [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e049]
            arg1    [0xbe96bb08]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _NOTIFY_init ()         status [0x8000]
    Entered _MPCS_init ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e047]
            arg1    [0xbe96bb18]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _MPCS_open ()
            procId  [0x0]
            name    [0x1e054]
            mpcsHandle      [0x2bef4]
            mpcsShObj       [0x40984180]
    Entered _MPCS_OS_open ()
            procId  [0x0]
            name    [0x1e054]
            mpcsHandle      [0x2bef4]
            mpcsShObj       [0x40984180]
    Entered _MEM_USR_calloc ()
            ptr     [0x2bef4]
            bytes   [0x10]
    _MEM_USR_calloc *ptr [0x2c0c8]
    Leaving _MEM_USR_calloc ()      status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x1e054]
            csObj   [0x2c0cc]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x1e054]
            id      [0xbe96ba90]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e057]
            arg1    [0xbe96ba64]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Leaving _MPCS_OS_open ()        status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Leaving _MPCS_init ()   status [0x8000]
    Entered _MPLIST_moduleInit ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e051]
            arg1    [0xbe96bb00]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered MPCS_create ()
            procId  [0x0]
            name    [0x1ea00]
            mpcsShObj       [0x40021380]
            attrs   [0xbe96bafe]
    Entered MPCS_enter ()
            mpcsHandle      [0x2c0c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x2c0c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c0e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x2c0c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x2c0c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x2c0e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_create ()  status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e052]
            arg1    [0xbe96bb00]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _MPLIST_moduleInit ()   status [0x8000]
    Entered _MPLIST_init ()
            procId  [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e051]
            arg1    [0xbe96bb18]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _MPCS_open ()
            procId  [0x0]
            name    [0x1ea00]
            mpcsHandle      [0x2bb8c]
            mpcsShObj       [0x40021380]
    Entered _MPCS_OS_open ()
            procId  [0x0]
            name    [0x1ea00]
            mpcsHandle      [0x2bb8c]
            mpcsShObj       [0x40021380]
    Entered _MEM_USR_calloc ()
            ptr     [0x2bb8c]
            bytes   [0x10]
    _MEM_USR_calloc *ptr [0x2c0f8]
    Leaving _MEM_USR_calloc ()      status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x1ea00]
            csObj   [0x2c0fc]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x1ea00]
            id      [0xbe96ba90]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e057]
            arg1    [0xbe96ba64]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Leaving _MPCS_OS_open ()        status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Leaving _MPLIST_init ()         status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving PROC_attach ()  status [0x8000]
    Entered POOL_open ()
            poolId  [0x0]
            params  [0xbe96bbb8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e03f]
            arg1    [0xbe96bb48]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving POOL_open ()    status [0x8000]
    Entered POOL_alloc ()
            poolId  [0x0]
            bufPtr  [0x2b784]
            size    [0x80]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e041]
            arg1    [0xbe96bb5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0x2b784]
            xltFlag [0x2]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_alloc ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbe96bbe4]
            dstAddrType     [0x3]
            srcAddr [0x4098d000]
            srcAddrType     [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e043]
            arg1    [0xbe96bb5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbe96bbe4]
            xltFlag [0x300]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered POOL_alloc ()
            poolId  [0x0]
            bufPtr  [0x2b788]
            size    [0x80]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e041]
            arg1    [0xbe96bb5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0x2b788]
            xltFlag [0x2]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_alloc ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbe96bbe0]
            dstAddrType     [0x3]
            srcAddr [0x4098d080]
            srcAddrType     [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e043]
            arg1    [0xbe96bb5c]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbe96bbe0]
            xltFlag [0x300]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered MPCS_create ()
            procId  [0x0]
            name    [0x2b1e0]
            mpcsShObj       [0x0]
            attrs   [0xbe96bbb6]
    Entered MPCS_enter ()
            mpcsHandle      [0x2c0c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x2c0c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c0e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered POOL_alloc ()
            poolId  [0x0]
            bufPtr  [0xbe96bb54]
            size    [0x180]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e041]
            arg1    [0xbe96bb24]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbe96bb54]
            xltFlag [0x2]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_alloc ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbe96bb60]
            dstAddrType     [0x3]
            srcAddr [0x4098d100]
            srcAddrType     [0x0]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e043]
            arg1    [0xbe96bb24]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbe96bb60]
            xltFlag [0x300]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x4098d100]
            size    [0x180]
    Leaving POOL_writeback ()       status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x2c0c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x2c0c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x2c0e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_create ()  status [0x8000]
    Entered MPCS_open ()
            procId  [0x0]
            name    [0x2b1e0]
            mpcsHandle      [0x2b780]
    Entered _MPCS_open ()
            procId  [0x0]
            name    [0x2b1e0]
            mpcsHandle      [0x2b780]
            mpcsShObj       [0x0]
    Entered MPCS_enter ()
            mpcsHandle      [0x2c0c8]
    Entered _MPCS_OS_enter ()
            procId  [0x0]
            mpcsHandle      [0x2c0c8]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c0e0]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Leaving _MPCS_OS_enter ()       status [0x8000]
    Leaving MPCS_enter ()   status [0x8000]
    Entered POOL_translateAddr ()
            poolId  [0x0]
            dstAddr [0xbe96bb34]
            dstAddrType     [0x0]
            srcAddr [0xc3f30100]
            srcAddrType     [0x3]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e043]
            arg1    [0xbe96baf4]
            arg2    [0x0]
    Entered _POOL_xltBuf ()
            poolId  [0x0]
            bufPtr  [0xbe96bb34]
            xltFlag [0x3]
    Leaving _POOL_xltBuf ()         status [0x8000]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving POOL_translateAddr ()   status [0x8000]
    Entered POOL_invalidate ()
            poolId  [0x0]
            buf     [0x4098d100]
            size    [0x180]
    Leaving POOL_invalidate ()      status [0x8000]
    Entered _MPCS_OS_open ()
            procId  [0x0]
            name    [0x2b1e0]
            mpcsHandle      [0x2b780]
            mpcsShObj       [0x4098d100]
    Entered _MEM_USR_calloc ()
            ptr     [0x2b780]
            bytes   [0x10]
    _MEM_USR_calloc *ptr [0x2c128]
    Leaving _MEM_USR_calloc ()      status [0x8000]
    Entered _SYNC_USR_createCS ()
            idKey   [0x2b1e0]
            csObj   [0x2c12c]
    Entered _IDM_USR_acquireId ()
            key     [0x10080]
            idKey   [0x2b1e0]
            id      [0xbe96bad8]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e057]
            arg1    [0xbe96baac]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving _IDM_USR_acquireId ()   status [0x8000]
    Leaving _SYNC_USR_createCS ()   status [0x8000]
    Leaving _MPCS_OS_open ()        status [0x8000]
    Entered MPCS_leave ()
            mpcsHandle      [0x2c0c8]
    Entered _MPCS_OS_leave ()
            procId  [0x0]
            mpcsHandle      [0x2c0c8]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x2c0e0]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving _MPCS_OS_leave ()       status [0x8000]
    Leaving MPCS_leave ()   status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Leaving MPCS_open ()    status [0x8000]
    Entered POOL_writeback ()
            poolId  [0x0]
            buf     [0x4098d000]
            size    [0x80]
    Leaving POOL_writeback ()       status [0x8000]
    Entered NOTIFY_register ()
            dspId   [0x0]
            ipsId   [0x0]
            eventNo [0x5]
            fnNotifyCbck    [0xa3b8]
            cbckArg [0x2c158]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e04b]
            arg1    [0xbe96bb48]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Leaving NOTIFY_register ()      status [0x8000]
    Entered PROC_load ()
            procId  [0x0]
            imagePath       [0xbe96bea1]
            argc    [0x2]
            argv    [0xbe96bbac]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e015]
            arg1    [0xbe96bb4c]
            arg2    [0x0]
    Status: 8000
    Leaving DRV_Invoke ()   status [0x8000]
    Entered _SYNC_USR_leaveCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_leaveCS ()    status [0x8000]
    Leaving PROC_load ()    status [0x8000]
    Calling PROC_start
    Entered PROC_start ()
            procId  [0x0]
    Entered _SYNC_USR_enterCS ()
            csObj   [0x2c020]
    Leaving _SYNC_USR_enterCS ()    status [0x8000]
    Entered DRV_Invoke ()
            drvObj  [0x2c008]
            cmdId   [0xc018e013]
            arg1    [0xbe96bb4c]
            arg2    [0x0]
    Calling ioctl driverHdl(0x3)
    
    

    I also put some debug statements in DSPLINK_init(), in particular, I printed out the contents of DSPLINK_shmBaseAddress.

    All components:
    --> dsplink.c, DSPLINK_init, 164
    ctrlPtr: ver(1.65.00.02) procId(0)
    linkAddr  (0xc3f05100)                     drvDspInitDone   (0)
    ipsAddr   (0xc3f05180)                     ipsDspInitDone   (0)
    poolAddr  (0xc3f07600) poolConfigured  (1) poolDspInitDone  (0)
    mpcsAddr  (0xc3f08100) mpcsConfigured  (1) mpcsDspInitDone  (0)
    mplistAddr(0xc3f08100) mpcsConfigured  (1) mpcsDspInitDone  (0)
    mqtAddr   (0xc3f12500) mqtConfigured   (1) mqtDspInitDone   (0)
    dataAddr  (0xc3f12a00) dataConfigured  (1) dataDspInitDone  (4294967295)
    ringIoAddr(0xc3f02380) ringIoConfigured(1) ringIoDspInitDone(0)
    DRV_Config: nie(2) np(1) ndd(1) cf(0xffffffff)
    ID_GPP(1) dspHandshake(0x40)
    <-- dsplink.c, DSPLINK_init, 217

    Without ringio:
    --> dsplink.c, DSPLINK_init, 164
    ctrlPtr: ver(1.65.00.02) procId(0)
    linkAddr (0xc3f05100) drvDspInitDone (0)
    ipsAddr (0xc3f05180) ipsDspInitDone (0)
    poolAddr (0xc3f07600) poolConfigured (1) poolDspInitDone (0)
    mpcsAddr (0xc3f08100) mpcsConfigured (1) mpcsDspInitDone (0)
    mplistAddr(0xc3f08100) mpcsConfigured (1) mpcsDspInitDone (0)
    mqtAddr (0xc3f12500) mqtConfigured (1) mqtDspInitDone (0)
    dataAddr (0xc3f12a00) dataConfigured (1) dataDspInitDone (4294967295)
    ringIoAddr(0xc3f02380) ringIoConfigured(1) ringIoDspInitDone(4294967295)
    DRV_Config: nie(2) np(1) ndd(1) cf(0xffffffff)
    ID_GPP(1) dspHandshake(0x40)
    <-- dsplink.c, DSPLINK_init, 217

    I find it interesting that in the case where ringio is scaled out, the configuration flag (ringIoConfigured) is still set to 1.

    Thanks,
    Wes

  • Wes,

    There is something wrong in your Linux build. The build options change is not making any difference in your actual build. If RingIO component is removed, the RINGIO_COMPONENT define goes away, and all the code for RingIO goes away, including the checks for RingIO component initialization on DSP-side.

    The fact that DSP is not initializing RingIO means that DSP-side build is picking up the options correctly. But Linux-side build is not picking up the build options. Can you do a make with VERBOSE=1 and check if your build is actually not providing RINGIO_COMPONENT define when you don't choose it, and similar for other removals of modules in the configuration as well.

    Regards,
    Mugdha

  • Hi Mugdha,

    I tend to agree that the problem is on the Linux side, although, until now, I thought it was a DSP side problem. With that said, I haven't made any progress on addressing the issue. On Linux, I turned on VERBOSE=1, as you suggested, and RINGIO_COMPONENT is not present, nor is it present in CURRENTCFG.MK. I even opened up the dsplink.a and noted that there were no ringio object files present when the option was also not present. To double check that, I reconfigured to add ringio, took apart the archive, and ringio was now there.

    This all seems to be pointing to a file/library that is not being updated or copied. I thought I figured it out when I found dsplinkk.ko files on NFS that were dated at the beginning of the year. Alas, replacing these with freshly built files did not resolve the issue.

    Can you think of anything that I have forgotten to copy to NFS other than dsplinkk.ko and the GPP and DSP versions of my application?

    Thanks,
    Wes

  • Hi Mugdha,

    The outdated dsplinkk.ko files were the problem. Last week, I was copying the new dsplinkk.ko file after the old one was already loaded. I am now able to scale out components successfully. However, I did notice one change in behavior.

    If you look at my post which started this thread, you'll see that the GPP side gets to PROC_start and then waits for DSPLINK_init to be called. After scaling out any of the components that I don't need, GPP no longer waits for DSPLINK_init to be called. Why would this behavior change?

    The order of events after the scale-out is as follows:

    GPP: PROC_setup
    GPP: PROC_attach
    GPP: PROC_load
    GPP: PROC_start
    GPP: PROC_start completes
    GPP: task waits on a semaphore
    DSP: main starts
    DSP: main calls DSPLINK_init
    DSP: main completes and releases semaphore
    GPP: continues on about its business

    Is this behavior change expected or does it indicate some other problem?

    Thanks,
    Wes

  • Wes,

    Glad to see that your scalability issue is resolved.

    Wesley Denlinger said:

    If you look at my post which started this thread, you'll see that the GPP side gets to PROC_start and then waits for DSPLINK_init to be called. After scaling out any of the components that I don't need, GPP no longer waits for DSPLINK_init to be called. Why would this behavior change?

    The order of events after the scale-out is as follows:

    GPP: PROC_setup
    GPP: PROC_attach
    GPP: PROC_load
    GPP: PROC_start
    GPP: PROC_start completes
    GPP: task waits on a semaphore
    DSP: main starts
    DSP: main calls DSPLINK_init
    DSP: main completes and releases semaphore
    GPP: continues on about its business

    Is this behavior change expected or does it indicate some other problem?

    This is expected behavior. Internally, POOL and data drivers (CHNL) are already initialized by the time the application calls DSPLINK_init. This is because the POOLs and DATA drivers internally get plugged into BIOS. Hence, in the POOL initialization itself, we internally call _DSPLINK_init function, which completes the handshake and initialization from POOL perspective. NOTIFY is alwasy included and get initialized automatically. Since you are not including MSGQ (which completes initialization later), the handshake for you is completing early. If you had included MSGQ also in your build, the ARM handshake would block till MSGQ was also completely initialized.

    Regards,

    Mugdha