I see an issue on Device DM814x and Linux is running on ARM Cortex A8.
Tool versions on DSP are bios_6_33_05_46, ipc_1_24_03_32, syslink_2_20_00_14, xdctools_3_23_03_53
Multiple processes are running on ARM, with one process taking 40% CPU Load.
There is another process on ARM which controls the DSP and there is Syslink MsgQ and RingIO Communication between ARM and DSP.
We have a HeapMemMP created in the Shared Region(No GateMP is created) and registered to MessageQ with HeapId 1.
We send messages between ARM thread and DSP Task
ARM allocates memory sends the message to DSP and DSP frees the memory.
DSP allocates memory and sends the message to ARM and ARM frees the memory.
We are facing problem with the DSP getting blocked for 2-6 ms sometimes and missing real time
If the process which takes 40% cpu load on ARM is not running this issue is not observed.
If I change some messagess using messageq_alloc to static allocation, number of times this issue happens is reduced.
I see from GateMP doc, that when a remote processor has acquired the Gate, GateMP_enter enters a spinlock.
Does this mean higher priority task on dsp also gets blocked? What can I do to avoid blocking DSP due to this issue?
Let me know if you need more information.
-Kishor