linux-crypto.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] padata: upgrade smp_mb__after_atomic to smp_mb in padata_do_serial
@ 2020-06-08 21:26 Daniel Jordan
  2020-06-18  7:57 ` Herbert Xu
  0 siblings, 1 reply; 2+ messages in thread
From: Daniel Jordan @ 2020-06-08 21:26 UTC (permalink / raw)
  To: Herbert Xu, Steffen Klassert; +Cc: linux-crypto, linux-kernel, Daniel Jordan

A 5.7 kernel hangs during a tcrypt test of padata that waits for an AEAD
request to finish.  This is only seen on large machines running many
concurrent requests.

The issue is that padata never serializes the request.  The removal of
the reorder_objects atomic missed that the memory barrier in
padata_do_serial() depends on it.

Upgrade the barrier from smp_mb__after_atomic to smp_mb to get correct
ordering again.

Fixes: 3facced7aeed1 ("padata: remove reorder_objects")
Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: linux-crypto@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 kernel/padata.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/padata.c b/kernel/padata.c
index a6afa12fb75ee..7b701bc3e7922 100644
--- a/kernel/padata.c
+++ b/kernel/padata.c
@@ -260,7 +260,7 @@ static void padata_reorder(struct parallel_data *pd)
 	 *
 	 * Ensure reorder queue is read after pd->lock is dropped so we see
 	 * new objects from another task in padata_do_serial.  Pairs with
-	 * smp_mb__after_atomic in padata_do_serial.
+	 * smp_mb in padata_do_serial.
 	 */
 	smp_mb();
 
@@ -342,7 +342,7 @@ void padata_do_serial(struct padata_priv *padata)
 	 * with the trylock of pd->lock in padata_reorder.  Pairs with smp_mb
 	 * in padata_reorder.
 	 */
-	smp_mb__after_atomic();
+	smp_mb();
 
 	padata_reorder(pd);
 }

base-commit: 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] padata: upgrade smp_mb__after_atomic to smp_mb in padata_do_serial
  2020-06-08 21:26 [PATCH] padata: upgrade smp_mb__after_atomic to smp_mb in padata_do_serial Daniel Jordan
@ 2020-06-18  7:57 ` Herbert Xu
  0 siblings, 0 replies; 2+ messages in thread
From: Herbert Xu @ 2020-06-18  7:57 UTC (permalink / raw)
  To: Daniel Jordan; +Cc: Steffen Klassert, linux-crypto, linux-kernel

On Mon, Jun 08, 2020 at 05:26:52PM -0400, Daniel Jordan wrote:
> A 5.7 kernel hangs during a tcrypt test of padata that waits for an AEAD
> request to finish.  This is only seen on large machines running many
> concurrent requests.
> 
> The issue is that padata never serializes the request.  The removal of
> the reorder_objects atomic missed that the memory barrier in
> padata_do_serial() depends on it.
> 
> Upgrade the barrier from smp_mb__after_atomic to smp_mb to get correct
> ordering again.
> 
> Fixes: 3facced7aeed1 ("padata: remove reorder_objects")
> Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
> Cc: Herbert Xu <herbert@gondor.apana.org.au>
> Cc: Steffen Klassert <steffen.klassert@secunet.com>
> Cc: linux-crypto@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  kernel/padata.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-06-18  7:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-08 21:26 [PATCH] padata: upgrade smp_mb__after_atomic to smp_mb in padata_do_serial Daniel Jordan
2020-06-18  7:57 ` Herbert Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).