<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git/include, 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: 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>
<entry>
<title>Litmus core: per-plugin proc directories</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-22T21:26:38+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=98f56816fcb5c97e0afd21a6e242bb72d5b7a551'/>
<id>98f56816fcb5c97e0afd21a6e242bb72d5b7a551</id>
<content type='text'>
Change the Litmus proc layout so that loaded plugins are visible in
/proc/litmus/plugins/loaded and add Litmus functions make_plugin_proc_dir()
and remove_plugin_proc_dir() to add per-plugin proc directories.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change the Litmus proc layout so that loaded plugins are visible in
/proc/litmus/plugins/loaded and add Litmus functions make_plugin_proc_dir()
and remove_plugin_proc_dir() to add per-plugin proc directories.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge commit 'v2.6.36' into wip-merge-2.6.36</title>
<updated>2010-10-23T05:01:49+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-10-23T05:01:49+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=3dd41424090a0ca3a660218d06afe6ff4441bad3'/>
<id>3dd41424090a0ca3a660218d06afe6ff4441bad3</id>
<content type='text'>
Conflicts:
	Makefile
	arch/x86/include/asm/unistd_32.h
	arch/x86/kernel/syscall_table_32.S
	kernel/sched.c
	kernel/time/tick-sched.c

Relevant API and functions changes (solved in this commit):
- (API) .enqueue_task() (enqueue_task_litmus),
  dequeue_task() (dequeue_task_litmus),
  [litmus/sched_litmus.c]
- (API) .select_task_rq() (select_task_rq_litmus)
  [litmus/sched_litmus.c]
- (API) sysrq_dump_trace_buffer() and sysrq_handle_kill_rt_tasks()
  [litmus/sched_trace.c]
- struct kfifo internal buffer name changed (buffer -&gt; buf)
  [litmus/sched_trace.c]
- add_wait_queue_exclusive_locked -&gt; __add_wait_queue_tail_exclusive
  [litmus/fmlp.c]
- syscall numbers for both x86_32 and x86_64
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	Makefile
	arch/x86/include/asm/unistd_32.h
	arch/x86/kernel/syscall_table_32.S
	kernel/sched.c
	kernel/time/tick-sched.c

Relevant API and functions changes (solved in this commit):
- (API) .enqueue_task() (enqueue_task_litmus),
  dequeue_task() (dequeue_task_litmus),
  [litmus/sched_litmus.c]
- (API) .select_task_rq() (select_task_rq_litmus)
  [litmus/sched_litmus.c]
- (API) sysrq_dump_trace_buffer() and sysrq_handle_kill_rt_tasks()
  [litmus/sched_trace.c]
- struct kfifo internal buffer name changed (buffer -&gt; buf)
  [litmus/sched_trace.c]
- add_wait_queue_exclusive_locked -&gt; __add_wait_queue_tail_exclusive
  [litmus/fmlp.c]
- syscall numbers for both x86_32 and x86_64
</pre>
</div>
</content>
</entry>
</feed>
