padata: use separate workqueues for parallel and serial work
padata currently uses one per-CPU workqueue per instance for all work. Prepare for running parallel jobs on an unbound workqueue by introducing dedicated workqueues for parallel and serial work. Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com> Acked-by: Steffen Klassert <steffen.klassert@secunet.com> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Tejun Heo <tj@kernel.org> Cc: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:

committed by
Herbert Xu

parent
cc491d8e64
commit
45d153c08b
@@ -127,7 +127,8 @@ struct parallel_data {
|
||||
* struct padata_instance - The overall control structure.
|
||||
*
|
||||
* @cpu_notifier: cpu hotplug notifier.
|
||||
* @wq: The workqueue in use.
|
||||
* @parallel_wq: The workqueue used for parallel work.
|
||||
* @serial_wq: The workqueue used for serial work.
|
||||
* @pd: The internal control structure.
|
||||
* @cpumask: User supplied cpumasks for parallel and serial works.
|
||||
* @cpumask_change_notifier: Notifiers chain for user-defined notify
|
||||
@@ -139,7 +140,8 @@ struct parallel_data {
|
||||
*/
|
||||
struct padata_instance {
|
||||
struct hlist_node node;
|
||||
struct workqueue_struct *wq;
|
||||
struct workqueue_struct *parallel_wq;
|
||||
struct workqueue_struct *serial_wq;
|
||||
struct parallel_data *pd;
|
||||
struct padata_cpumask cpumask;
|
||||
struct blocking_notifier_head cpumask_change_notifier;
|
||||
|
Reference in New Issue
Block a user