<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jul 18, 2013, at 10:51 PM, Daniel Bristot de Oliveira <<a href="mailto:danielbristot@gmail.com">danielbristot@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">I'm on a Ms in automation engineering at UFSC - Brazil, working with real time Linux, but, my works fits better on PREEMPT_RT, then I'm using it. I already have made tests with Litmus RT, but I'm not a Litmus RT expert. I'm interested to help.<span class="Apple-converted-space"> </span><br><br>At my work (I work on a company too, where I use the PREEMPT_RT too) I have a Xeon E5620 @ 2.40GHz at my desk, where I compile the rebased-3.8.13.<br><br>I used the make localmodconfig, the config file is here:<span class="Apple-converted-space"> </span><a href="http://www.bristot.eti.br/files/litmus/3_8_13/config">http://www.bristot.eti.br/files/litmus/3_8_13/config</a>, and I build the kernel as is on the git.<br><br>I got just one compilation problem:<br><br> CC kernel/sched/core.o<br>kernel/sched/core.c: In function ‘ttwu_queue’:<br>kernel/sched/core.c:1417:2: error: implicit declaration of function ‘is_realtime’ [-Werror=implicit-function-declaration]<br>kernel/sched/core.c: In function ‘finish_task_switch’:<br>kernel/sched/core.c:1871:32: error: ‘NO_CPU’ undeclared (first use in this function)<br>kernel/sched/core.c:1871:32: note: each undeclared identifier is reported only once for each function it appears in<br>kernel/sched/core.c: In function ‘__schedule’:<br>kernel/sched/core.c:3051:2: error: implicit declaration of function ‘srp_ceiling_block’ [-Werror=implicit-function-declaration]<br>kernel/sched/core.c: In function ‘__sched_setscheduler’:<br>kernel/sched/core.c:3952:3: error: implicit declaration of function ‘litmus_admit_task’ [-Werror=implicit-function-declaration]<br>kernel/sched/core.c:4014:3: error: implicit declaration of function ‘litmus_exit_task’ [-Werror=implicit-function-declaration]<br>kernel/sched/core.c:4021:50: error: ‘NO_CPU’ undeclared (first use in this function)<br>cc1: some warnings being treated as errors<br>make[2]: *** [kernel/sched/core.o] Error 1<br>make[1]: *** [kernel/sched] Error 2<br>make: *** [kernel] Error 2<br>[root@localhost litmus-rt-preempt_rt]#<span class="Apple-converted-space"> </span><br><br><br>that I fixed with this:<br><br>diff --git a/kernel/sched/core.c b/kernel/sched/core.c<br>index 2a6de74..c36d86d 100644<br>--- a/kernel/sched/core.c<br>+++ b/kernel/sched/core.c<br>@@ -89,6 +89,7 @@<br> #include <litmus/trace.h><br> #include <litmus/sched_trace.h><br> #include <litmus/sched_plugin.h><br>+#include <litmus/litmus.h><br> <br> void litmus_tick(struct rq*, struct task_struct*);<br><br>the system is running, what's the next step? compile with PREEMPT_RT?</div></blockquote><br></div><div>Hi Daniel,</div><div><br></div><div>welcome! Thanks for joining the effort. With the running system, the next step would be to compile liblitmus (from the port-3.10 branch), pick a plugin with setsched, and run 'runtests', which runs the liblitmus test suite.</div><div><br></div><div>If everything works, the second step would be to build the branch that includes PREEMPT_RT:</div><br><div><span class="Apple-tab-span" style="white-space:pre"> </span><a href="https://github.com/LITMUS-RT/litmus-rt/commits/rebased-3.8.13-rt14">https://github.com/LITMUS-RT/litmus-rt/commits/rebased-3.8.13-rt14</a></div><div><br></div><div>And then debug it… I assume we are breaking some PREEMPT_RT assumptions that will need fixing. If you have experience with PREEMPT_RT, you could help us out by suggesting fixes for bugs in LITMUS^RT.</div><div><br></div><div>For example, rt_domain.c calls hrtimer_cancel() while (indirectly) holding a run queue lock. This works fine in mainline, but causes a recursive locking problem in PREEMPT_RT. Once that is fixed, I'm sure there will be more that breaks.</div><div><br></div><div>Thanks,</div><div>Björn</div><div><br></div></body></html>