On Fri, 2011-03-25 at 15:48 -0400, Eric Eric wrote: > Roger on the RR/FIFO scheduling question. Regarding Linux starvation, > it looks like pthread_setschedparam_ex can be used on a particular > Linux thread to avoid starvation, however I'm more concerned about the > Linux kernel itself. In the example below, I may want the kernel to > have some time to service interrupts even if an RT task is behaving > badly. How could I achieve this?
As an extension, Xenomai interprets param.low_prio == -1 as "suspend the thread". So each time the thread exceed its runtime credit, the nucleus suspends it until it is replenished, instead of merely downgrading its priority. As a side-effect, Linux becomes runnable again (unless another -rt thread is requesting the CPU immediately, but you get the point). > > Thanks again for the fast and helpful responses! > > - Eric > > On Fri, Mar 25, 2011 at 4:21 AM, Philippe Gerum <[email protected]> wrote: > > On Thu, 2011-03-24 at 19:47 -0400, Eric Eric wrote: > >> Hello, I've been reading through some of the documentation and have a > >> few questions regarding scheduling: > >> > >> - API docs say that rt_task_set_mode can allow a task to undergo > >> round-robin scheduling. This seems to imply that we can have an > >> environment of mixed round-robin and FIFO task scheduling. Is this > >> correct? If so, what is the scheduling relationship between tasks > >> running in FIFO and RR modes? > > > > RR are FIFO threads within the same priority group. > > > >> > >> - I am concerned about Linux starvation. For example, suppose a > >> misbehaving RT task spins and burns CPU indefinitely (watchdog > >> notwithstanding). I would still like to preempt this task and allow > >> Linux to run for up to some maximum time (say up to 30mS every 200mS). > >> So, if using RR scheduling, is there a way to use rt_task_slice to > >> allocate time to Linux? Is there a Linux shadow thread that I can > >> allocate time to? > > > > Xenomai implements sporadic server scheduling. See SCHED_SPORADIC, > > usable with int pthread_setschedparam_ex(). > > > >> > >> Thank you. > >> > >> - Eric > >> > >> _______________________________________________ > >> Xenomai-help mailing list > >> [email protected] > >> https://mail.gna.org/listinfo/xenomai-help > > > > -- > > Philippe. > > > > > > -- Philippe. _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
