<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git, branch wip-timer-trace</title>
<subtitle>The LITMUS^RT kernel.</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/'/>
<entry>
<title>bugfix: C-EDF, clear scheduled field of the correct CPU upon task_exit</title>
<updated>2010-12-25T10:44:29+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-12-21T23:19:27+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d06b68ec1e82842e02c37977fcebc0626d0becd5'/>
<id>d06b68ec1e82842e02c37977fcebc0626d0becd5</id>
<content type='text'>
Do not use the "scheduled_on" field to address the cpus structure
within a cluster. cpus may contain less items than num_online_cpus and
we may cause an out-of-bound access. Instead, use "scheduled_on" to
directly access the per-cpu cpu_entry_t structure.

Reported-by: Jonathan Herman &lt;hermanjl@cs.unc.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Do not use the "scheduled_on" field to address the cpus structure
within a cluster. cpus may contain less items than num_online_cpus and
we may cause an out-of-bound access. Instead, use "scheduled_on" to
directly access the per-cpu cpu_entry_t structure.

Reported-by: Jonathan Herman &lt;hermanjl@cs.unc.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bugfix: avoid underflow in budget_remaining()</title>
<updated>2010-11-29T17:58:09+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-29T14:20:03+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=f07bb0a4549916107a7619d0bc4cb5dc09d5744a'/>
<id>f07bb0a4549916107a7619d0bc4cb5dc09d5744a</id>
<content type='text'>
budget_remaining() reports incorrect values due to the operands being
switched, which leads to an integer underflow.

Reported-by: Chris Kenna &lt;cjk@cs.unc.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
budget_remaining() reports incorrect values due to the operands being
switched, which leads to an integer underflow.

Reported-by: Chris Kenna &lt;cjk@cs.unc.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bugfix: fix out-of-bound array access in cedf_activate_plugin()</title>
<updated>2010-11-29T17:57:44+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-11-25T12:29:31+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=7b544c16beaa1f6ec70a72d53fe84cae95f70a41'/>
<id>7b544c16beaa1f6ec70a72d53fe84cae95f70a41</id>
<content type='text'>
Make sure to check for maximum index value when accessing cedf_domain_t
array in cedf_activate_plugin().

Reported-by: Jeremy Erickson &lt;jerickso@cs.unc.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make sure to check for maximum index value when accessing cedf_domain_t
array in cedf_activate_plugin().

Reported-by: Jeremy Erickson &lt;jerickso@cs.unc.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>add optional [function@file:line] tag to TRACE() log</title>
<updated>2010-11-22T20:12:40+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-22T06:25:19+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=2aad06b056054442964f46752bdb098030cdb866'/>
<id>2aad06b056054442964f46752bdb098030cdb866</id>
<content type='text'>
Add information to each trace message that makes it easier to locate
where it came from. It is disabled by default since this adds a lot of
clutter. Example:

  81281 P1 [gsnedf_schedule@litmus/sched_gsn_edf.c:406]: (rtspin/1483:1) blocks:0 out_of_time:0 np:0 sleep:1 preempt:0 state:0 sig:0
  81282 P1 [job_completion@litmus/sched_gsn_edf.c:303]: (rtspin/1483:1) job_completion().
  81283 P1 [__add_release@litmus/rt_domain.c:344]: (rtspin/1483:2) add_release(), rel=41941764351
  81284 P1 [gsnedf_schedule@litmus/sched_gsn_edf.c:453]: (rtspin/1483:2) scheduled_on = NO_CPU
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add information to each trace message that makes it easier to locate
where it came from. It is disabled by default since this adds a lot of
clutter. Example:

  81281 P1 [gsnedf_schedule@litmus/sched_gsn_edf.c:406]: (rtspin/1483:1) blocks:0 out_of_time:0 np:0 sleep:1 preempt:0 state:0 sig:0
  81282 P1 [job_completion@litmus/sched_gsn_edf.c:303]: (rtspin/1483:1) job_completion().
  81283 P1 [__add_release@litmus/rt_domain.c:344]: (rtspin/1483:2) add_release(), rel=41941764351
  81284 P1 [gsnedf_schedule@litmus/sched_gsn_edf.c:453]: (rtspin/1483:2) scheduled_on = NO_CPU
</pre>
</div>
</content>
</entry>
<entry>
<title>log job number in TRACE_TASK() and TRACE_CUR()</title>
<updated>2010-11-22T20:12:06+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-22T05:39:45+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=7779685f05219ff6e713ee6591644c080f51a8bf'/>
<id>7779685f05219ff6e713ee6591644c080f51a8bf</id>
<content type='text'>
For some problems it can be helpful to know which job of a task
generated a log message. This patch changes TRACE_TASK to add :&lt;jobno&gt;
to the existing (&lt;comm&gt;/&lt;pid&gt;) tag.

The result is a trace such as the following, in which the third job of
rtspin/1511 completes and the fourth job is added to the release
queue.

  137615 P0: (rtspin/1511:3) job_completion().
  137616 P0: (rtspin/1511:4) add_release(), rel=262013223089
  137617 P0: (rtspin/1511:4) scheduled_on = NO_CPU

The job number for non-real-time tasks is always zero.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For some problems it can be helpful to know which job of a task
generated a log message. This patch changes TRACE_TASK to add :&lt;jobno&gt;
to the existing (&lt;comm&gt;/&lt;pid&gt;) tag.

The result is a trace such as the following, in which the third job of
rtspin/1511 completes and the fourth job is added to the release
queue.

  137615 P0: (rtspin/1511:3) job_completion().
  137616 P0: (rtspin/1511:4) add_release(), rel=262013223089
  137617 P0: (rtspin/1511:4) scheduled_on = NO_CPU

The job number for non-real-time tasks is always zero.
</pre>
</div>
</content>
</entry>
<entry>
<title>Bugfix: synchronize with all other CPUs before switching plugin</title>
<updated>2010-11-20T23:15:14+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-11-19T11:52:08+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d40413efabc0ab388f6ed83f48b28dc253d47238'/>
<id>d40413efabc0ab388f6ed83f48b28dc253d47238</id>
<content type='text'>
The CPU triggering the plugin switch should wait until all other CPUs
are in a proper state (synch_on_plugin_switch()) before performing the
actual switch.

Based on the original patch from Jeremy Erickson &lt;jerickso@cs.unc.edu&gt;.

This should solve (for most practical cases) the C-EDF-related
plugin-switch problem reported on the ML.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The CPU triggering the plugin switch should wait until all other CPUs
are in a proper state (synch_on_plugin_switch()) before performing the
actual switch.

Based on the original patch from Jeremy Erickson &lt;jerickso@cs.unc.edu&gt;.

This should solve (for most practical cases) the C-EDF-related
plugin-switch problem reported on the ML.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve help message for TRACE() buffer</title>
<updated>2010-11-16T16:44:54+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-16T16:44:54+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=1726017e944d0086f14f867befbf5ebf07adc7dd'/>
<id>1726017e944d0086f14f867befbf5ebf07adc7dd</id>
<content type='text'>
It's not being allocated per cpu anymore. Further, provide a hint to
the user where to find the data in userspace.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's not being allocated per cpu anymore. Further, provide a hint to
the user where to find the data in userspace.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make TRACE() buffer size configurable</title>
<updated>2010-11-16T16:22:45+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-16T16:13:10+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d922f5eb1c375ab0445240110656c1d793eaad04'/>
<id>d922f5eb1c375ab0445240110656c1d793eaad04</id>
<content type='text'>
Let the user choose an appropriate buffer size (instead of scaling
with NR_CPUS).  The kfifo api requires the buffer to be a power of
two, so enforce this constraint in the configuration.

This fixes a previously-existing compile-time error for values of
NR_CPU that are not a power of two.

Based on a patch by Mac Mollison &lt;mollison@cs.unc.edu&gt;.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let the user choose an appropriate buffer size (instead of scaling
with NR_CPUS).  The kfifo api requires the buffer to be a power of
two, so enforce this constraint in the configuration.

This fixes a previously-existing compile-time error for values of
NR_CPU that are not a power of two.

Based on a patch by Mac Mollison &lt;mollison@cs.unc.edu&gt;.
</pre>
</div>
</content>
</entry>
<entry>
<title>Workaround: do not set rq-&gt;skip_clock_update</title>
<updated>2010-11-11T23:00:33+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-11T21:54:20+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=6fbc3b495cccf2e4ab7d4ab674b5c576e9946bed'/>
<id>6fbc3b495cccf2e4ab7d4ab674b5c576e9946bed</id>
<content type='text'>
Disabling the clock update seems to be causing problems even in normal
Linux, and causes major bugs under LITMUS^RT. As a workaround, just
disable this "optimization" for now.

Details: the idle load balancer causes tasks that suspsend to be
marked with set_tsk_need_resched(). When such a task resumes, it may
wrongly trigger the setting of skip_clock_update. However, a
corresponding rescheduling event may not happen immediately, such that
the currently-scheduled task is no longer charged for its execution
time.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Disabling the clock update seems to be causing problems even in normal
Linux, and causes major bugs under LITMUS^RT. As a workaround, just
disable this "optimization" for now.

Details: the idle load balancer causes tasks that suspsend to be
marked with set_tsk_need_resched(). When such a task resumes, it may
wrongly trigger the setting of skip_clock_update. However, a
corresponding rescheduling event may not happen immediately, such that
the currently-scheduled task is no longer charged for its execution
time.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove LITMUS^RT TRACE_BUG_ON macro</title>
<updated>2010-11-11T23:00:31+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-11T07:54:40+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=5a0df8d4e9a5da47c804d89426f06e08aa44426f'/>
<id>5a0df8d4e9a5da47c804d89426f06e08aa44426f</id>
<content type='text'>
Linux now has a macro of the same name, which causes namespace
collisions. Since our version is only being used in two places that
haven't triggered in several years, let's just remove it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Linux now has a macro of the same name, which causes namespace
collisions. Since our version is only being used in two places that
haven't triggered in several years, let's just remove it.
</pre>
</div>
</content>
</entry>
</feed>
