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.

Linux/TDA2PXEVM: Regarding cores stress

Part Number: TDA2PXEVM

Tool/software: Linux

Dear,

I'd like to do stress test for cores(eve, dsp, ipu and cpu).

So, before run the application I check the core load using 'Utils_prfGetLoad()'.

But the cpu load is 100%.

What is problem?

And is there anything to check the stress test?

BR,

Heechang

  • I use cmd this 'SYSTEM_COMMON_CMD_GET_LOAD'.
  • Hi,

    You can create a usecase grpxSrc-display.
    and it will show the load of all cores.

    Regards,
    Anuj
  • Hi,

    I'd like to up to all cores to 100%.
    grpxSrc-display is fine?

    I think that "while()" code should be inserted for runtime.

    BR,
    Heechang
  • possible up to 80~100% for cores load.

    BR,
    Heechang
  • Probably, yes you could put while(1), but please make sure to allow running other thread, which captures performance..

    Rgds,
    brijesh
  • Hi,

    I think that just insert 'while()' to each core of main.
    So, I inserted the test 'while()' code in below.
    (vision_sdk/links_fw/src/rtos/bios_app_common/tda2px/dsp1/src/main_common_c6xdsp2.c -> C6xDSP_main())
    Is this fine?

    If I run the usecase, the cores load cannot be up-to 80~100%.

    BR,
    Heechang
  • After I run the 'app.out', I call the function of 'ChainsCommon_printCpuLoad()'.

    The function is like below.

    void ChainsCommon_printCpuLoad()
    {
    if(System_isProcEnabled(SYSTEM_IPU_PROC_PRIMARY))
    {
    System_linkControl(
    SYSTEM_LINK_ID_IPU1_0,
    SYSTEM_COMMON_CMD_GET_LOAD:
    NULL,
    0,
    TRUE
    );
    }
    if(System_isProcEnabled(SYSTEM_PROC_DSP1))
    {
    System_linkControl(
    SYSTEM_LINK_ID_DSP1,
    SYSTEM_COMMON_CMD_GET_LOAD:
    NULL,
    0,
    TRUE
    );
    }
    if(System_isProcEnabled(SYSTEM_PROC_DSP2))
    {
    System_linkControl(
    SYSTEM_LINK_ID_DSP2,
    SYSTEM_COMMON_CMD_GET_LOAD:
    NULL,
    0,
    TRUE
    );
    }
    if(System_isProcEnabled(SYSTEM_PROC_EVE1))
    {
    System_linkControl(
    SYSTEM_LINK_ID_EVE1,
    SYSTEM_COMMON_CMD_GET_LOAD:
    NULL,
    0,
    TRUE
    );
    }

    After the menu is shown, I call the function.
    Because the code is described like below.

    case SYSTEM_COMMON_CMD_GET_LOAD:
    Utils_prfGetLoad(pPrm);

    But the each core of the cpuload is 100%.

    BR.
    Heechang
  • Hi.

    I do stress cores test up-to 80~100%.

    If I do test with usecase, it is difficult to up the cores to 80~100%.

    So,
    Without running the usecase, in task_main(), I insert the while() code for check the cpu load.

    ./links_fw/src/rtos/links_a15/system/systemLink_tsk_a15.c
    ./links_fw/src/rtos/links_dsp/system/systemLink_tsk_c6xdsp.c
    ./links_fw/src/rtos/links_eve/system/systemLink_tsk_eve.c

    If I do command of SYSTEM_COMMON_CMD_GET_LOAD, then the Utils_prfGetLoad(pPrm) is called.

    So,
    After run the app.out, I input the "key" input which call the "Utils_prfGetLoad".

    My code is here.

    ....
    Void CpuLoad(){
    Utils_SystemLoadStats cpuLoad;
    UInt32 linkId;

    if(System_isProcEnabled(SYSTEM_IPU_PROC_PRIMARY))
    {
    memset(&cpuLoad, 0, sizeof(cpuLoad));
    linkId = IPU1_0_LINK(SYSTEM_LINK_ID_PROCK_LINK_ID);

    System_linkControl(
    linkId,
    SYSTEM_COMMON_CMD_GET_LOAD,
    &cpuLoad,
    sizeof(cpuLoad),
    TRUE
    );
    }
    if(System_isProcEnabled(SYSTEM_PROC_DSP1))
    {
    memset(&cpuLoad, 0, sizeof(cpuLoad));
    linkId = DSP1_LINK(SYSTEM_LINK_ID_PROCK_LINK_ID);

    System_linkControl(
    linkId,
    SYSTEM_COMMON_CMD_GET_LOAD,
    &cpuLoad,
    sizeof(cpuLoad),
    TRUE
    );
    }
    ...

    If I check the cpuLoad, the cpuLoad of each core is 100%.

    Please help me.

    BR,
    Heechang
  • Hi,

    You can put a small sleep inside while loop for each cores.

    Regards,

    Anuj

  • Hi,

    Its been long since any update on this thread.

    I hope the issue is resolved.

    If not then please reply below or create a new thread for a different issue.

    Regards,

    Anuj