<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/kernel/hrtimer.c, branch v2.6.28.9</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>System call wrappers part 01</title>
<updated>2009-01-18T18:43:53+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-01-14T13:14:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cf7cd8917842df333b70e6ee963662a38fbc78bd'/>
<id>cf7cd8917842df333b70e6ee963662a38fbc78bd</id>
<content type='text'>
commit 58fd3aa288939d3097fa04505b25c2f5e6e144d1 upstream.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 58fd3aa288939d3097fa04505b25c2f5e6e144d1 upstream.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimer: clean up unused callback modes</title>
<updated>2008-11-12T08:54:40+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2008-11-12T08:36:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=621a0d5207c18012cb39932f2d9830a11a6cb03d'/>
<id>621a0d5207c18012cb39932f2d9830a11a6cb03d</id>
<content type='text'>
Impact: cleanup

git grep HRTIMER_CB_IRQSAFE revealed half the callback modes are actually
unused.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Impact: cleanup

git grep HRTIMER_CB_IRQSAFE revealed half the callback modes are actually
unused.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context</title>
<updated>2008-11-11T09:46:42+00:00</updated>
<author>
<name>Gautham R Shenoy</name>
<email>ego@in.ibm.com</email>
</author>
<published>2008-10-25T04:52:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5d5254f0d3b9bebc47d97e357374c0ad0c291a7d'/>
<id>5d5254f0d3b9bebc47d97e357374c0ad0c291a7d</id>
<content type='text'>
Impact: fix incorrect locking triggered during hotplug-intense stress-tests

While migrating the the CB_IRQSAFE_UNLOCKED timers during a cpu-offline,
we queue them on the cb_pending list, so that they won't go
stale.

Thus, when the callbacks of the timers run from the softirq context,
they could run into potential deadlocks, since these callbacks
assume that they're running with irq's disabled, thereby annoying
lockdep!

Fix this by emulating hardirq context while running these callbacks from
the hrtimer softirq.

=================================
[ INFO: inconsistent lock state ]
2.6.27 #2
--------------------------------
inconsistent {in-hardirq-W} -&gt; {hardirq-on-W} usage.
ksoftirqd/0/4 [HC0[0]:SC1[1]:HE1:SE0] takes:
 (&amp;rq-&gt;lock){++..}, at: [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
{in-hardirq-W} state was registered at:
  [&lt;c014103c&gt;] __lock_acquire+0x549/0x121e
  [&lt;c0107890&gt;] native_sched_clock+0x88/0x99
  [&lt;c013aa12&gt;] clocksource_get_next+0x39/0x3f
  [&lt;c0139abc&gt;] update_wall_time+0x616/0x7df
  [&lt;c0141d6b&gt;] lock_acquire+0x5a/0x74
  [&lt;c0121724&gt;] scheduler_tick+0x3a/0x18d
  [&lt;c047ed45&gt;] _spin_lock+0x1c/0x45
  [&lt;c0121724&gt;] scheduler_tick+0x3a/0x18d
  [&lt;c0121724&gt;] scheduler_tick+0x3a/0x18d
  [&lt;c012c436&gt;] update_process_times+0x3a/0x44
  [&lt;c013c044&gt;] tick_periodic+0x63/0x6d
  [&lt;c013c062&gt;] tick_handle_periodic+0x14/0x5e
  [&lt;c010568c&gt;] timer_interrupt+0x44/0x4a
  [&lt;c0150c9f&gt;] handle_IRQ_event+0x13/0x3d
  [&lt;c0151c14&gt;] handle_level_irq+0x79/0xbd
  [&lt;c0105634&gt;] do_IRQ+0x69/0x7d
  [&lt;c01041e4&gt;] common_interrupt+0x28/0x30
  [&lt;c047007b&gt;] aac_probe_one+0x1a3/0x3f3
  [&lt;c047ec2d&gt;] _spin_unlock_irqrestore+0x36/0x39
  [&lt;c01512b4&gt;] setup_irq+0x1be/0x1f9
  [&lt;c065d70b&gt;] start_kernel+0x259/0x2c5
  [&lt;ffffffff&gt;] 0xffffffff
irq event stamp: 50102
hardirqs last  enabled at (50102): [&lt;c047ebf4&gt;] _spin_unlock_irq+0x20/0x23
hardirqs last disabled at (50101): [&lt;c047edc2&gt;] _spin_lock_irq+0xa/0x4b
softirqs last  enabled at (50088): [&lt;c0128ba6&gt;] do_softirq+0x37/0x4d
softirqs last disabled at (50099): [&lt;c0128ba6&gt;] do_softirq+0x37/0x4d

other info that might help us debug this:
no locks held by ksoftirqd/0/4.

stack backtrace:
Pid: 4, comm: ksoftirqd/0 Not tainted 2.6.27 #2
 [&lt;c013f6cb&gt;] print_usage_bug+0x13e/0x147
 [&lt;c013fef5&gt;] mark_lock+0x493/0x797
 [&lt;c01410b1&gt;] __lock_acquire+0x5be/0x121e
 [&lt;c0141d6b&gt;] lock_acquire+0x5a/0x74
 [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
 [&lt;c047ed45&gt;] _spin_lock+0x1c/0x45
 [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
 [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
 [&lt;c01210fd&gt;] finish_task_switch+0x41/0xbd
 [&lt;c0107890&gt;] native_sched_clock+0x88/0x99
 [&lt;c011dae6&gt;] sched_rt_period_timer+0x0/0x1fc
 [&lt;c0136dda&gt;] run_hrtimer_pending+0x54/0xe5
 [&lt;c011dae6&gt;] sched_rt_period_timer+0x0/0x1fc
 [&lt;c0128afb&gt;] __do_softirq+0x7b/0xef
 [&lt;c0128ba6&gt;] do_softirq+0x37/0x4d
 [&lt;c0128c12&gt;] ksoftirqd+0x56/0xc5
 [&lt;c0128bbc&gt;] ksoftirqd+0x0/0xc5
 [&lt;c0134649&gt;] kthread+0x38/0x5d
 [&lt;c0134611&gt;] kthread+0x0/0x5d
 [&lt;c0104477&gt;] kernel_thread_helper+0x7/0x10
 =======================

Signed-off-by: Gautham R Shenoy &lt;ego@in.ibm.com&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Acked-by: "Paul E. McKenney" &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Impact: fix incorrect locking triggered during hotplug-intense stress-tests

While migrating the the CB_IRQSAFE_UNLOCKED timers during a cpu-offline,
we queue them on the cb_pending list, so that they won't go
stale.

Thus, when the callbacks of the timers run from the softirq context,
they could run into potential deadlocks, since these callbacks
assume that they're running with irq's disabled, thereby annoying
lockdep!

Fix this by emulating hardirq context while running these callbacks from
the hrtimer softirq.

=================================
[ INFO: inconsistent lock state ]
2.6.27 #2
--------------------------------
inconsistent {in-hardirq-W} -&gt; {hardirq-on-W} usage.
ksoftirqd/0/4 [HC0[0]:SC1[1]:HE1:SE0] takes:
 (&amp;rq-&gt;lock){++..}, at: [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
{in-hardirq-W} state was registered at:
  [&lt;c014103c&gt;] __lock_acquire+0x549/0x121e
  [&lt;c0107890&gt;] native_sched_clock+0x88/0x99
  [&lt;c013aa12&gt;] clocksource_get_next+0x39/0x3f
  [&lt;c0139abc&gt;] update_wall_time+0x616/0x7df
  [&lt;c0141d6b&gt;] lock_acquire+0x5a/0x74
  [&lt;c0121724&gt;] scheduler_tick+0x3a/0x18d
  [&lt;c047ed45&gt;] _spin_lock+0x1c/0x45
  [&lt;c0121724&gt;] scheduler_tick+0x3a/0x18d
  [&lt;c0121724&gt;] scheduler_tick+0x3a/0x18d
  [&lt;c012c436&gt;] update_process_times+0x3a/0x44
  [&lt;c013c044&gt;] tick_periodic+0x63/0x6d
  [&lt;c013c062&gt;] tick_handle_periodic+0x14/0x5e
  [&lt;c010568c&gt;] timer_interrupt+0x44/0x4a
  [&lt;c0150c9f&gt;] handle_IRQ_event+0x13/0x3d
  [&lt;c0151c14&gt;] handle_level_irq+0x79/0xbd
  [&lt;c0105634&gt;] do_IRQ+0x69/0x7d
  [&lt;c01041e4&gt;] common_interrupt+0x28/0x30
  [&lt;c047007b&gt;] aac_probe_one+0x1a3/0x3f3
  [&lt;c047ec2d&gt;] _spin_unlock_irqrestore+0x36/0x39
  [&lt;c01512b4&gt;] setup_irq+0x1be/0x1f9
  [&lt;c065d70b&gt;] start_kernel+0x259/0x2c5
  [&lt;ffffffff&gt;] 0xffffffff
irq event stamp: 50102
hardirqs last  enabled at (50102): [&lt;c047ebf4&gt;] _spin_unlock_irq+0x20/0x23
hardirqs last disabled at (50101): [&lt;c047edc2&gt;] _spin_lock_irq+0xa/0x4b
softirqs last  enabled at (50088): [&lt;c0128ba6&gt;] do_softirq+0x37/0x4d
softirqs last disabled at (50099): [&lt;c0128ba6&gt;] do_softirq+0x37/0x4d

other info that might help us debug this:
no locks held by ksoftirqd/0/4.

stack backtrace:
Pid: 4, comm: ksoftirqd/0 Not tainted 2.6.27 #2
 [&lt;c013f6cb&gt;] print_usage_bug+0x13e/0x147
 [&lt;c013fef5&gt;] mark_lock+0x493/0x797
 [&lt;c01410b1&gt;] __lock_acquire+0x5be/0x121e
 [&lt;c0141d6b&gt;] lock_acquire+0x5a/0x74
 [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
 [&lt;c047ed45&gt;] _spin_lock+0x1c/0x45
 [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
 [&lt;c011db84&gt;] sched_rt_period_timer+0x9e/0x1fc
 [&lt;c01210fd&gt;] finish_task_switch+0x41/0xbd
 [&lt;c0107890&gt;] native_sched_clock+0x88/0x99
 [&lt;c011dae6&gt;] sched_rt_period_timer+0x0/0x1fc
 [&lt;c0136dda&gt;] run_hrtimer_pending+0x54/0xe5
 [&lt;c011dae6&gt;] sched_rt_period_timer+0x0/0x1fc
 [&lt;c0128afb&gt;] __do_softirq+0x7b/0xef
 [&lt;c0128ba6&gt;] do_softirq+0x37/0x4d
 [&lt;c0128c12&gt;] ksoftirqd+0x56/0xc5
 [&lt;c0128bbc&gt;] ksoftirqd+0x0/0xc5
 [&lt;c0134649&gt;] kthread+0x38/0x5d
 [&lt;c0134611&gt;] kthread+0x0/0x5d
 [&lt;c0104477&gt;] kernel_thread_helper+0x7/0x10
 =======================

Signed-off-by: Gautham R Shenoy &lt;ego@in.ibm.com&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Acked-by: "Paul E. McKenney" &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'timers/range-hrtimers' into v28-range-hrtimers-for-linus-v2</title>
<updated>2008-10-22T07:48:06+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2008-10-22T07:48:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=268a3dcfea2077fca60d3715caa5c96f9b5e6ea7'/>
<id>268a3dcfea2077fca60d3715caa5c96f9b5e6ea7</id>
<content type='text'>
Conflicts:

	kernel/time/tick-sched.c

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:

	kernel/time/tick-sched.c

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hrtimers: simplify hrtimer_peek_ahead_timers()</title>
<updated>2008-10-20T11:38:11+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2008-10-20T11:38:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=643bdf68f92a8516574ed7ca3713f9334c331b8d'/>
<id>643bdf68f92a8516574ed7ca3713f9334c331b8d</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>hrtimers: fix docbook comments</title>
<updated>2008-10-20T11:33:36+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2008-10-20T11:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e1dd7bc58578ebfcaba989608017fe5156c29c86'/>
<id>e1dd7bc58578ebfcaba989608017fe5156c29c86</id>
<content type='text'>
hrtimer_start() and hrtimer_start_range_ns() handle relative and
absolute timers.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
hrtimer_start() and hrtimer_start_range_ns() handle relative and
absolute timers.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branches 'timers/clocksource', 'timers/hrtimers', 'timers/nohz', 'timers/ntp', 'timers/posixtimers' and 'timers/debug' into v28-timers-for-linus</title>
<updated>2008-10-20T11:14:06+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2008-10-20T11:14:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c465a76af658b443075d6efee1c3131257643020'/>
<id>c465a76af658b443075d6efee1c3131257643020</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge commit 'linus/master' into merge-linus</title>
<updated>2008-10-17T16:20:26+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2008-10-17T16:20:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=651dab4264e4ba0e563f5ff56f748127246e9065'/>
<id>651dab4264e4ba0e563f5ff56f748127246e9065</id>
<content type='text'>
Conflicts:

	arch/x86/kvm/i8254.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:

	arch/x86/kvm/i8254.c
</pre>
</div>
</content>
</entry>
<entry>
<title>rangetimers: fix the bug reported by Ingo for real</title>
<updated>2008-10-13T15:08:34+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2008-10-13T14:32:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dc4304f7deee29fcdf6a2b62f7146ea7f505fd42'/>
<id>dc4304f7deee29fcdf6a2b62f7146ea7f505fd42</id>
<content type='text'>
and please hand me a brown paper bag

(thanks to Thomas for pointing out this very obvious bug)

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
and please hand me a brown paper bag

(thanks to Thomas for pointing out this very obvious bug)

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rangetimer: fix BUG_ON reported by Ingo</title>
<updated>2008-10-11T19:25:45+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2008-10-11T19:25:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=030aebd2e439a2ebcca2b0ce30a02ed84feb043e'/>
<id>030aebd2e439a2ebcca2b0ce30a02ed84feb043e</id>
<content type='text'>
There's a small race/chance that, while hrtimers are enabled globally,
they're later not enabled when we're calling the hrtimer_interrupt() function,
which then BUG_ON()'s for that. This patch closes that race/gap.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There's a small race/chance that, while hrtimers are enabled globally,
they're later not enabled when we're calling the hrtimer_interrupt() function,
which then BUG_ON()'s for that. This patch closes that race/gap.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
