<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git/kernel, branch 2010.2</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>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>Make smp_send_pull_timers() optional.</title>
<updated>2010-06-01T14:23:14+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-05-30T23:50:52+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=8bf9de45b663e4b9ce889eb24929ce773f306339'/>
<id>8bf9de45b663e4b9ce889eb24929ce773f306339</id>
<content type='text'>
There is currently no need to implement this in ARM.
So let's make it optional instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is currently no need to implement this in ARM.
So let's make it optional instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>Change most LitmusRT spinlock_t in raw_spinlock_t</title>
<updated>2010-05-30T03:57:07+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-05-30T03:45:13+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=a66246f9e973a68fb9955a2fa7663a2e02afbd30'/>
<id>a66246f9e973a68fb9955a2fa7663a2e02afbd30</id>
<content type='text'>
Adapt to new schema for spinlock:
(tglx 20091217)
spinlock - the weakest one, which might sleep in RT
raw_spinlock - spinlock which always spins even on RT
arch_spinlock - the hardware level architecture dependent implementation

----

Most probably, all the spinlocks changed by this commit will be true
spinning lock (raw_spinlock) in PreemptRT (so hopefully we'll need few
changes when porting Litmmus to PreemptRT).

There are a couple of spinlock that the kernel still defines as
spinlock_t (therefore no changes reported in this commit) that might cause
us troubles:

- wait_queue_t lock is defined as spinlock_t; it is used in:
  * fmlp.c -- sem-&gt;wait.lock
  * sync.c -- ts_release.wait.lock

- rwlock_t used in fifo implementation in sched_trace.c
  * this need probably to be changed to something always spinning in RT
    at the expense of increased locking time.

----

This commit also fixes warnings and errors due to the need to include
slab.h when using kmalloc() and friends.

----

This commit does not compile.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adapt to new schema for spinlock:
(tglx 20091217)
spinlock - the weakest one, which might sleep in RT
raw_spinlock - spinlock which always spins even on RT
arch_spinlock - the hardware level architecture dependent implementation

----

Most probably, all the spinlocks changed by this commit will be true
spinning lock (raw_spinlock) in PreemptRT (so hopefully we'll need few
changes when porting Litmmus to PreemptRT).

There are a couple of spinlock that the kernel still defines as
spinlock_t (therefore no changes reported in this commit) that might cause
us troubles:

- wait_queue_t lock is defined as spinlock_t; it is used in:
  * fmlp.c -- sem-&gt;wait.lock
  * sync.c -- ts_release.wait.lock

- rwlock_t used in fifo implementation in sched_trace.c
  * this need probably to be changed to something always spinning in RT
    at the expense of increased locking time.

----

This commit also fixes warnings and errors due to the need to include
slab.h when using kmalloc() and friends.

----

This commit does not compile.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' into wip-merge-2.6.34</title>
<updated>2010-05-30T03:35:01+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-05-30T03:35:01+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=6ffc1fee98c4b995eb3a0285f4f8fb467cb0306e'/>
<id>6ffc1fee98c4b995eb3a0285f4f8fb467cb0306e</id>
<content type='text'>
Simple merge between master and 2.6.34 with conflicts resolved.

This commit does not compile, the following main problems are still
unresolved:

- spinlock -&gt; raw_spinlock API changes
- kfifo API changes
- sched_class API changes

Conflicts:
	Makefile
	arch/x86/include/asm/hw_irq.h
	arch/x86/include/asm/unistd_32.h
	arch/x86/kernel/syscall_table_32.S
	include/linux/hrtimer.h
	kernel/sched.c
	kernel/sched_fair.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Simple merge between master and 2.6.34 with conflicts resolved.

This commit does not compile, the following main problems are still
unresolved:

- spinlock -&gt; raw_spinlock API changes
- kfifo API changes
- sched_class API changes

Conflicts:
	Makefile
	arch/x86/include/asm/hw_irq.h
	arch/x86/include/asm/unistd_32.h
	arch/x86/kernel/syscall_table_32.S
	include/linux/hrtimer.h
	kernel/sched.c
	kernel/sched_fair.c
</pre>
</div>
</content>
</entry>
<entry>
<title>Measure timer re-arming in the proper location</title>
<updated>2010-05-29T21:35:03+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-04-26T17:42:00+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=8fe2fb8bb1c1cd0194608bc783d0ce7029e8d869'/>
<id>8fe2fb8bb1c1cd0194608bc783d0ce7029e8d869</id>
<content type='text'>
hrtimers are properly rearmed during arm_release_timer() and no longer
after rescheduling (with the norqlock mechanism of 2008.3). This commit
accordingly updates the locations where measures are taken.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
hrtimers are properly rearmed during arm_release_timer() and no longer
after rescheduling (with the norqlock mechanism of 2008.3). This commit
accordingly updates the locations where measures are taken.
</pre>
</div>
</content>
</entry>
<entry>
<title>Bugfix: clear LITMUS^RT state on fork completely</title>
<updated>2010-05-29T21:25:50+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-01-30T00:25:26+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=5e987d486c0f89d615d134512938fc1198b3ca67'/>
<id>5e987d486c0f89d615d134512938fc1198b3ca67</id>
<content type='text'>
When a real-time task forks, then its LITMUS^RT-specific fields should be cleared,
because we don't want real-time tasks to spawn new real-time tasks that bypass
the plugin's admission control (if any).

This was broken in three ways:
1) kernel/fork.c did not erase all of tsk-&gt;rt_param, only the first few bytes due to
   a wrong size argument to memset().
2) It should have been calling litmus_fork() instead anyway.
3) litmus_fork() was _also_ not clearing all of tsk-&gt;rt_param, due to another size
   argument bug.

Interestingly, 1) and 2) can be traced back to the 2007-&gt;2008 port,
whereas 3) was added by Mitchell much later on (to dead code, no less).

I'm really surprised that this never blew up before.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a real-time task forks, then its LITMUS^RT-specific fields should be cleared,
because we don't want real-time tasks to spawn new real-time tasks that bypass
the plugin's admission control (if any).

This was broken in three ways:
1) kernel/fork.c did not erase all of tsk-&gt;rt_param, only the first few bytes due to
   a wrong size argument to memset().
2) It should have been calling litmus_fork() instead anyway.
3) litmus_fork() was _also_ not clearing all of tsk-&gt;rt_param, due to another size
   argument bug.

Interestingly, 1) and 2) can be traced back to the 2007-&gt;2008 port,
whereas 3) was added by Mitchell much later on (to dead code, no less).

I'm really surprised that this never blew up before.
</pre>
</div>
</content>
</entry>
<entry>
<title>Better explanation of jump-to-CFS optimization removal</title>
<updated>2010-05-29T21:21:31+00:00</updated>
<author>
<name>Bjoern B. Brandenburg</name>
<email>bbb@cs.unc.edu</email>
</author>
<published>2010-05-28T14:30:29+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=a084c01569bcfe13fd880a0b1e3a9026629a89da'/>
<id>a084c01569bcfe13fd880a0b1e3a9026629a89da</id>
<content type='text'>
GSN-EDF and friends rely on being called even if there is currently
no runnable real-time task on the runqueue for (at least) two reasons:
1) To initiate migrations. LITMUS^RT pull tasks for migrations; this requires
     plugins to be called even if no task is currently present.
2) To maintain invariants when jobs block.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GSN-EDF and friends rely on being called even if there is currently
no runnable real-time task on the runqueue for (at least) two reasons:
1) To initiate migrations. LITMUS^RT pull tasks for migrations; this requires
     plugins to be called even if no task is currently present.
2) To maintain invariants when jobs block.
</pre>
</div>
</content>
</entry>
<entry>
<title>Integrate litmus_tick() in task_tick_litmus()</title>
<updated>2010-05-29T21:21:11+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2010-05-28T14:25:34+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=e68debebdc2983600063cd6b04c6a51c4b7ddcc1'/>
<id>e68debebdc2983600063cd6b04c6a51c4b7ddcc1</id>
<content type='text'>
- remove the call to litmus_tick() from scheduler_tick() just after
  having performed the class task_tick() and integrate
  litmus_tick() in task_tick_litmus()

- task_tick_litmus() is the handler for the litmus class task_tick()
  method. It is called in non-queued mode from scheduler_tick()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- remove the call to litmus_tick() from scheduler_tick() just after
  having performed the class task_tick() and integrate
  litmus_tick() in task_tick_litmus()

- task_tick_litmus() is the handler for the litmus class task_tick()
  method. It is called in non-queued mode from scheduler_tick()
</pre>
</div>
</content>
</entry>
<entry>
<title>[ported from 2008.3] Add release-master support</title>
<updated>2010-05-29T21:19:53+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2009-12-18T02:47:19+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=0b28a3122d6917784701377e15a863489aee1c6c'/>
<id>0b28a3122d6917784701377e15a863489aee1c6c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ported from 2008.3] Add hrtimer_start_on() API</title>
<updated>2010-05-29T21:19:45+00:00</updated>
<author>
<name>Andrea Bastoni</name>
<email>bastoni@cs.unc.edu</email>
</author>
<published>2009-12-18T02:45:38+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=c15be843778236e9f2fdbc207ab36ba996b2bb1b'/>
<id>c15be843778236e9f2fdbc207ab36ba996b2bb1b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
