<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/workqueue.c, branch v2.6.28</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.28</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.28'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2008-11-06T08:05:33Z</updated>
<entry>
<title>cpumask: introduce new API, without changing anything</title>
<updated>2008-11-06T08:05:33Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2008-11-05T02:39:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2d3854a37e8b767a51aba38ed6d22817b0631e33'/>
<id>urn:sha1:2d3854a37e8b767a51aba38ed6d22817b0631e33</id>
<content type='text'>
Impact: introduce new APIs

We want to deprecate cpumasks on the stack, as we are headed for
gynormous numbers of CPUs.  Eventually, we want to head towards an
undefined 'struct cpumask' so they can never be declared on stack.

1) New cpumask functions which take pointers instead of copies.
   (cpus_* -&gt; cpumask_*)

2) Several new helpers to reduce requirements for temporary cpumasks
   (cpumask_first_and, cpumask_next_and, cpumask_any_and)

3) Helpers for declaring cpumasks on or offstack for large NR_CPUS
   (cpumask_var_t, alloc_cpumask_var and free_cpumask_var)

4) 'struct cpumask' for explicitness and to mark new-style code.

5) Make iterator functions stop at nr_cpu_ids (a runtime constant),
   not NR_CPUS for time efficiency and for smaller dynamic allocations
   in future.

6) cpumask_copy() so we can allocate less than a full cpumask eventually
   (for alloc_cpumask_var), and so we can eliminate the 'struct cpumask'
   definition eventually.

7) work_on_cpu() helper for doing task on a CPU, rather than saving old
   cpumask for current thread and manipulating it.

8) smp_call_function_many() which is smp_call_function_mask() except
   taking a cpumask pointer.

Note that this patch simply introduces the new functions and leaves
the obsolescent ones in place.  This is to simplify the transition
patches.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>workqueue: introduce create_rt_workqueue</title>
<updated>2008-10-21T23:00:25Z</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2008-10-13T21:50:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0d557dc97f4bb501f086a03d0f00b99a7855d794'/>
<id>urn:sha1:0d557dc97f4bb501f086a03d0f00b99a7855d794</id>
<content type='text'>
create_rt_workqueue will create a real time prioritized workqueue.
This is needed for the conversion of stop_machine to a workqueue based
implementation.
This patch adds yet another parameter to __create_workqueue_key to tell
it that we want an rt workqueue.
However it looks like we rather should have something like "int type"
instead of singlethread, freezable and rt.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>Remove Andrew Morton's old email accounts</title>
<updated>2008-10-16T18:21:32Z</updated>
<author>
<name>Francois Cami</name>
<email>francois.cami@free.fr</email>
</author>
<published>2008-10-16T05:01:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e1f8e87449147ffe5ea3de64a46af7de450ce279'/>
<id>urn:sha1:e1f8e87449147ffe5ea3de64a46af7de450ce279</id>
<content type='text'>
People can use the real name an an index into MAINTAINERS to find the
current email address.

Signed-off-by: Francois Cami &lt;francois.cami@free.fr&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'core/locking' into core/urgent</title>
<updated>2008-08-11T22:11:49Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2008-08-11T22:11:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=23a0ee908cbfba3264d19729c67c22b20fa73886'/>
<id>urn:sha1:23a0ee908cbfba3264d19729c67c22b20fa73886</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lockdep: rename map_[acquire|release]() =&gt; lock_map_[acquire|release]()</title>
<updated>2008-08-11T08:30:30Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2008-08-11T08:30:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3295f0ef9ff048a4619ede597ad9ec9cab725654'/>
<id>urn:sha1:3295f0ef9ff048a4619ede597ad9ec9cab725654</id>
<content type='text'>
the names were too generic:

 drivers/uio/uio.c:87: error: expected identifier or '(' before 'do'
 drivers/uio/uio.c:87: error: expected identifier or '(' before 'while'
 drivers/uio/uio.c:113: error: 'map_release' undeclared here (not in a function)

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>lockdep: map_acquire</title>
<updated>2008-08-11T07:30:23Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2008-08-11T07:30:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4f3e7524b2e703d9f8b02ac338153a53dd7ede66'/>
<id>urn:sha1:4f3e7524b2e703d9f8b02ac338153a53dd7ede66</id>
<content type='text'>
Most the free-standing lock_acquire() usages look remarkably similar, sweep
them into a new helper.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>workqueues: add comments to __create_workqueue_key()</title>
<updated>2008-07-30T16:41:47Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2008-07-30T05:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6af8bf3d86d55c98af6e453cb920ddc30867e5c7'/>
<id>urn:sha1:6af8bf3d86d55c98af6e453cb920ddc30867e5c7</id>
<content type='text'>
Dmitry Adamushko pointed out that the error handling in
__create_workqueue_key() is not clear, add the comment.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Cc: Dmitry Adamushko &lt;dmitry.adamushko@gmail.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>workqueues: do CPU_UP_CANCELED if CPU_UP_PREPARE fails</title>
<updated>2008-07-25T17:53:41Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2008-07-25T08:47:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8448502cfc915f70e3f8923849ade27d472044cb'/>
<id>urn:sha1:8448502cfc915f70e3f8923849ade27d472044cb</id>
<content type='text'>
The bug was pointed out by Akinobu Mita &lt;akinobu.mita@gmail.com&gt;, and this
patch is based on his original patch.

workqueue_cpu_callback(CPU_UP_PREPARE) expects that if it returns
NOTIFY_BAD, _cpu_up() will send CPU_UP_CANCELED then.

However, this is not true since

	"cpu hotplug: cpu: deliver CPU_UP_CANCELED only to NOTIFY_OKed callbacks with CPU_UP_PREPARE"
	commit: a0d8cdb652d35af9319a9e0fb7134de2a276c636

The callback which has returned NOTIFY_BAD will not receive
CPU_UP_CANCELED.  Change the code to fulfil the CPU_UP_CANCELED logic if
CPU_UP_PREPARE fails.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Reported-by: Akinobu Mita &lt;akinobu.mita@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>
</entry>
<entry>
<title>workqueues: schedule_on_each_cpu() can use schedule_work_on()</title>
<updated>2008-07-25T17:53:40Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2008-07-25T08:47:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8de6d308bab4f67fcf953562f9f08f9527cad72d'/>
<id>urn:sha1:8de6d308bab4f67fcf953562f9f08f9527cad72d</id>
<content type='text'>
schedule_on_each_cpu() can use schedule_work_on() to avoid the code
duplication.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>workqueues: queue_work() can use queue_work_on()</title>
<updated>2008-07-25T17:53:40Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2008-07-25T08:47:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ef1ca236b8d645349ed6569598ae3f6c1b9511c0'/>
<id>urn:sha1:ef1ca236b8d645349ed6569598ae3f6c1b9511c0</id>
<content type='text'>
queue_work() can use queue_work_on() to avoid the code duplication.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
