crypto: mark crypto workqueues CPU_INTENSIVE
kcrypto_wq and pcrypt->wq's are used to run ciphers and may consume considerable amount of CPU cycles. Mark both as CPU_INTENSIVE so that they don't block other work items. As the workqueues are primarily used to burn CPU cycles, concurrency levels shouldn't matter much and are left at 1. A higher value may be beneficial and needs investigation. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
@@ -20,7 +20,8 @@ EXPORT_SYMBOL_GPL(kcrypto_wq);
|
|||||||
|
|
||||||
static int __init crypto_wq_init(void)
|
static int __init crypto_wq_init(void)
|
||||||
{
|
{
|
||||||
kcrypto_wq = create_workqueue("crypto");
|
kcrypto_wq = alloc_workqueue("crypto",
|
||||||
|
WQ_MEM_RECLAIM | WQ_CPU_INTENSIVE, 1);
|
||||||
if (unlikely(!kcrypto_wq))
|
if (unlikely(!kcrypto_wq))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -455,7 +455,8 @@ static int pcrypt_init_padata(struct padata_pcrypt *pcrypt,
|
|||||||
|
|
||||||
get_online_cpus();
|
get_online_cpus();
|
||||||
|
|
||||||
pcrypt->wq = create_workqueue(name);
|
pcrypt->wq = alloc_workqueue(name,
|
||||||
|
WQ_MEM_RECLAIM | WQ_CPU_INTENSIVE, 1);
|
||||||
if (!pcrypt->wq)
|
if (!pcrypt->wq)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user