Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

Can I remove the DSPLINK_ALIGN when I call MSGQ_alloc for the MSGQ buffers?

Buffers msgq remove
0
Posted

Can I remove the DSPLINK_ALIGN when I call MSGQ_alloc for the MSGQ buffers?

0

The message size must be a multiple of DSP L2 cache line size. This is required to ensure that the buffers are aligned on cache line boundary. This is essential to ensure that there is no cache corruption when we perform cache coherence operations on the message contents, which includes the message header and payload. If application writer has specified exactMatchReq as FALSE when creating the POOL that holds the message buffers, and you have ensured, during POOL configuration, that the buffer sizes are multiples of DSP L2 cache size, then when MSGQ_alloc is called, even without the DSPLINK_ALIGN (and it is a smaller size than 128 bytes), the POOL will return you the next highest size, which will be an aligned size. However, if you have specified exactMatchReq as TRUE, then MSGQ_alloc will fail if application writer does not use DSPLINK_ALIGN to align the size to cache line boundary. If application writer configures the POOL with non-aligned sizes, you will see non-deterministic behavi

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.

Experts123