<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/workqueue.c, branch v2.6.39</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.39</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.39'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2011-04-29T16:08:37Z</updated>
<entry>
<title>workqueue: fix deadlock in worker_maybe_bind_and_lock()</title>
<updated>2011-04-29T16:08:37Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-04-29T16:08:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5035b20fa5cd146b66f5f89619c20a4177fb736d'/>
<id>urn:sha1:5035b20fa5cd146b66f5f89619c20a4177fb736d</id>
<content type='text'>
If a rescuer and stop_machine() bringing down a CPU race with each
other, they may deadlock on non-preemptive kernel.  The CPU won't
accept a new task, so the rescuer can't migrate to the target CPU,
while stop_machine() can't proceed because the rescuer is holding one
of the CPU retrying migration.  GCWQ_DISASSOCIATED is never cleared
and worker_maybe_bind_and_lock() retries indefinitely.

This problem can be reproduced semi reliably while the system is
entering suspend.

 http://thread.gmane.org/gmane.linux.kernel/1122051

A lot of kudos to Thilo-Alexander for reporting this tricky issue and
painstaking testing.

stable: This affects all kernels with cmwq, so all kernels since and
        including v2.6.36 need this fix.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Reported-by: Thilo-Alexander Ginkel &lt;thilo@ginkel.com&gt;
Tested-by: Thilo-Alexander Ginkel &lt;thilo@ginkel.com&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>kthread: use kthread_create_on_node()</title>
<updated>2011-03-23T00:44:01Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-03-22T23:30:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=94dcf29a11b3d20a28790598d701f98484a969da'/>
<id>urn:sha1:94dcf29a11b3d20a28790598d701f98484a969da</id>
<content type='text'>
ksoftirqd, kworker, migration, and pktgend kthreads can be created with
kthread_create_on_node(), to get proper NUMA affinities for their stack and
task_struct.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Reviewed-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Acked-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Acked-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: Fenghua Yu &lt;fenghua.yu@intel.com&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: &lt;linux-arch@vger.kernel.org&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 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq</title>
<updated>2011-03-16T15:20:19Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-03-16T15:20:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bd2895eeade5f11f3e5906283c630bbdb4b57454'/>
<id>urn:sha1:bd2895eeade5f11f3e5906283c630bbdb4b57454</id>
<content type='text'>
* 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
  workqueue: fix build failure introduced by s/freezeable/freezable/
  workqueue: add system_freezeable_wq
  rds/ib: use system_wq instead of rds_ib_fmr_wq
  net/9p: replace p9_poll_task with a work
  net/9p: use system_wq instead of p9_mux_wq
  xfs: convert to alloc_workqueue()
  reiserfs: make commit_wq use the default concurrency level
  ocfs2: use system_wq instead of ocfs2_quota_wq
  ext4: convert to alloc_workqueue()
  scsi/scsi_tgt_lib: scsi_tgtd isn't used in memory reclaim path
  scsi/be2iscsi,qla2xxx: convert to alloc_workqueue()
  misc/iwmc3200top: use system_wq instead of dedicated workqueues
  i2o: use alloc_workqueue() instead of create_workqueue()
  acpi: kacpi*_wq don't need WQ_MEM_RECLAIM
  fs/aio: aio_wq isn't used in memory reclaim path
  input/tps6507x-ts: use system_wq instead of dedicated workqueue
  cpufreq: use system_wq instead of dedicated workqueues
  wireless/ipw2x00: use system_wq instead of dedicated workqueues
  arm/omap: use system_wq in mailbox
  workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER
</content>
</entry>
<entry>
<title>debugobjects: Add hint for better object identification</title>
<updated>2011-03-08T15:10:38Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2011-03-07T08:58:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=997772884036e6e121de39322179989154437d9f'/>
<id>urn:sha1:997772884036e6e121de39322179989154437d9f</id>
<content type='text'>
In complex subsystems like mac80211 structures can contain several
timers and work structs, so identifying a specific instance from the
call trace and object type output of debugobjects can be hard.

Allow the subsystems which support debugobjects to provide a hint
function. This function returns a pointer to a kernel address
(preferrably the objects callback function) which is printed along
with the debugobjects type.

Add hint methods for timer_list, work_struct and hrtimer.

[ tglx: Massaged changelog, made it compile ]

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
LKML-Reference: &lt;20110307085809.GA9334@redhat.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>workqueue: fix build failure introduced by s/freezeable/freezable/</title>
<updated>2011-02-21T09:07:23Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-02-21T08:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=24d51add7438f9696a7205927bf9de3c5c787a58'/>
<id>urn:sha1:24d51add7438f9696a7205927bf9de3c5c787a58</id>
<content type='text'>
wq:fixes-2.6.38 does s/WQ_FREEZEABLE/WQ_FREEZABLE and wq:for-2.6.39
adds new usage of the flag.  The combination of the two creates a
build failure after merge.  Fix it by renaming all freezeables to
freezables.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Reported-by: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' into for-2.6.39</title>
<updated>2011-02-21T08:43:56Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-02-21T08:43:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=43d133c18b44e7d82d82ef0dcc2bddd55d5dfe81'/>
<id>urn:sha1:43d133c18b44e7d82d82ef0dcc2bddd55d5dfe81</id>
<content type='text'>
</content>
</entry>
<entry>
<title>workqueue: make sure MAYDAY_INITIAL_TIMEOUT is at least 2 jiffies long</title>
<updated>2011-02-16T17:10:19Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-02-16T17:10:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3233cdbd9fa347a6d6897a94cc6ed0302ae83c4f'/>
<id>urn:sha1:3233cdbd9fa347a6d6897a94cc6ed0302ae83c4f</id>
<content type='text'>
MAYDAY_INITIAL_TIMEOUT is defined as HZ / 100 and depending on
configuration may end up 0 or 1.  Even when it's 1, depending on when
the mayday timer is added in the current jiffy interval, it may expire
way before a jiffy has passed.

Make sure MAYDAY_INITIAL_TIMEOUT is at least two to guarantee that at
least a full jiffy has passed before calling rescuers.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Reported-by: Ray Jui &lt;rjui@broadcom.com&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>workqueue, freezer: unify spelling of 'freeze' + 'able' to 'freezable'</title>
<updated>2011-02-16T16:48:59Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-02-16T08:25:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=58a69cb47ec6991bf006a3e5d202e8571b0327a4'/>
<id>urn:sha1:58a69cb47ec6991bf006a3e5d202e8571b0327a4</id>
<content type='text'>
There are two spellings in use for 'freeze' + 'able' - 'freezable' and
'freezeable'.  The former is the more prominent one.  The latter is
mostly used by workqueue and in a few other odd places.  Unify the
spelling to 'freezable'.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Reported-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Acked-by: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Acked-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: Alex Dubov &lt;oakad@yahoo.com&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>workqueue: wake up a worker when a rescuer is leaving a gcwq</title>
<updated>2011-02-14T13:04:46Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-02-14T13:04:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7576958a9d5a4a677ad7dd40901cdbb6c1110c98'/>
<id>urn:sha1:7576958a9d5a4a677ad7dd40901cdbb6c1110c98</id>
<content type='text'>
After executing the matching works, a rescuer leaves the gcwq whether
there are more pending works or not.  This may decrease the
concurrency level to zero and stall execution until a new work item is
queued on the gcwq.

Make rescuer wake up a regular worker when it leaves a gcwq if there
are more works to execute, so that execution isn't stalled.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Reported-by: Ray Jui &lt;rjui@broadcom.com&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>workqueue: add system_freezeable_wq</title>
<updated>2011-02-09T08:37:49Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-02-08T09:39:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4149efb22da66e326fc48baf80d628834509f7f0'/>
<id>urn:sha1:4149efb22da66e326fc48baf80d628834509f7f0</id>
<content type='text'>
Add system wide freezeable workqueue.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Acked-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
</content>
</entry>
</feed>
