<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/linux/sched.h, branch v3.2.8-rt13</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>mm, rt: kmap_atomic scheduling</title>
<updated>2012-02-15T16:33:02+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>peterz@infradead.org</email>
</author>
<published>2011-07-28T08:43:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=32aea8bf12ebc86c28091b0353d597ac144b47a1'/>
<id>32aea8bf12ebc86c28091b0353d597ac144b47a1</id>
<content type='text'>
In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
switch (if there are any in use of course), this should be esp easy now
that we have a kmap_atomic stack.

Something like the below.. it wants replacing all the preempt_disable()
stuff with pagefault_disable() &amp;&amp; migrate_disable() of course, but then
you can flip kmaps around like below.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
[dvhart@linux.intel.com: build fix]
Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
switch (if there are any in use of course), this should be esp easy now
that we have a kmap_atomic stack.

Something like the below.. it wants replacing all the preempt_disable()
stuff with pagefault_disable() &amp;&amp; migrate_disable() of course, but then
you can flip kmaps around like below.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
[dvhart@linux.intel.com: build fix]
Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins
</pre>
</div>
</content>
</entry>
<entry>
<title>softirq-local-lock.patch</title>
<updated>2012-02-15T16:32:52+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-06-28T13:57:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=38e3d398424fc41a2a2177bcc8a4768b449d7fd2'/>
<id>38e3d398424fc41a2a2177bcc8a4768b449d7fd2</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>sched: teach migrate_disable about atomic contexts</title>
<updated>2012-02-15T16:32:50+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2011-09-02T12:29:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=73685cda3b7e39e722af479482030e059cbc2aff'/>
<id>73685cda3b7e39e722af479482030e059cbc2aff</id>
<content type='text'>
 &lt;NMI&gt;  [&lt;ffffffff812dafd8&gt;] spin_bug+0x94/0xa8
 [&lt;ffffffff812db07f&gt;] do_raw_spin_lock+0x43/0xea
 [&lt;ffffffff814fa9be&gt;] _raw_spin_lock_irqsave+0x6b/0x85
 [&lt;ffffffff8106ff9e&gt;] ? migrate_disable+0x75/0x12d
 [&lt;ffffffff81078aaf&gt;] ? pin_current_cpu+0x36/0xb0
 [&lt;ffffffff8106ff9e&gt;] migrate_disable+0x75/0x12d
 [&lt;ffffffff81115b9d&gt;] pagefault_disable+0xe/0x1f
 [&lt;ffffffff81047027&gt;] copy_from_user_nmi+0x74/0xe6
 [&lt;ffffffff810489d7&gt;] perf_callchain_user+0xf3/0x135

Now clearly we can't go around taking locks from NMI context, cure
this by short-circuiting migrate_disable() when we're in an atomic
context already.

Add some extra debugging to avoid things like:

  preempt_disable()
  migrate_disable();

  preempt_enable();
  migrate_enable();

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/r/1314967297.1301.14.camel@twins
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/n/tip-wbot4vsmwhi8vmbf83hsclk6@git.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 &lt;NMI&gt;  [&lt;ffffffff812dafd8&gt;] spin_bug+0x94/0xa8
 [&lt;ffffffff812db07f&gt;] do_raw_spin_lock+0x43/0xea
 [&lt;ffffffff814fa9be&gt;] _raw_spin_lock_irqsave+0x6b/0x85
 [&lt;ffffffff8106ff9e&gt;] ? migrate_disable+0x75/0x12d
 [&lt;ffffffff81078aaf&gt;] ? pin_current_cpu+0x36/0xb0
 [&lt;ffffffff8106ff9e&gt;] migrate_disable+0x75/0x12d
 [&lt;ffffffff81115b9d&gt;] pagefault_disable+0xe/0x1f
 [&lt;ffffffff81047027&gt;] copy_from_user_nmi+0x74/0xe6
 [&lt;ffffffff810489d7&gt;] perf_callchain_user+0xf3/0x135

Now clearly we can't go around taking locks from NMI context, cure
this by short-circuiting migrate_disable() when we're in an atomic
context already.

Add some extra debugging to avoid things like:

  preempt_disable()
  migrate_disable();

  preempt_enable();
  migrate_enable();

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/r/1314967297.1301.14.camel@twins
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/n/tip-wbot4vsmwhi8vmbf83hsclk6@git.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>sched: Generic migrate_disable</title>
<updated>2012-02-15T16:32:50+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2011-08-11T13:14:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4744b0dbe16c0a8195b825316b21b83d706efbff'/>
<id>4744b0dbe16c0a8195b825316b21b83d706efbff</id>
<content type='text'>
Make migrate_disable() be a preempt_disable() for !rt kernels. This
allows generic code to use it but still enforces that these code
sections stay relatively small.

A preemptible migrate_disable() accessible for general use would allow
people growing arbitrary per-cpu crap instead of clean these things
up.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/n/tip-275i87sl8e1jcamtchmehonm@git.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make migrate_disable() be a preempt_disable() for !rt kernels. This
allows generic code to use it but still enforces that these code
sections stay relatively small.

A preemptible migrate_disable() accessible for general use would allow
people growing arbitrary per-cpu crap instead of clean these things
up.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/n/tip-275i87sl8e1jcamtchmehonm@git.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>sched-migrate-disable.patch</title>
<updated>2012-02-15T16:32:49+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-06-16T11:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3da7d6bb0414b1eeec63cfb6f8721edf70e3ab96'/>
<id>3da7d6bb0414b1eeec63cfb6f8721edf70e3ab96</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>stomp-machine-mark-stomper-thread.patch</title>
<updated>2012-02-15T16:32:48+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-07-17T17:53:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c921cbc54e048fb7ff17e29598f20185cc012270'/>
<id>c921cbc54e048fb7ff17e29598f20185cc012270</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>cond-resched-lock-rt-tweak.patch</title>
<updated>2012-02-15T16:32:48+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-07-17T20:51:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e9954a4e0e655ce6cb7d07a86e7cd76ac114fc2a'/>
<id>e9954a4e0e655ce6cb7d07a86e7cd76ac114fc2a</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>sched-no-work-when-pi-blocked.patch</title>
<updated>2012-02-15T16:32:48+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-07-17T18:46:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c2f14e0ea5a3c2d4a53897a7e20a6e5d9406b764'/>
<id>c2f14e0ea5a3c2d4a53897a7e20a6e5d9406b764</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>cond-resched-softirq-fix.patch</title>
<updated>2012-02-15T16:32:47+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-07-14T07:56:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=15dcb26b4371a6324ba780ee8c49da84bce2b224'/>
<id>15dcb26b4371a6324ba780ee8c49da84bce2b224</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>sched-rt-mutex-wakeup.patch</title>
<updated>2012-02-15T16:32:47+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-06-25T07:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=44784ea48f337706836e0a05082265f531f32ff3'/>
<id>44784ea48f337706836e0a05082265f531f32ff3</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>
</feed>
