TDA4AP-Q1: IPC Crash for Using DD Command

Part Number: TDA4AP-Q1

Hi TI Experts,

When customer use linux dd command to do some test, it will cause ipc crash, and may need our help to find the ipc crash reason, thanks!

Test Environment   

SW: rtos sdk 9.2, linux sdk 9.1

HW: customer board, CPU: j784s4, DDR: 4G

IPC Lib Config

Test Steps

(1) modify ipc echo max count

 

(2) build mcu1_1, and mcu4_0 ipc echo demo:

    make BOARD=j784s4_evm CORE=mcu1_1  ipc_echo_test_freertos -j17

    make BOARD=j784s4_evm CORE=mcu4_0  ipc_echo_test_freertos -j17

(3) copy the above ipc echo firmware to linux system and link together

(4) reboot and do nothing to see ipc echo success & completed log (log from ipc_trace_buffer)

(5) reboot and test dd command: (dd if=/dev/random of=./test.data bs=1M count=5000 status=progress)

    Ipc crash, and never show competed log.

(6) To dig out more information, customers add the code to print the number of send shown below.

(7)  reboot and do nothing to see ipc echo success & completed log (log from ipc_trace_buffer)

(8) reboot and test dd command: (dd if=/dev/random of=./test.data bs=1M count=5000 status=progress)

Report error & no completed log shown.

Could you help on why dd command test will affect the IPC and cause IPC crash please?

If there is any suggestions please let us know.

Thanks a lot!

Kevin

  • Hi Kevin,

    Our IPC expert is currently out of office for a couple of days. Please expect a delay in response.

    Regards,

    Josiitaa

  • Hello,

        make BOARD=j784s4_evm CORE=mcu1_1  ipc_echo_test_freertos -j17

        make BOARD=j784s4_evm CORE=mcu4_0  ipc_echo_test_freertos -j17

    You built ipc echo test example for MCU1_1 and MCU4_0 communication and its fine you able to see the communication between cores

      reboot and do nothing to see ipc echo success & completed log (log from ipc_trace_buffer)

    As soon as you boot the cores the application in MCU1_1 and MCU4_0 starts communicating with each other and get ping pong messages.

    There is no need of command to initiate it.

    Could you help on why dd command test will affect the IPC and cause IPC crash please?

    I don't understand "dd"  here,i believe this is some custom application and need more details to understand.

    if you need ipc echo test on MCU1_0 you need to include in ti dm and need to rebuild. Have you done it for MCU1_0?

    Regards

    Tarun Mukesh

  • Hi Tarun Mukesh:

    dd command is  linux command( When and How to Use the dd Command | Baeldung on Linux).

    when the linux startup ,  I test dd command,  I found IPC crash. 

    if you need ipc echo test on MCU1_0 you need to include in ti dm and need to rebuild. Have you done it for MCU1_0?

    We only need to test mcu1_1 and mcu4_0.

  • Hi Tarun,

    Based on Kong's explanation. Actually they do not need MCU1-0. Currently without using dd command, their MCU1-1 & MCU4-0 are working as expected.

    However, they found after they using dd, it seems will affect IPC, and make it crash, which is not expected.

    Thanks,

    Kevin

  • Hi Tarun,

    I had a call with Kong about why they use dd here.

    The only purpose here is to make a pressure test on our IPC performance. The basic theory in dd is to copy some image to another place, this will gives some pressure on the CPU. They want to see if our IPC still works as expected under pressure test.

    The dd test command they used could also be used at our side in the default SDK.

        test dd command: (dd if=/dev/random of=./test.data bs=1M count=5000 status=progress)

    Thanks,

    Kevin

  • Kevin,

    I tried to understand your statement here,

    The dd test command they used could also be used at our side in the default SDK.

        test dd command: (dd if=/dev/random of=./test.data bs=1M count=5000 status=progress)

    This command you are running on A72 running linux and has nothing to do with MCU1_1 and MCU4_0.

    The executables of MCU1_1 and MCU4_0 will be not be affected by anything running on linux , may be you are not able to see the log prints on trace buffer since A72 is busy in dd command ,not fetching the logs from trace buffer.

      

    and also i see failure for MCU1_1 and MCU1_0 

    Actually they do not need MCU1-0.

    but you are saying MCU1_0 is not needed.

    Regards

    Tarun Mukesh

  • Hi Tarun,

    Thanks for your information.

    Let me explain this with more details.

    Yes the MCU1-0 is using for sure, and you could see that without using dd command, it is working as expected. So there should not be configuration problems otherwise it will still fail without using dd here. You could refer to the above step 7 for details.

    The current situation is that we do see using dd has some effect on the ipc performance, and we are trying to find some clue or directions to find out the root cause.

    Thanks,

    Kevin

  • Kevin,

    You are using communication between MCU1_0 and MCU4_0 along with MCU1_1 and MCU4_0 .Am i right ?

    Let me explain ,

    1) ipc echo test on any core communicates with other cores if other cores executable is also ipc echo test then ping pong will happen as soon the respective cores start running. 

    2)If you fetch the log printed in trace buffer then you can see the ping pong prints.

    3)In you case you are running dd command on A72 , it has nothing to do with other core IPC performance unless dd command intervenes into other cores or DDR RAM .How are you saying performance got impacted ?

    Regards

    Tarun Mukesh 

  • Thank  you for help .  Our linux miss initialize one setion of memory.    Closed.