Hi,Steve:
     Thank you for the clarification.

    >>Will ADOES wake up the related linux process at once when the head
    >>domain write something to the XDDP node?* Or, the linux process
    >>has to wait for the schedule of linux kernel, if the processor is
    >>busy, it may wait for a long long time.
    >The Linux process cannot wake up immediately, otherwise what would
    >be the point of having an RT co-kernel if it didn't preempt the
    >non-RT environment.
     Yea,I can't agree  more.
     Imagine this  scenario, your processor have 4 cores and you only have
one
     RT process which has single thread.So, there are 3 cores could be used
     for the linux processes at least. What i am interested in is that* if *
*     the linux process wait to receive message through XDDP has to compete*
*     for the cpu resources** with so many other linux processes .*

     >If you're going to build code that makes a NRT process a subordinate
     >of an RT process, you're going to have to employ some non-standard
    >logic and get creative about how you deal with the inverted priority
    >relationship that implicitly exists between the RT/NRT schedulers
    >involved in that scenario.

    What do you mean by " employ  some non-standard logic"?Could you make
me more clearlly?

     Thank you for your attention.
     Look forward to hearing from you.

steve freyder <st...@freyder.net> 于2020年5月12日周二 上午11:43写道:

> On 5/11/2020 9:16 PM, 孙世龙 via Xenomai wrote:
>
> Hi,
>      As i am using XDDP to transport messages bettween the head domain and
> linux domain(i mean there are two processes, one is rt process, the other
> is linux process.),I wonder that when the linux process could recieve the
> message?
>      *Will ADOES wake up the related linux process at once when the head
> domain write something to the XDDP node?* Or, the linux process has to wait
> for the schedule of linux kernel, if the processor is busy, it may wait for
> a long long time.
>
>      Thank you for your attention.
>      Looking forward to hearing from you.
>
> The Linux process cannot wake up immediately, otherwise what would be the
> point of having an RT co-kernel if it didn't preempt the non-RT environment.
>
>
> If the RT process wishes to give the non-RT process an opportunity to run
> in order to receive the just-sent message, it had better relinquish the
> CPU.  Inserting an rt_sleep() call (or equivalent) might be one
> (inelegant?) option, but certainly nothing in iPipe or anything at that
> layer is going to magically solve that problem for you.
>
>
> If you're going to build code that makes a NRT process a subordinate of an
> RT process, you're going to have to employ some non-standard logic and get
> creative about how you deal with the inverted priority relationship that
> implicitly exists between the RT/NRT schedulers involved in that scenario.
> XDDP is a bidirectional data relay, not a scheduler.
>
>
> Regards,
>
> Steve
>
>
>

Reply via email to