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.

Big DSP-Load when using System-Analyzer

Other Parts Discussed in Thread: SYSBIOS

When we use System-Analyzer with loggerSM (shared memory, no cashed) the DSP load increases
massively (more than 10%). Also we could see that the most additional load is produced if
sysbiosTaskLogging is on. The number of the sysbios task events runs up to 21000 events per second.

Is the load so big because of to many events or can it be a configuration problem?
Is it possible to deactivate the logging of some specific sysbios events, for example Task_LM_setPri?

  • Hi Vitalij,

    By default, LoggerSM decodes events into ascii strings before writing them into the buffer, so if you have LoggerSM.decode = true, there could be a lot of overhead in formatting the strings.

    What version of UIA are you using and on what platform?

    Best regards,

        Janet

  • Hi Janet,

    we set LoggerSM.decode = false.

    The version of UIA is 1.0.3.25 and the platform is c674x.


    Best regards,

     Vitalij

  • Hi Vitalij,

    It could be that the CPU load is high if you are logging a lot of events.  What SYS/BIOS events do you have enabled?  Could you post your .cfg file?

    Thanks,

        Janet

  • Hi Janet,

    here is the configuration of System Analyzer:

     var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
        var LoggerSM = xdc.useModule('ti.uia.runtime.LoggerSM');

        // Setup share-mem logger instance
        LoggerSM.sharedMemorySize = parseInt(environment["TRACE_LENGTH"],16);
        LoggerSM.numPartitions = 1;
        LoggerSM.partitionId = 0;
        LoggerSM.bufSection = ".loggerSM";
        LoggerSM.decode = false;
        LoggerSM.overwrite = true;
        LoggerSM.filterByLevel = false;
        LoggerSM.level1Mask = Diags.USER2;
        LoggerSM.level2Mask = 0;
        LoggerSM.level3Mask = 0;
        LoggerSM.level4Mask = (Diags.ALL_LOGGING & (~Diags.USER2));
        
        var loggerSM = LoggerSM.create();
        // use share-mem logger for all logger
        LoggingSetup.loadLogger = loggerSM;
        LoggingSetup.mainLogger = loggerSM;
        LoggingSetup.sysbiosLogger = loggerSM;
        
        LoggingSetup.mainLogging = true;
        LoggingSetup.loadLogging = true;
        LoggingSetup.sysbiosTaskLogging = true; //(default = true)
        LoggingSetup.sysbiosSwiLogging = true; //(default = false)
        LoggingSetup.sysbiosHwiLogging = true; //(default = false)
        LoggingSetup.disableMulticoreEventCorrelation = true; // true for single core DSP

    The DSP load is very big only if we set LoggingSetup.sysbiosTaskLogging = true. If the flag is false

    the load increases up to 2%.

    Best regards,

    Vitalij

  • Hi Vitalij,

    When you have LoggingSetup.loadLogging = true, this brings in the SYS/BIOS ti.sysbios.utils.Load module to do the CPU and Task load calculations.  The Load module has Task load enabled by default, which brings in some Task hook functions.  I'm not sure if that would increase your CPU load significantly, but you can try disabling Task load logging and see if that makes a difference.  Here is how you can do that in your .cfg file:

    var Load = xdc.useModule('ti.sysbios.utils.Load');
    Load.taskEnabled = false;

    Another thing to consider, is that the LoggerSM buffer must be in non-cached memory, so maybe that is causing the CPU load to be higher, if you are logging a lot of Task events.

    Also, I forgot to ask you which version of BIOS and CCS you are using.

    Best regards,

        Janet

  • Hi Janet,

    the deactivation of Load-Module does not affect the DSP-Load. I think our problem are to much sysbios task events.

    Only one question stays: Is it possible to deactivate the logging of some specific sysbios events, for example Task_LM_setPri?

    SysBios: 6.32.5.34

    CCS: 5.5.0.00077

    Best regards,

    Vitalij

  • Hi Vitalij,

    Unfortunately, it is not possible to disable some of the Task Logging events, such as Task_LM_setPri, without also disabling the Task events needed by System Analyzer.  You could disable Semaphore and Event Logging, if you think there are a significant number of those events.  Here is how you can do that:

            Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
            Semaphore.common$.diags_USER1 = Diags.RUNTIME_OFF;
            Semaphore.common$.diags_USER2 = Diags.RUNTIME_OFF;

            Event = xdc.useModule('ti.sysbios.knl.Event');
            Event.common$.diags_USER1 = Diags.RUNTIME_OFF;
            Event.common$.diags_USER2 = Diags.RUNTIME_OFF;

    You could also try using LoggerStopMode instead of LoggerSM, if you have a JTAG connection, and see if that makes a difference in the Load.

    Best regards,

        Janet

  • Hi Janet,

    our intension is to use LoggerSM for some reasons. We made some tests last time. The results show us, our problem is producing to many events.


     Thank you for your help. This item can be closed.

    Best regards,

    Vitalij