<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/kernel/hrtimer.c, branch v3.2.14-rt24</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>hrtimer-fix-reprogram-madness.patch</title>
<updated>2012-04-10T21:37:01+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-09-14T12:48:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f18219fce0a05f4ee438907b6a8657dcea8b6cf2'/>
<id>f18219fce0a05f4ee438907b6a8657dcea8b6cf2</id>
<content type='text'>
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimer: Add missing debug_activate() aid [Was: Re: [ANNOUNCE] 3.0.6-rt17]</title>
<updated>2012-04-10T21:37:01+00:00</updated>
<author>
<name>Yong Zhang</name>
<email>yong.zhang0@gmail.com</email>
</author>
<published>2011-10-13T07:52:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=70d4716cc0f5a995ced59c7e433f3986f91c5627'/>
<id>70d4716cc0f5a995ced59c7e433f3986f91c5627</id>
<content type='text'>
On Fri, Oct 07, 2011 at 10:25:25AM -0700, Fernando Lopez-Lezcano wrote:
&gt; On 10/06/2011 06:15 PM, Thomas Gleixner wrote:
&gt; &gt;Dear RT Folks,
&gt; &gt;
&gt; &gt;I'm pleased to announce the 3.0.6-rt17 release.
&gt; 
&gt; Hi and thanks again. So far this one is not hanging which is very
&gt; good news. But I still see the hrtimer_fixup_activate warnings I
&gt; reported for rt16...

Hi Fernando,

I think below patch will smooth your concern?

Thanks,
Yong

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Fri, Oct 07, 2011 at 10:25:25AM -0700, Fernando Lopez-Lezcano wrote:
&gt; On 10/06/2011 06:15 PM, Thomas Gleixner wrote:
&gt; &gt;Dear RT Folks,
&gt; &gt;
&gt; &gt;I'm pleased to announce the 3.0.6-rt17 release.
&gt; 
&gt; Hi and thanks again. So far this one is not hanging which is very
&gt; good news. But I still see the hrtimer_fixup_activate warnings I
&gt; reported for rt16...

Hi Fernando,

I think below patch will smooth your concern?

Thanks,
Yong

</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimer: Don't call the timer handler from hrtimer_start</title>
<updated>2012-04-10T21:37:01+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2011-08-12T15:39:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fdd1894735958d42c52c23a801b4bcc6433924c0'/>
<id>fdd1894735958d42c52c23a801b4bcc6433924c0</id>
<content type='text'>
 [&lt;ffffffff812de4a9&gt;] __delay+0xf/0x11
 [&lt;ffffffff812e36e9&gt;] do_raw_spin_lock+0xd2/0x13c
 [&lt;ffffffff815028ee&gt;] _raw_spin_lock+0x60/0x73              rt_b-&gt;rt_runtime_lock
 [&lt;ffffffff81068f68&gt;] ? sched_rt_period_timer+0xad/0x281
 [&lt;ffffffff81068f68&gt;] sched_rt_period_timer+0xad/0x281
 [&lt;ffffffff8109e5e1&gt;] __run_hrtimer+0x1e4/0x347
 [&lt;ffffffff81068ebb&gt;] ? enqueue_rt_entity+0x36/0x36
 [&lt;ffffffff8109f2b1&gt;] __hrtimer_start_range_ns+0x2b5/0x40a  base-&gt;cpu_base-&gt;lock  (lock_hrtimer_base)
 [&lt;ffffffff81068b6f&gt;] __enqueue_rt_entity+0x26f/0x2aa       rt_b-&gt;rt_runtime_lock (start_rt_bandwidth)
 [&lt;ffffffff81068ead&gt;] enqueue_rt_entity+0x28/0x36
 [&lt;ffffffff81069355&gt;] enqueue_task_rt+0x3d/0xb0
 [&lt;ffffffff810679d6&gt;] enqueue_task+0x5d/0x64
 [&lt;ffffffff810714fc&gt;] task_setprio+0x210/0x29c              rq-&gt;lock
 [&lt;ffffffff810b56cb&gt;] __rt_mutex_adjust_prio+0x25/0x2a      p-&gt;pi_lock
 [&lt;ffffffff810b5d2c&gt;] task_blocks_on_rt_mutex+0x196/0x20f

Instead make __hrtimer_start_range_ns() return -ETIME when the timer
is in the past. Since body actually uses the hrtimer_start*() return
value its pretty safe to wreck it.

Also, it will only ever return -ETIME for timer-&gt;irqsafe || !wakeup
timers.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 [&lt;ffffffff812de4a9&gt;] __delay+0xf/0x11
 [&lt;ffffffff812e36e9&gt;] do_raw_spin_lock+0xd2/0x13c
 [&lt;ffffffff815028ee&gt;] _raw_spin_lock+0x60/0x73              rt_b-&gt;rt_runtime_lock
 [&lt;ffffffff81068f68&gt;] ? sched_rt_period_timer+0xad/0x281
 [&lt;ffffffff81068f68&gt;] sched_rt_period_timer+0xad/0x281
 [&lt;ffffffff8109e5e1&gt;] __run_hrtimer+0x1e4/0x347
 [&lt;ffffffff81068ebb&gt;] ? enqueue_rt_entity+0x36/0x36
 [&lt;ffffffff8109f2b1&gt;] __hrtimer_start_range_ns+0x2b5/0x40a  base-&gt;cpu_base-&gt;lock  (lock_hrtimer_base)
 [&lt;ffffffff81068b6f&gt;] __enqueue_rt_entity+0x26f/0x2aa       rt_b-&gt;rt_runtime_lock (start_rt_bandwidth)
 [&lt;ffffffff81068ead&gt;] enqueue_rt_entity+0x28/0x36
 [&lt;ffffffff81069355&gt;] enqueue_task_rt+0x3d/0xb0
 [&lt;ffffffff810679d6&gt;] enqueue_task+0x5d/0x64
 [&lt;ffffffff810714fc&gt;] task_setprio+0x210/0x29c              rq-&gt;lock
 [&lt;ffffffff810b56cb&gt;] __rt_mutex_adjust_prio+0x25/0x2a      p-&gt;pi_lock
 [&lt;ffffffff810b5d2c&gt;] task_blocks_on_rt_mutex+0x196/0x20f

Instead make __hrtimer_start_range_ns() return -ETIME when the timer
is in the past. Since body actually uses the hrtimer_start*() return
value its pretty safe to wreck it.

Also, it will only ever return -ETIME for timer-&gt;irqsafe || !wakeup
timers.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimer: fixup hrtimer callback changes for preempt-rt</title>
<updated>2012-04-10T21:37:01+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2009-07-03T13:44:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=37f63fe0906f6ca1115c4e07c551529ae671db5a'/>
<id>37f63fe0906f6ca1115c4e07c551529ae671db5a</id>
<content type='text'>
In preempt-rt we can not call the callbacks which take sleeping locks
from the timer interrupt context.

Bring back the softirq split for now, until we fixed the signal
delivery problem for real.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In preempt-rt we can not call the callbacks which take sleeping locks
from the timer interrupt context.

Bring back the softirq split for now, until we fixed the signal
delivery problem for real.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimers: prepare full preemption</title>
<updated>2012-04-10T21:37:00+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2009-07-03T13:29:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=71f1ef7372ac41975d70d50ccecebd65a4e84892'/>
<id>71f1ef7372ac41975d70d50ccecebd65a4e84892</id>
<content type='text'>
Make cancellation of a running callback in softirq context safe
against preemption.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make cancellation of a running callback in softirq context safe
against preemption.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>latency-hist.patch</title>
<updated>2012-04-10T21:36:42+00:00</updated>
<author>
<name>Carsten Emde</name>
<email>C.Emde@osadl.org</email>
</author>
<published>2011-07-19T13:03:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9e8d6c7a20b71c2541cac9d5c5274d9ff3d776ff'/>
<id>9e8d6c7a20b71c2541cac9d5c5274d9ff3d776ff</id>
<content type='text'>
This patch provides a recording mechanism to store data of potential
sources of system latencies. The recordings separately determine the
latency caused by a delayed timer expiration, by a delayed wakeup of the
related user space program and by the sum of both. The histograms can be
enabled and reset individually. The data are accessible via the debug
filesystem. For details please consult Documentation/trace/histograms.txt.

Signed-off-by: Carsten Emde &lt;C.Emde@osadl.org&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch provides a recording mechanism to store data of potential
sources of system latencies. The recordings separately determine the
latency caused by a delayed timer expiration, by a delayed wakeup of the
related user space program and by the sum of both. The histograms can be
enabled and reset individually. The data are accessible via the debug
filesystem. For details please consult Documentation/trace/histograms.txt.

Signed-off-by: Carsten Emde &lt;C.Emde@osadl.org&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2011-11-28T16:43:52+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-11-28T16:43:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c28800a9c3caaf387d85ac665a25ebe99e480295'/>
<id>c28800a9c3caaf387d85ac665a25ebe99e480295</id>
<content type='text'>
* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  hrtimer: Fix extra wakeups from __remove_hrtimer()
  timekeeping: add arch_offset hook to ktime_get functions
  clocksource: Avoid selecting mult values that might overflow when adjusted
  time: Improve documentation of timekeeeping_adjust()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  hrtimer: Fix extra wakeups from __remove_hrtimer()
  timekeeping: add arch_offset hook to ktime_get functions
  clocksource: Avoid selecting mult values that might overflow when adjusted
  time: Improve documentation of timekeeeping_adjust()
</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimer: Fix extra wakeups from __remove_hrtimer()</title>
<updated>2011-11-19T11:17:37+00:00</updated>
<author>
<name>Jeff Ohlstein</name>
<email>johlstei@codeaurora.org</email>
</author>
<published>2011-11-18T23:47:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=27c9cd7e601632b3794e1c3344d37b86917ffb43'/>
<id>27c9cd7e601632b3794e1c3344d37b86917ffb43</id>
<content type='text'>
__remove_hrtimer() attempts to reprogram the clockevent device when
the timer being removed is the next to expire. However,
__remove_hrtimer() reprograms the clockevent *before* removing the
timer from the timerqueue and thus when hrtimer_force_reprogram()
finds the next timer to expire it finds the timer we're trying to
remove.

This is especially noticeable when the system switches to NOHz mode
and the system tick is removed. The timer tick is removed from the
system but the clockevent is programmed to wakeup in another HZ
anyway.

Silence the extra wakeup by removing the timer from the timerqueue
before calling hrtimer_force_reprogram() so that we actually program
the clockevent for the next timer to expire.

This was broken by 998adc3 "hrtimers: Convert hrtimers to use
timerlist infrastructure".

Signed-off-by: Jeff Ohlstein &lt;johlstei@codeaurora.org&gt;
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1321660030-8520-1-git-send-email-johlstei@codeaurora.org
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
__remove_hrtimer() attempts to reprogram the clockevent device when
the timer being removed is the next to expire. However,
__remove_hrtimer() reprograms the clockevent *before* removing the
timer from the timerqueue and thus when hrtimer_force_reprogram()
finds the next timer to expire it finds the timer we're trying to
remove.

This is especially noticeable when the system switches to NOHz mode
and the system tick is removed. The timer tick is removed from the
system but the clockevent is programmed to wakeup in another HZ
anyway.

Silence the extra wakeup by removing the timer from the timerqueue
before calling hrtimer_force_reprogram() so that we actually program
the clockevent for the next timer to expire.

This was broken by 998adc3 "hrtimers: Convert hrtimers to use
timerlist infrastructure".

Signed-off-by: Jeff Ohlstein &lt;johlstei@codeaurora.org&gt;
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1321660030-8520-1-git-send-email-johlstei@codeaurora.org
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kernel: Map most files to use export.h instead of module.h</title>
<updated>2011-10-31T13:20:12+00:00</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-05-23T18:51:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9984de1a5a8a96275fcab818f7419af5a3c86e71'/>
<id>9984de1a5a8a96275fcab818f7419af5a3c86e71</id>
<content type='text'>
The changed files were only including linux/module.h for the
EXPORT_SYMBOL infrastructure, and nothing else.  Revector them
onto the isolated export header for faster compile times.

Nothing to see here but a whole lot of instances of:

  -#include &lt;linux/module.h&gt;
  +#include &lt;linux/export.h&gt;

This commit is only changing the kernel dir; next targets
will probably be mm, fs, the arch dirs, etc.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The changed files were only including linux/module.h for the
EXPORT_SYMBOL infrastructure, and nothing else.  Revector them
onto the isolated export header for faster compile times.

Nothing to see here but a whole lot of instances of:

  -#include &lt;linux/module.h&gt;
  +#include &lt;linux/export.h&gt;

This commit is only changing the kernel dir; next targets
will probably be mm, fs, the arch dirs, etc.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimers: Fix typo causing erratic timers</title>
<updated>2011-05-25T22:31:58+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-05-25T21:08:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=90ff1f30c0f401e325d6b2747618b7e3a0addaf8'/>
<id>90ff1f30c0f401e325d6b2747618b7e3a0addaf8</id>
<content type='text'>
commit 9ec2690758a5 ("timerfd: Manage cancelable timers in timerfd")
introduced a CONFIG_HIGHRES_TIMERS (should be CONFIG_HIGH_RES_TIMERS)
typo, which caused applications depending on CLOCK_REALTIME timers to
become sluggy due to the fact that the time base of the realtime
timers was not updated when the wall clock time was set.

This causes anything from 100% CPU use for some applications to odd
delays and hickups.

Reported-bisected-and-tested-by: Anca Emanuel &lt;anca.emanuel@gmail.com&gt;
Tested-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Fatfingered-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&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>
commit 9ec2690758a5 ("timerfd: Manage cancelable timers in timerfd")
introduced a CONFIG_HIGHRES_TIMERS (should be CONFIG_HIGH_RES_TIMERS)
typo, which caused applications depending on CLOCK_REALTIME timers to
become sluggy due to the fact that the time base of the realtime
timers was not updated when the wall clock time was set.

This causes anything from 100% CPU use for some applications to odd
delays and hickups.

Reported-bisected-and-tested-by: Anca Emanuel &lt;anca.emanuel@gmail.com&gt;
Tested-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Fatfingered-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
