<div dir="ltr">Hi Björn,<br><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 18, 2013 at 4:30 PM, Björn Brandenburg <span dir="ltr"><<a href="mailto:bbb@mpi-sws.org" target="_blank">bbb@mpi-sws.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><div><br><div><div>On Jul 18, 2013, at 1:51 PM, Björn Brandenburg <<a href="mailto:bbb@mpi-sws.org" target="_blank">bbb@mpi-sws.org</a>> wrote:</div>
<br><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;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<div><br>On Jul 18, 2013, at 11:49 AM, Björn Brandenburg <<a href="mailto:bbb@mpi-sws.org" target="_blank">bbb@mpi-sws.org</a>> wrote:</div><br><blockquote type="cite"><span style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">the branch on top of 3.10 now runs fine in QEMU. I've given all plugins a cursory run, and they seem to work fine. (PFAIR still has the issue reported by Hiro, but this is unrelated to the kernel version).</span><br style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<span style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">The kernel can be found here:</span><br style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<span style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;word-spacing:0px;white-space:pre-wrap"> </span><a href="https://github.com/LITMUS-RT/litmus-rt/commits/rebased-3.10" style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">https://github.com/LITMUS-RT/litmus-rt/commits/rebased-3.10</a><br style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
</blockquote></div><br style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
Under the (somewhat optimistic) assumption that the 3.10 branch works, I've back-ported rebased-3.10 on top of Linux 3.8.13, which is the version on top of which the latest PREEMPT_RT version is based. Some minor tweaks were required, but it compiles and boots in KVM. For the curious, the branch can be found here:</div>
<div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br></div><div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<span style="white-space:pre-wrap"> </span><a href="https://github.com/LITMUS-RT/litmus-rt/tree/rebased-3.8.13" target="_blank">https://github.com/LITMUS-RT/litmus-rt/tree/rebased-3.8.13</a></div><div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br></div><div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
The next step towards low latencies will be to actually squeeze in the PREEMPT_RT patch between 3.8.13 and the LITMUS^RT patch series… volunteers welcome. :-)</div></blockquote></div><br></div></div><div>Well, turns out there were only few merge conflicts. The branch now compiles *with* PREEMPT_RT:</div>
<div><br></div><div><span style="white-space:pre-wrap"> </span><a href="https://github.com/LITMUS-RT/litmus-rt/commits/rebased-3.8.13-rt14" target="_blank">https://github.com/LITMUS-RT/litmus-rt/commits/rebased-3.8.13-rt14</a></div>
</div></blockquote><div><br></div><div>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. <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: <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]# <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?<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div style="word-wrap:break-word"><div><br></div><div>However, it definitely does not work. I'm seeing a recursive lock acquisition of a run queue lock via hrtimer_cancel(). Sorting this out will take more time than I have now. I think for now my priority will be to get the 3.10 tree tested and released; I'll revisit PREEMPT_RT afterwards. Anyway, the code is in the repo if anyone wants to take a look.</div>
<div><br></div><div>Thanks,</div><div>Björn</div><div><br></div></div><br>_______________________________________________<br>
litmus-dev mailing list<br>
<a href="mailto:litmus-dev@lists.litmus-rt.org" target="_blank">litmus-dev@lists.litmus-rt.org</a><br>
<a href="https://lists.litmus-rt.org/listinfo/litmus-dev" target="_blank">https://lists.litmus-rt.org/listinfo/litmus-dev</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Daniel Bristot de Oliveira
</div></div>