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.

DSPLink and Realtime Preemption

I'm trying to determine whether FULL Real-time preemption is supported using DSPLink version 1.61. The Install Guide states that it is not supported however the actual code has changed from Version 1.51 to 1.61. There is a kernel configuration check  as seen below.

We are using Davinci (DM6446) which defines DM6446GEM in 1.61.

 

 

From Version 1.51:

#if defined (CONFIG_PREEMPT_RT)

#if CONFIG_PREEMPT_RT == 1

#error Realtime preemption is not supported with this version of DSP/BIOS Link

#endif

#endif /* defined (CONFIG_PREEMPT_RT) */

#endif

 

 

From Version 1.61:

#if defined (CONFIG_PREEMPT_RT)

#if CONFIG_PREEMPT_RT == 1

#if (!defined (DM6467GEM) && !defined (DM6446GEM) )

#error Realtime preemption is not supported with this version of DSP/BIOS Link

#endif

#endif

#endif /* defined (CONFIG_PREEMPT_RT) */

  • As the Installation Guide suggests, only partial real-time preemtion is supported.

    •  No Forced Preemption (Server)
    •  Voluntary Kernel Preemption (Desktop)
    •  Preemptible kernel (Low Latency Desktop)

  • Hi,

    In DSPLink 1.6x, we made several changes to the Linux OSAL (and elsewhere in the code) to 'correctly' support low-latency desktop preemption mode. The way we approached this, based on advice from Linux kernel experts, was to implement RT Preempt support, and that would automatically take care of low-latency desktop preemption.

    Hence you see the changes in code that indicate that using RT preempt config will not return you error saying that it is not supported. The reason we check for this only on DM6446GEM & DM6467GEM, is that for these devices, we are using MVL Pro 5, which defines these preemption options.

    However, we document only upto low-latency desktop preemption, since we have only validated fully in this configuration. In RT Preempt mode, we have done only very basic testing, not enough to quality DSPLink as fully RT_PREEMPT safe.

    If you use RT_PREEMPT mode and run into any issues, please flag them to us, and we will be happy to fix them in the next version of DSPLink.

    I hope this answers your questions.


    Regards,
    Mugdha

  • Hi Mugdha,

    Are there any plans for TI to release a version of DSPLink that is RT_PREEMPT safe (and supported on MVL4.0)? Also, what kind of issues have arised? If there are no plans, I'll have to add the support myself but I'd like to know what I might be getting myself into.

    Thanks,

    Emile Semmes

  • Emile,

    DSPLink 1.63 (available here: http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/link/link_1_60/index.html) fixes some osal files that were causing issues in PREEMPT_RT mode. Several people have managed to successfully use DSPLink in PREEMPT_RT mode. However, we still do not document support as of now, since in-house testing in this mode is not done prior to release. We do encourage you to go ahead and use it and let us know if you face any issues. However, this version of DSPLink (and all 1.6x versions) only support MVL Pro 5 (2.6.18 +). There is not much usage of older Linux kernels, and hence support for it was deprecated in 1.6x.

    If you must use MVL Pro 4, it should be possible for you to make the minor changes required to support 2.6.10 kernel in 1.6x osal, rather than the reverse (i.e. adding PREEMPT_RT support in DSPLink 1.5x), since the changes for PREEMPT_RT were substantial and spanning across DSPLink (not just the osal).

    Regards,
    Mugdha

  • Mugdha,

     

    May i know what changes i have to do for using the DSPLINK(1.6x) for MVL Pro 4 in PREEMPT_RT mode?