Forum Discussion
Altera_Forum
Honored Contributor
15 years agoMichael,
--- Quote Start --- I understand that this is true with a standard system, independent of the Kernel configuration, as well: If you start a process or thread and assign a realtime Prioridy (SCHED_FIFO or SCHED_RR) to it, and this process or thread never goes to sleep on it's own, all "normal" user process will hang. forever. --- Quote End --- By default no because you have for the kernel "Real-Time group scheduling" enabled. See here: http://www.kernel.org/doc/documentation/scheduler/sched-rt-group.txt By default, you have : # cat /proc/sys/kernel/sched_rt_period_us 1000000 # cat /proc/sys/kernel/sched_rt_runtime_us 950000 That means that during 1 second, 95 % of CPU time is for RT threads (if they use it of course) and the 5 % remaining time for the non-RT threads. If your RT threads need more than 950 ms of CPU time, they are stopped during the last 5 ms for non RT threads and rerun after. This behaviour is unacceptable for a realtime system and must be disabled by:# echo -1 > /proc/sys/kernel/sched_rt_runtime_us In this cas, RT threads take all the CPU time they need and it is possible that non RT threads are not executed. That is what we want with a real hard realtime system. In this special case, what you say is correct. --- Quote Start --- This does sound very good. But did you find that the overall Kernel performance (for time shared work) significantly degrades (with no realtime process running) ? --- Quote End --- I use:# echo -1 > /proc/sys/kernel/sched_rt_runtime_us to have with PREEMPT-RT the more realtime behaviour as possible. --- Quote Start --- I see. With the actual NIOS "hardware" there seems not to be another way to go. http://www.alteraforum.com/images/smilies/frown.gif unfortunately this will not be possible with a future SMP implementation http://www.alteraforum.com/images/smilies/frown.gif . --- Quote End --- Yes, you're right. No SMP support at this time... Patrice.