<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git/kernel, branch wip-kernthreads</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>Extract NVIDIA device number (GPU #) from NVIDIA tasklet data.  Also</title>
<updated>2011-02-27T01:00:15+00:00</updated>
<author>
<name>Glenn Elliott</name>
<email>gelliott@cs.unc.edu</email>
</author>
<published>2011-02-27T01:00:15+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=0e6a634b0b02a86c9591c1bf8c73ff0cf68475fc'/>
<id>0e6a634b0b02a86c9591c1bf8c73ff0cf68475fc</id>
<content type='text'>
added support to fully thread all softirqs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
added support to fully thread all softirqs.
</pre>
</div>
</content>
</entry>
<entry>
<title>First working version of klitirqd.</title>
<updated>2011-02-13T01:42:53+00:00</updated>
<author>
<name>Glenn Elliott</name>
<email>gelliott@cs.unc.edu</email>
</author>
<published>2011-02-13T01:42:53+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=08b72aceacca166015d518738f9e300546b969ef'/>
<id>08b72aceacca166015d518738f9e300546b969ef</id>
<content type='text'>
Tasklets can be scheduled to klitirqd daemons when provided
a real-time task "owner".  A klitirqd kernel thread will
assume the priority of the owner and will execute the
provided tasklet when the kernel thread is scheduled
by Litmus.

See litmus_softirq.h for interface and limitations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tasklets can be scheduled to klitirqd daemons when provided
a real-time task "owner".  A klitirqd kernel thread will
assume the priority of the owner and will execute the
provided tasklet when the kernel thread is scheduled
by Litmus.

See litmus_softirq.h for interface and limitations.
</pre>
</div>
</content>
</entry>
<entry>
<title>Litmus core: replace FMLP &amp; SRP system calls with generic syscalls</title>
<updated>2011-02-01T21:30:39+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2011-01-28T21:41:16+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=cc602187d4466374bca031039e145aa1b89aca96'/>
<id>cc602187d4466374bca031039e145aa1b89aca96</id>
<content type='text'>
This renders the FMLP and SRP unfunctional until they are ported to
the new locking API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This renders the FMLP and SRP unfunctional until they are ported to
the new locking API.
</pre>
</div>
</content>
</entry>
<entry>
<title>bugfix: don't let children stay Litmus real-time tasks</title>
<updated>2011-01-30T19:31:56+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2011-01-30T01:31:57+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=904531a6321964579ab0972a8833616e97dbf582'/>
<id>904531a6321964579ab0972a8833616e97dbf582</id>
<content type='text'>
It has always been LITMUS^RT policy that children of real-time tasks
may not skip the admissions test, etc. This used to be enforced, but
was apparently dropped during some port. This commit re-introduces
this policy.  This fixes a kernel panic that occurred when "real-time
children" exited without proper initilization.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It has always been LITMUS^RT policy that children of real-time tasks
may not skip the admissions test, etc. This used to be enforced, but
was apparently dropped during some port. This commit re-introduces
this policy.  This fixes a kernel panic that occurred when "real-time
children" exited without proper initilization.
</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>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>hook litmus tick function into hrtimer-driven ticks</title>
<updated>2010-11-11T22:57:43+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-11-09T01:21:35+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=516b6601bb5f71035e8859735a25dea0da4a0211'/>
<id>516b6601bb5f71035e8859735a25dea0da4a0211</id>
<content type='text'>
Litmus plugins should also be activated if ticks are triggered by
hrtimer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Litmus plugins should also be activated if ticks are triggered by
hrtimer.
</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>
<entry>
<title>hrtimer: add init function to properly set hrtimer_start_on_info params</title>
<updated>2010-10-19T13:40:38+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-09-28T15:08:17+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=bd6d5f1dd586a27c2082ad4d95ee58913b471f5c'/>
<id>bd6d5f1dd586a27c2082ad4d95ee58913b471f5c</id>
<content type='text'>
This helper function is also useful to remind us that if we use
hrtimer_pull outside the scope of triggering remote releases, we need to
take care of properly set the "state" field of hrtimer_start_on_info
structure.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This helper function is also useful to remind us that if we use
hrtimer_pull outside the scope of triggering remote releases, we need to
take care of properly set the "state" field of hrtimer_start_on_info
structure.
</pre>
</div>
</content>
</entry>
<entry>
<title>sysctl: min/max bounds are optional</title>
<updated>2010-10-15T21:42:24+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2010-10-15T21:34:12+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=a9febbb4bd1302b6f01aa1203b0a804e4e5c9e25'/>
<id>a9febbb4bd1302b6f01aa1203b0a804e4e5c9e25</id>
<content type='text'>
sysctl check complains with a WARN() when proc_doulongvec_minmax() or
proc_doulongvec_ms_jiffies_minmax() are used by a vector of longs (with
more than one element), with no min or max value specified.

This is unexpected, given we had a bug on this min/max handling :)

Reported-by: Jiri Slaby &lt;jirislaby@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
sysctl check complains with a WARN() when proc_doulongvec_minmax() or
proc_doulongvec_ms_jiffies_minmax() are used by a vector of longs (with
more than one element), with no min or max value specified.

This is unexpected, given we had a bug on this min/max handling :)

Reported-by: Jiri Slaby &lt;jirislaby@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
