Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue fix from Tejun Heo: "create_singlethread_workqueue() is the old interface which is kept around for backward compatibility - each should be reviewed to determine whether singlethread usage was to save worker threads or for ordering guarantee and whether it's depended upon by memory reclaim path. While adding NUMA support for unbound workqueues during v3.10, I forgot to update it breaking the singlethread and ordering properties on NUMA setups. The breakage was unfortunately rather subtle and went without being reported until now. The only missing piece is __WQ_ORDERED flag which makes the unbounded workqueue use a single backend queue across different NUMA nodes. It's fixed by making create_singlethread_workqueue() wrap alloc_ordered_workqueue() so that possible future updates are inherited automatically" * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: apply __WQ_ORDERED to create_singlethread_workqueue()
This commit is contained in:
commit
7c9a3730a5
|
@ -419,7 +419,7 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
|
|||
alloc_workqueue("%s", WQ_FREEZABLE | WQ_UNBOUND | WQ_MEM_RECLAIM, \
|
||||
1, (name))
|
||||
#define create_singlethread_workqueue(name) \
|
||||
alloc_workqueue("%s", WQ_UNBOUND | WQ_MEM_RECLAIM, 1, (name))
|
||||
alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, name)
|
||||
|
||||
extern void destroy_workqueue(struct workqueue_struct *wq);
|
||||
|
||||
|
|
Loading…
Reference in a new issue