<div dir="ltr"><div><div>Hi Daneil,<br><br></div>Your suggestion is good. The GSN-EDF plugin works fine after the config.<br></div><div>And I tested all the sched plugins:<br><br>(gdb) p testsuite <br>$3 = {{plugin = 0x40c9e7 "PFAIR", testcases = 0x60f380, num_cases = 8}, {<br>
plugin = 0x40c9ed "C-EDF", testcases = 0x60f3a0, num_cases = 8}, {<br> plugin = 0x40c9f3 "P-FP", testcases = 0x60f3c0, num_cases = 34}, {<br> plugin = 0x40c9f8 "LINUX", testcases = 0x60f450, num_cases = 7}, {<br>
plugin = 0x40c9fe "GSN-EDF", testcases = 0x60f480, num_cases = 11}, {<br> plugin = 0x40ca06 "PSN-EDF", testcases = 0x60f4c0, num_cases = 17}}<br><br><br>Environment:<br>Intel(R) Pentium(R) CPU 2117U @ 1.80GHz Dual-Core<br>
4G RAM laptop<br><br>./setsched PFAIR; ./runtests <br>** Result: 8 ok, 0 failed.<br><br>./setsched C-EDF; ./runtests <br>** Result: 8 ok, 0 failed.<br><br>./setsched P-FP; ./runtests <br>** Result: 31 ok, 3 failed.<br><br>
./setsched LINUX; ./runtests <br>Error: Setting new plugin failed.<br><br>./setsched GSN-EDF; ./runtests <br>** Result: 11 ok, 0 failed.<br><br>./setsched PSN-EDF; ./runtests <br>** Result: 16 ok, 1 failed.<br><br><br></div>
<div>There are few fails, I cut off the detailed log, otherwise, a lot too long.<br>Before moving into details and debug, if it is still the config issue, please let me know.<br><br>Thanks<br></div><div>Jeff<br></div><div>
<br></div><div><br></div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jul 21, 2013 at 7:42 PM, Daniel Bristot de Oliveira <span dir="ltr"><<a href="mailto:danielbristot@gmail.com" target="_blank">danielbristot@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi Jeff,<br><br></div><div>As Bjorn said, my problem was in my kernel config. By default, the options:<br>
<br></div><div>LITMUS^RT ---> Real-Time Synchronization ---> "Non-preemptive section support" and "Support for real-time locking protocols" <br>
<br>are disable. After enable both and recompile the kernel, the test runs without errors.<br><br></div><div>Perhaps, change the default for "config NP_SECTION" and "config LITMUS_LOCKING" to "y" on file litmus/Kconfig will make life easier for guys like me, who are starting with Litmys^RT. But, may have a good reason to the default be 'n', then, it is only a suggestion. <br>
</div><br></div>Good night :-) (I'm in UTC-3).<br><div><div><br></div></div></div><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On Sun, Jul 21, 2013 at 2:39 PM, Jeff Zhou <span dir="ltr"><<a href="mailto:jeffzhou.us@gmail.com" target="_blank">jeffzhou.us@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi, Björn:<br><br></div>I see similar runtest log in rebased-3.10, like Daniel's work in 3.8.13, <br>
after./setsched GSN-EDF<br><br></div>Will the next the step be to push on this branch and attempt fixing, until pass all the tests?<br>
<br></div>Regards,<br>Jeff<br><div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Sun, Jul 21, 2013 at 7:01 AM, Björn Brandenburg <span dir="ltr"><<a href="mailto:bbb@mpi-sws.org" target="_blank">bbb@mpi-sws.org</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div style="word-wrap:break-word"><br><div><div><div><div>On Jul 19, 2013, at 7:44 PM, Daniel Bristot de Oliveira <<a href="mailto:danielbristot@gmail.com" target="_blank">danielbristot@gmail.com</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-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br>I'm in a meeting, away from my desk, and from Xeon too. But I build the LITMUS rebased-3.8.13 on a VM (KVM) on my notebook and run the test:<br><br>[root@localhost liblitmus]# ./setsched GSN-EDF<br>[root@localhost liblitmus]# ./runtests<span> </span><br>
** LITMUS^RT test suite.<br>** Running tests for GSN-EDF.<br>** Testing: reject invalid rt_task pointers... ok.<br>** Testing: reject invalid rt_task values... ok.<br>** Testing: reject job control for non-rt tasks... ok.<br>
** Testing: children of RT tasks are not automatically RT tasks... ok.<br>** Testing: tasks have write access to /dev/litmus/ctrl mappings... ok.<br>** Testing: admission control handles suspended tasks correctly... ok.<br>
** Testing: admission control handles running tasks correctly... ok.<br>** Testing: FMLP no nesting allowed...<span> </span><br>!! TEST FAILURE od = open_fmlp_sem(fd, 0) -> -1, Invalid argument<br> at tests/nesting.c:18 (test_lock_fmlp_nesting)<br>
in task PID=729<br>** Testing: reject invalid object descriptors...<span> </span><br>!! TEST FAILURE litmus_lock(3) -> -1, Function not implemented (expected: EINVAL)<br> at tests/fdso.c:34 (test_invalid_od)<br> in task PID=730<br>
** Testing: reject invalid object types... ok.<br>** Testing: don't inherit FDSO handles across fork...<span> </span><br>!! TEST FAILURE od = open_fmlp_sem(fd, 0) -> -1, Invalid argument<br> at tests/fdso.c:62 (test_not_inherit_od)<br>
in task PID=732<br>** Testing: don't let best-effort tasks lock FMLP semaphores...<span> </span><br>!! TEST FAILURE od = open_fmlp_sem(fd, 0) -> -1, Invalid argument<br> at tests/locks.c:16 (test_not_lock_fmlp_be)<br>
in task PID=733<br>** Testing: FMLP acquisition and release...<span> </span><br>!! TEST FAILURE od = open_fmlp_sem(fd, 0) -> -1, Invalid argument<br> at tests/locks.c:91 (test_lock_fmlp)<br> in task PID=734<br>
** Result: 8 ok, 5 failed.<br>
<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-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
Dmesg:<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-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br>[ 220.569011] Switching to LITMUS^RT plugin GSN-EDF.<br>[ 226.070144] Setting up rt task parameters for process 719.<br>[ 226.070149] Setting up rt task parameters for process 719.<br>[ 226.072635] Setting up rt task parameters for process 720.<br>
[ 226.072638] litmus: real-time task 720 rejected because task density > 1.0<br>[ 226.072640] Setting up rt task parameters for process 720.<br>[ 226.072641] Setting up rt task parameters for process 720.<br>[ 226.072642] litmus: real-time task 720 rejected because task density > 1.0<br>
[ 226.072643] Setting up rt task parameters for process -1.<br>[ 226.072644] Setting up rt task parameters for process 720.<br>[ 226.076256] Setting up rt task parameters for process 722.<br>[ 226.381512] Setting up rt task parameters for process 726.<br>
[ 226.597153] Setting up rt task parameters for process 728.<br>[ 226.700791] Setting up rt task parameters for process 729.<br>[ 226.700810] get_inode_obj(ffff88003b7d3f28, 0, 0): couldn't find object<br>[ 226.708555] get_inode_obj(ffff88003b7d3f28, 0, 0): couldn't find object<br>
[ 226.710410] get_inode_obj(ffff88003b7d3f28, 0, 0): couldn't find object<br>[ 226.712909] Setting up rt task parameters for process 734.<br>[ 226.712924] get_inode_obj(ffff88003b7d3f28, 0, 0): couldn't find object<br>
</div></blockquote><div><br></div><div><br></div></div></div><div>I think this is caused by your configurations. You need to enable locking support in the kernel for these tests to pass. The test suit is not clever enough to figure out whether the kernel has support compiled in.</div>
<div><div><br></div><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-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
</div><blockquote class="gmail_quote" style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="word-wrap:break-word"><div><br></div><div>If everything works, the second step would be to build the branch that includes PREEMPT_RT:</div><br><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><span> </span><br>
</div></div></blockquote><blockquote class="gmail_quote" style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="word-wrap:break-word"><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></blockquote><div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;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-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
I use the PREEMPT RT it at work, I work in a R&D lab, developing telecommunication devices. On my Ms, I'm developing a new ftrace tracer plugin, and I'm using and analyzing the kernel with PREEMPT RT. I know how it works, the difference between the vanilla and the Preempt RT and some implementations, like the rt\_spinlocks.<br>
<br>I'm sorry, in advance, if I'm a little late in the answers, I work 44 hours/week and I'm finishing my ms degree, then, I'm a little busy... But I really want to find time to help.<br><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-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
</div><blockquote class="gmail_quote" style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="word-wrap:break-word"><div></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></blockquote><div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<br></div><span style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">If I can reproduce this on some machine here, I would like to debug, on this kind of bugs is where the fun lives :-)</span><br>
</blockquote><br></div></div><div>Excellent, thank you very much for your time and your help with debugging this!</div><div><br></div><div>Thanks,</div><div>Björn</div><div><br></div><br></div><br></div></div><div>
_______________________________________________<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></div></blockquote></div><br></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></div></div><div class="im">-- <br>Daniel Bristot de Oliveira
</div></div>
<br>_______________________________________________<br>
litmus-dev mailing list<br>
<a href="mailto:litmus-dev@lists.litmus-rt.org">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></div>