[LITMUS^RT] call for testing 3.10

Björn Brandenburg bbb at mpi-sws.org
Thu Jul 18 23:11:00 CEST 2013


On Jul 18, 2013, at 10:51 PM, Daniel Bristot de Oliveira <danielbristot at gmail.com> wrote:

> 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. 
> 
> 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.
> 
> I used the make localmodconfig, the config file is here: http://www.bristot.eti.br/files/litmus/3_8_13/config, and I build the kernel as is on the git.
> 
> I got just one compilation problem:
> 
>   CC      kernel/sched/core.o
> kernel/sched/core.c: In function ‘ttwu_queue’:
> kernel/sched/core.c:1417:2: error: implicit declaration of function ‘is_realtime’ [-Werror=implicit-function-declaration]
> kernel/sched/core.c: In function ‘finish_task_switch’:
> kernel/sched/core.c:1871:32: error: ‘NO_CPU’ undeclared (first use in this function)
> kernel/sched/core.c:1871:32: note: each undeclared identifier is reported only once for each function it appears in
> kernel/sched/core.c: In function ‘__schedule’:
> kernel/sched/core.c:3051:2: error: implicit declaration of function ‘srp_ceiling_block’ [-Werror=implicit-function-declaration]
> kernel/sched/core.c: In function ‘__sched_setscheduler’:
> kernel/sched/core.c:3952:3: error: implicit declaration of function ‘litmus_admit_task’ [-Werror=implicit-function-declaration]
> kernel/sched/core.c:4014:3: error: implicit declaration of function ‘litmus_exit_task’ [-Werror=implicit-function-declaration]
> kernel/sched/core.c:4021:50: error: ‘NO_CPU’ undeclared (first use in this function)
> cc1: some warnings being treated as errors
> make[2]: *** [kernel/sched/core.o] Error 1
> make[1]: *** [kernel/sched] Error 2
> make: *** [kernel] Error 2
> [root at localhost litmus-rt-preempt_rt]# 
> 
> 
> that I fixed with this:
> 
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 2a6de74..c36d86d 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -89,6 +89,7 @@
>  #include <litmus/trace.h>
>  #include <litmus/sched_trace.h>
>  #include <litmus/sched_plugin.h>
> +#include <litmus/litmus.h>
>  
>  void litmus_tick(struct rq*, struct task_struct*);
> 
> the system is running, what's the next step? compile with PREEMPT_RT?

Hi Daniel,

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.

If everything works, the second step would be to build the branch that includes PREEMPT_RT:

	https://github.com/LITMUS-RT/litmus-rt/commits/rebased-3.8.13-rt14

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.

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.

Thanks,
Björn

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20130718/ceaa1f2a/attachment.html>


More information about the litmus-dev mailing list