<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git/include, branch 2011.1</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>Feather-Trace: dynamic memory allocation and clean exit</title>
<updated>2011-01-13T00:29:48+00:00</updated>
<author>
<name>Christopher Kenna</name>
<email>cjk@cs.unc.edu</email>
</author>
<published>2011-01-10T00:33:49+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d11808b5c6b032de4284281ed2ff77ae697a4ebd'/>
<id>d11808b5c6b032de4284281ed2ff77ae697a4ebd</id>
<content type='text'>
This patch changes Feather-Trace to allocate memory for the minor
devices dynamically, which addresses a long-standing FIXME. It also
provides clean module exit and error conditions for Feather-Trace.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch changes Feather-Trace to allocate memory for the minor
devices dynamically, which addresses a long-standing FIXME. It also
provides clean module exit and error conditions for Feather-Trace.
</pre>
</div>
</content>
</entry>
<entry>
<title>Feather-Trace: register devices with sysfs</title>
<updated>2011-01-13T00:29:35+00:00</updated>
<author>
<name>Christopher Kenna</name>
<email>cjk@cs.unc.edu</email>
</author>
<published>2011-01-08T01:46:25+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=37eb46be881dde4b405d3d8b48e76b4a8d62ae2c'/>
<id>37eb46be881dde4b405d3d8b48e76b4a8d62ae2c</id>
<content type='text'>
This patch implements support for Feather-Trace devices to use the sysfs
file system and, consequently, udev support.

This allows us to allocate major/minor numbers for Feather-Trace
devices dynamically, which is desirable because our old static
allocations tend to create conflicts on modern distributions and/or
when there are many cores.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements support for Feather-Trace devices to use the sysfs
file system and, consequently, udev support.

This allows us to allocate major/minor numbers for Feather-Trace
devices dynamically, which is desirable because our old static
allocations tend to create conflicts on modern distributions and/or
when there are many cores.
</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>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>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>
<entry>
<title>Implement proper remote preemption support</title>
<updated>2010-11-11T22:57:44+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-10T17:10:49+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=fb3df2ec261d8cd6bcb8206d9d985355214d7767'/>
<id>fb3df2ec261d8cd6bcb8206d9d985355214d7767</id>
<content type='text'>
To date, Litmus has just hooked into the smp_send_reschedule() IPI
handler and marked tasks as having to reschedule to implement remote
preemptions. This was never particularly clean, but so far we got away
with it. However, changes in the underlying Linux, and peculartities
of the ARM code (interrupts enabled before context switch) break this
naive approach. This patch introduces new state-machine based remote
preemption support. By examining the local state before calling
set_tsk_need_resched(), we avoid confusing the underlying Linux
scheduler. Further, this patch avoids sending unncessary IPIs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To date, Litmus has just hooked into the smp_send_reschedule() IPI
handler and marked tasks as having to reschedule to implement remote
preemptions. This was never particularly clean, but so far we got away
with it. However, changes in the underlying Linux, and peculartities
of the ARM code (interrupts enabled before context switch) break this
naive approach. This patch introduces new state-machine based remote
preemption support. By examining the local state before calling
set_tsk_need_resched(), we avoid confusing the underlying Linux
scheduler. Further, this patch avoids sending unncessary IPIs.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split out TRACE() from litmus.h and cleanup some includes</title>
<updated>2010-11-11T22:57:42+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-08T20:02:09+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=34310fd7dbc3ad98d8e7cafa4f872ba71ca00860'/>
<id>34310fd7dbc3ad98d8e7cafa4f872ba71ca00860</id>
<content type='text'>
The TRACE() functionality doesn't need all of litmus.h. Currently,
it's impossible to use TRACE() in sched.h due to a circular
dependency. This patch moves TRACE() and friends to
litmus/sched_debug.h, which can be included in sched.h.

While at it, also fix some minor include ugliness that was revealed by
this change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The TRACE() functionality doesn't need all of litmus.h. Currently,
it's impossible to use TRACE() in sched.h due to a circular
dependency. This patch moves TRACE() and friends to
litmus/sched_debug.h, which can be included in sched.h.

While at it, also fix some minor include ugliness that was revealed by
this change.
</pre>
</div>
</content>
</entry>
<entry>
<title>C-EDF: move /proc/litmus/cluster_cache to /proc/litmus/plugins/C-EDF/cluster</title>
<updated>2010-11-11T22:57:35+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-10-23T02:47:09+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=52d5524f64b4f118672f5d80235221fe1c622c18'/>
<id>52d5524f64b4f118672f5d80235221fe1c622c18</id>
<content type='text'>
Make use of the new per-plugin proc file infrastructure to avoid
littering the global namespace. While at it, also move all the
relevant bits to sched_cedf.c. In the future, each plugin's parameters
should be handled in the respective plugin file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make use of the new per-plugin proc file infrastructure to avoid
littering the global namespace. While at it, also move all the
relevant bits to sched_cedf.c. In the future, each plugin's parameters
should be handled in the respective plugin file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Litmus core: refactor the implementation of /proc</title>
<updated>2010-10-23T05:35:14+00:00</updated>
<author>
<name>Christopher Kenna</name>
<email>cjk@cs.unc.edu</email>
</author>
<published>2010-10-23T01:04:34+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=e06e8374b5c04aeaddf14e9686842011f80f5664'/>
<id>e06e8374b5c04aeaddf14e9686842011f80f5664</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
