All of lore.kernel.org
 help / color / mirror / Atom feed
From: Herbert Xu <herbert@gondor.apana.org.au>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ard Biesheuvel <ardb@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-arch <linux-arch@vger.kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Richard Henderson <rth@twiddle.net>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Matt Turner <mattst88@gmail.com>,
	alpha <linux-alpha@vger.kernel.org>,
	Jeff Dike <jdike@addtoit.com>,
	Richard Weinberger <richard@nod.at>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	linux-um <linux-um@lists.infradead.org>,
	Brian Cain <bcain@codeaurora.org>,
	linux-hexagon@vger.kernel.org,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-m68k <linux-m68k@lists.linux-m68k.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juri Lelli <juri.lelli@redhat.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
	Daniel Bristot de Oliveira <bristot@redhat.com>,
	Will Deacon <will@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux-MM <linux-mm@kvack.org>, Ingo Molnar <mingo@redhat.com>,
	Russell King <linux@armlinux.org.uk>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Chris Zankel <chris@zankel.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	linux-xtensa@linux-xtensa.org,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	Shuah Khan <shuah@kernel.org>,
	rcu@vger.kernel.org,
	"open list:KERNEL SELFTEST FRAMEWORK <linux-kselftest"@vger.k
Subject: [PATCH] crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally
Date: Tue, 15 Sep 2020 13:21:37 +1000	[thread overview]
Message-ID: <20200915032137.GA25655@gondor.apana.org.au> (raw)
In-Reply-To: <CAHk-=wjOV6f_ddg+QVCF6RUe+pXPhSR2WevnNyOs9oT+q2ihEA@mail.gmail.com>

On Mon, Sep 14, 2020 at 03:37:49PM -0700, Linus Torvalds wrote:
>
> So it _looks_ like this code started using kmap() - probably back when
> kmap_atomic() was so cumbersome to use - and was then converted
> (conditionally) to kmap_atomic() rather than just changed whole-sale.
> Is there actually something that wants to use those sg_miter functions
> and sleep?

I dug up the old zinc patch submissions and this wasn't present at
all in the original.  The original zinc code used blkcipher_walk
which unconditinoally does kmap_atomic.

So it's only the SG miter conversion that introduced this change,
which appears to be a simple oversight (I think Ard was working on
latency issues at that time, perhaps he was worried about keeping
preemption off unnecessarily).

---8<---
There is no reason for the chacha20poly1305 SG miter code to use
kmap instead of kmap_atomic as the critical section doesn't sleep
anyway.  So we can simply get rid of the preemptible check and
set SG_MITER_ATOMIC unconditionally.

Even if we need to reenable preemption to lower latency we should
be doing that by interrupting the SG miter walk rather than using
kmap.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c
index 431e04280332..5850f3b87359 100644
--- a/lib/crypto/chacha20poly1305.c
+++ b/lib/crypto/chacha20poly1305.c
@@ -251,9 +251,7 @@ bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src,
 			poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf));
 	}
 
-	flags = SG_MITER_TO_SG;
-	if (!preemptible())
-		flags |= SG_MITER_ATOMIC;
+	flags = SG_MITER_TO_SG | SG_MITER_ATOMIC;
 
 	sg_miter_start(&miter, src, sg_nents(src), flags);
 
-- 
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


WARNING: multiple messages have this Message-ID (diff)
From: Herbert Xu <herbert@gondor.apana.org.au>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Juri Lelli <juri.lelli@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Ben Segall <bsegall@google.com>, Linux-MM <linux-mm@kvack.org>,
	linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	linux-arch <linux-arch@vger.kernel.org>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Brian Cain <bcain@codeaurora.org>,
	Richard Weinberger <richard@nod.at>,
	Russell King <linux@armlinux.org.uk>,
	Ard Biesheuvel <ardb@kernel.org>, David Airlie <airlied@linux.ie>,
	Ingo Molnar <mingo@redhat.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Mel Gorman <mgorman@suse.de>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	Matt Turner <mattst88@gmail.com>,
	Valentin Schneider <valentin.schneider@arm.com>,
	linux-xtensa@linux-xtensa.org, Shuah Khan <shuah@kernel.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	"open list:KERNEL SELFTEST FRAMEWORK" <linux-kselftest@vger.k>,
	Jeff Dike <jdike@addtoit.com>,
	linux-um <linux-um@lists.infradead.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	rcu@vger.kernel.org, linux-m68k <linux-m68k@lists.linux-m68k.org>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Richard Henderson <rth@twiddle.net>,
	Chris Zankel <chris@zankel.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>,
	alpha <linux-alpha@vger.kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Daniel Bristot de Oliveira <bristot@redhat.com>
Subject: [PATCH] crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally
Date: Tue, 15 Sep 2020 13:21:37 +1000	[thread overview]
Message-ID: <20200915032137.GA25655@gondor.apana.org.au> (raw)
In-Reply-To: <CAHk-=wjOV6f_ddg+QVCF6RUe+pXPhSR2WevnNyOs9oT+q2ihEA@mail.gmail.com>

On Mon, Sep 14, 2020 at 03:37:49PM -0700, Linus Torvalds wrote:
>
> So it _looks_ like this code started using kmap() - probably back when
> kmap_atomic() was so cumbersome to use - and was then converted
> (conditionally) to kmap_atomic() rather than just changed whole-sale.
> Is there actually something that wants to use those sg_miter functions
> and sleep?

I dug up the old zinc patch submissions and this wasn't present at
all in the original.  The original zinc code used blkcipher_walk
which unconditinoally does kmap_atomic.

So it's only the SG miter conversion that introduced this change,
which appears to be a simple oversight (I think Ard was working on
latency issues at that time, perhaps he was worried about keeping
preemption off unnecessarily).

---8<---
There is no reason for the chacha20poly1305 SG miter code to use
kmap instead of kmap_atomic as the critical section doesn't sleep
anyway.  So we can simply get rid of the preemptible check and
set SG_MITER_ATOMIC unconditionally.

Even if we need to reenable preemption to lower latency we should
be doing that by interrupting the SG miter walk rather than using
kmap.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c
index 431e04280332..5850f3b87359 100644
--- a/lib/crypto/chacha20poly1305.c
+++ b/lib/crypto/chacha20poly1305.c
@@ -251,9 +251,7 @@ bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src,
 			poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf));
 	}
 
-	flags = SG_MITER_TO_SG;
-	if (!preemptible())
-		flags |= SG_MITER_ATOMIC;
+	flags = SG_MITER_TO_SG | SG_MITER_ATOMIC;
 
 	sg_miter_start(&miter, src, sg_nents(src), flags);
 
-- 
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
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: Herbert Xu <herbert@gondor.apana.org.au>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Juri Lelli <juri.lelli@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Ben Segall <bsegall@google.com>, Linux-MM <linux-mm@kvack.org>,
	linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	linux-arch <linux-arch@vger.kernel.org>,
	Brian Cain <bcain@codeaurora.org>,
	Richard Weinberger <richard@nod.at>,
	Russell King <linux@armlinux.org.uk>,
	Ard Biesheuvel <ardb@kernel.org>, David Airlie <airlied@linux.ie>,
	Ingo Molnar <mingo@redhat.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Mel Gorman <mgorman@suse.de>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	Matt Turner <mattst88@gmail.com>,
	Valentin Schneider <valentin.schneider@arm.com>,
	linux-xtensa@linux-xtensa.org, Shuah Khan <shuah@kernel.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	"open list:KERNEL SELFTEST FRAMEWORK" <linux-kselftest@vger.k>,
	Jeff Dike <jdike@addtoit.com>,
	linux-um <linux-um@lists.infradead.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	rcu@vger.kernel.org, linux-m68k <linux-m68k@lists.linux-m68k.org>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Thomas Gleixner <tglx@linutronix.de>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Richard Henderson <rth@twiddle.net>,
	Chris Zankel <chris@zankel.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>,
	alpha <linux-alpha@vger.kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Daniel Bristot de Oliveira <bristot@redhat.com>
Subject: [Intel-gfx] [PATCH] crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally
Date: Tue, 15 Sep 2020 13:21:37 +1000	[thread overview]
Message-ID: <20200915032137.GA25655@gondor.apana.org.au> (raw)
In-Reply-To: <CAHk-=wjOV6f_ddg+QVCF6RUe+pXPhSR2WevnNyOs9oT+q2ihEA@mail.gmail.com>

On Mon, Sep 14, 2020 at 03:37:49PM -0700, Linus Torvalds wrote:
>
> So it _looks_ like this code started using kmap() - probably back when
> kmap_atomic() was so cumbersome to use - and was then converted
> (conditionally) to kmap_atomic() rather than just changed whole-sale.
> Is there actually something that wants to use those sg_miter functions
> and sleep?

I dug up the old zinc patch submissions and this wasn't present at
all in the original.  The original zinc code used blkcipher_walk
which unconditinoally does kmap_atomic.

So it's only the SG miter conversion that introduced this change,
which appears to be a simple oversight (I think Ard was working on
latency issues at that time, perhaps he was worried about keeping
preemption off unnecessarily).

---8<---
There is no reason for the chacha20poly1305 SG miter code to use
kmap instead of kmap_atomic as the critical section doesn't sleep
anyway.  So we can simply get rid of the preemptible check and
set SG_MITER_ATOMIC unconditionally.

Even if we need to reenable preemption to lower latency we should
be doing that by interrupting the SG miter walk rather than using
kmap.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c
index 431e04280332..5850f3b87359 100644
--- a/lib/crypto/chacha20poly1305.c
+++ b/lib/crypto/chacha20poly1305.c
@@ -251,9 +251,7 @@ bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src,
 			poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf));
 	}
 
-	flags = SG_MITER_TO_SG;
-	if (!preemptible())
-		flags |= SG_MITER_ATOMIC;
+	flags = SG_MITER_TO_SG | SG_MITER_ATOMIC;
 
 	sg_miter_start(&miter, src, sg_nents(src), flags);
 
-- 
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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

WARNING: multiple messages have this Message-ID (diff)
From: Herbert Xu <herbert@gondor.apana.org.au>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ard Biesheuvel <ardb@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-arch <linux-arch@vger.kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Richard Henderson <rth@twiddle.net>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Matt Turner <mattst88@gmail.com>,
	alpha <linux-alpha@vger.kernel.org>,
	Jeff Dike <jdike@addtoit.com>,
	Richard Weinberger <richard@nod.at>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	linux-um <linux-um@lists.infradead.org>,
	Brian Cain <bcain@codeaurora.org>,
	linux-hexagon@vger.kernel.org,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-m68k <linux-m68k@lists.linux-m68k.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Juri Lelli <juri.lelli@redhat.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
	Daniel Bristot de Oliveira <bristot@redhat.com>,
	Will Deacon <will@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux-MM <linux-mm@kvack.org>, Ingo Molnar <mingo@redhat.com>,
	Russell King <linux@armlinux.org.uk>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Chris Zankel <chris@zankel.net>,
	Max Filippov <jcmvbkbc@gmail.com>,
	linux-xtensa@linux-xtensa.org,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	Shuah Khan <shuah@kernel.org>,
	rcu@vger.kernel.org,
	"open list:KERNEL SELFTEST FRAMEWORK" <linux-kselftest@vger.k>
Subject: [PATCH] crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally
Date: Tue, 15 Sep 2020 13:21:37 +1000	[thread overview]
Message-ID: <20200915032137.GA25655@gondor.apana.org.au> (raw)
In-Reply-To: <CAHk-=wjOV6f_ddg+QVCF6RUe+pXPhSR2WevnNyOs9oT+q2ihEA@mail.gmail.com>

On Mon, Sep 14, 2020 at 03:37:49PM -0700, Linus Torvalds wrote:
>
> So it _looks_ like this code started using kmap() - probably back when
> kmap_atomic() was so cumbersome to use - and was then converted
> (conditionally) to kmap_atomic() rather than just changed whole-sale.
> Is there actually something that wants to use those sg_miter functions
> and sleep?

I dug up the old zinc patch submissions and this wasn't present at
all in the original.  The original zinc code used blkcipher_walk
which unconditinoally does kmap_atomic.

So it's only the SG miter conversion that introduced this change,
which appears to be a simple oversight (I think Ard was working on
latency issues at that time, perhaps he was worried about keeping
preemption off unnecessarily).

---8<---
There is no reason for the chacha20poly1305 SG miter code to use
kmap instead of kmap_atomic as the critical section doesn't sleep
anyway.  So we can simply get rid of the preemptible check and
set SG_MITER_ATOMIC unconditionally.

Even if we need to reenable preemption to lower latency we should
be doing that by interrupting the SG miter walk rather than using
kmap.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c
index 431e04280332..5850f3b87359 100644
--- a/lib/crypto/chacha20poly1305.c
+++ b/lib/crypto/chacha20poly1305.c
@@ -251,9 +251,7 @@ bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src,
 			poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf));
 	}
 
-	flags = SG_MITER_TO_SG;
-	if (!preemptible())
-		flags |= SG_MITER_ATOMIC;
+	flags = SG_MITER_TO_SG | SG_MITER_ATOMIC;
 
 	sg_miter_start(&miter, src, sg_nents(src), flags);
 
-- 
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


WARNING: multiple messages have this Message-ID (diff)
From: Herbert Xu <herbert@gondor.apana.org.au>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Juri Lelli <juri.lelli@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Ben Segall <bsegall@google.com>, Linux-MM <linux-mm@kvack.org>,
	linux-hexagon@vger.kernel.org, Will Deacon <will@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	linux-arch <linux-arch@vger.kernel.org>,
	Brian Cain <bcain@codeaurora.org>,
	Richard Weinberger <richard@nod.at>,
	Russell King <linux@armlinux.org.uk>,
	Ard Biesheuvel <ardb@kernel.org>, David Airlie <airlied@linux.ie>,
	Ingo Molnar <mingo@redhat.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Mel Gorman <mgorman@suse.de>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	Matt Turner <mattst88@gmail.com>,
	Valentin Schneider <valentin.schneider@arm.com>,
	linux-xtensa@li
Subject: [PATCH] crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally
Date: Tue, 15 Sep 2020 13:21:37 +1000	[thread overview]
Message-ID: <20200915032137.GA25655@gondor.apana.org.au> (raw)
In-Reply-To: <CAHk-=wjOV6f_ddg+QVCF6RUe+pXPhSR2WevnNyOs9oT+q2ihEA@mail.gmail.com>

On Mon, Sep 14, 2020 at 03:37:49PM -0700, Linus Torvalds wrote:
>
> So it _looks_ like this code started using kmap() - probably back when
> kmap_atomic() was so cumbersome to use - and was then converted
> (conditionally) to kmap_atomic() rather than just changed whole-sale.
> Is there actually something that wants to use those sg_miter functions
> and sleep?

I dug up the old zinc patch submissions and this wasn't present at
all in the original.  The original zinc code used blkcipher_walk
which unconditinoally does kmap_atomic.

So it's only the SG miter conversion that introduced this change,
which appears to be a simple oversight (I think Ard was working on
latency issues at that time, perhaps he was worried about keeping
preemption off unnecessarily).

---8<---
There is no reason for the chacha20poly1305 SG miter code to use
kmap instead of kmap_atomic as the critical section doesn't sleep
anyway.  So we can simply get rid of the preemptible check and
set SG_MITER_ATOMIC unconditionally.

Even if we need to reenable preemption to lower latency we should
be doing that by interrupting the SG miter walk rather than using
kmap.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c
index 431e04280332..5850f3b87359 100644
--- a/lib/crypto/chacha20poly1305.c
+++ b/lib/crypto/chacha20poly1305.c
@@ -251,9 +251,7 @@ bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src,
 			poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf));
 	}
 
-	flags = SG_MITER_TO_SG;
-	if (!preemptible())
-		flags |= SG_MITER_ATOMIC;
+	flags = SG_MITER_TO_SG | SG_MITER_ATOMIC;
 
 	sg_miter_start(&miter, src, sg_nents(src), flags);
 
-- 
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

  reply	other threads:[~2020-09-15  3:23 UTC|newest]

Thread overview: 282+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-14 20:42 [patch 00/13] preempt: Make preempt count unconditional Thomas Gleixner
2020-09-14 20:42 ` Thomas Gleixner
2020-09-14 20:42 ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42 ` Thomas Gleixner
2020-09-14 20:42 ` Thomas Gleixner
2020-09-14 20:42 ` [patch 01/13] lib/debug: Remove pointless ARCH_NO_PREEMPT dependencies Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42 ` [patch 02/13] preempt: Make preempt count unconditional Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42 ` [patch 03/13] preempt: Clenaup PREEMPT_COUNT leftovers Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-16 10:56   ` Valentin Schneider
2020-09-16 10:56     ` Valentin Schneider
2020-09-16 10:56     ` [Intel-gfx] " Valentin Schneider
2020-09-16 10:56     ` Valentin Schneider
2020-09-14 20:42 ` [patch 04/13] lockdep: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-15 16:11   ` Will Deacon
2020-09-15 16:11     ` Will Deacon
2020-09-15 16:11     ` [Intel-gfx] " Will Deacon
2020-09-15 16:11     ` Will Deacon
2020-09-15 16:11     ` Will Deacon
2020-09-14 20:42 ` [patch 05/13] mm/pagemap: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-15  0:52   ` kernel test robot
2020-09-15  0:52     ` kernel test robot
2020-09-15  2:40   ` kernel test robot
2020-09-15  5:28   ` kernel test robot
2020-09-14 20:42 ` [patch 06/13] locking/bitspinlock: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-15 16:10   ` Will Deacon
2020-09-15 16:10     ` Will Deacon
2020-09-15 16:10     ` [Intel-gfx] " Will Deacon
2020-09-15 16:10     ` Will Deacon
2020-09-15 16:10     ` Will Deacon
2020-09-14 20:42 ` [patch 07/13] uaccess: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42 ` [patch 08/13] sched: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-16 10:56   ` Valentin Schneider
2020-09-16 10:56     ` Valentin Schneider
2020-09-16 10:56     ` [Intel-gfx] " Valentin Schneider
2020-09-16 10:56     ` Valentin Schneider
2020-09-14 20:42 ` [patch 09/13] ARM: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42 ` [patch 10/13] xtensa: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42 ` [patch 11/13] drm/i915: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42 ` [patch 12/13] rcutorture: " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42 ` [patch 13/13] preempt: Remove PREEMPT_COUNT from Kconfig Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` [Intel-gfx] " Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:42   ` Thomas Gleixner
2020-09-14 20:54 ` [patch 00/13] preempt: Make preempt count unconditional Steven Rostedt
2020-09-14 20:54   ` Steven Rostedt
2020-09-14 20:54   ` [Intel-gfx] " Steven Rostedt
2020-09-14 20:54   ` Steven Rostedt
2020-09-14 20:54   ` Steven Rostedt
2020-09-14 20:59 ` Linus Torvalds
2020-09-14 20:59   ` Linus Torvalds
2020-09-14 20:59   ` [Intel-gfx] " Linus Torvalds
2020-09-14 20:59   ` Linus Torvalds
2020-09-14 20:59   ` Linus Torvalds
2020-09-14 21:55   ` Thomas Gleixner
2020-09-14 21:55     ` Thomas Gleixner
2020-09-14 21:55     ` Thomas Gleixner
2020-09-14 21:55     ` [Intel-gfx] " Thomas Gleixner
2020-09-14 21:55     ` Thomas Gleixner
2020-09-14 21:55     ` Thomas Gleixner
2020-09-14 22:24     ` Linus Torvalds
2020-09-14 22:24       ` Linus Torvalds
2020-09-14 22:24       ` [Intel-gfx] " Linus Torvalds
2020-09-14 22:24       ` Linus Torvalds
2020-09-14 22:37       ` Linus Torvalds
2020-09-14 22:37         ` Linus Torvalds
2020-09-14 22:37         ` [Intel-gfx] " Linus Torvalds
2020-09-14 22:37         ` Linus Torvalds
2020-09-15  3:21         ` Herbert Xu [this message]
2020-09-15  3:21           ` [PATCH] crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally Herbert Xu
2020-09-15  3:21           ` Herbert Xu
2020-09-15  3:21           ` [Intel-gfx] " Herbert Xu
2020-09-15  3:21           ` Herbert Xu
2020-09-15  3:30         ` Herbert Xu
2020-09-15  6:03           ` Ard Biesheuvel
2020-09-15  6:40             ` Herbert Xu
2020-09-15  6:45           ` Linus Torvalds
2020-09-15  6:55             ` Linus Torvalds
2020-09-15  7:05               ` Herbert Xu
2020-09-15  7:10                 ` Ard Biesheuvel
2020-09-15  9:34                 ` Thomas Gleixner
2020-09-15 10:02                   ` Ard Biesheuvel
2020-09-15 10:05                     ` Herbert Xu
2020-09-15 10:08                       ` Ard Biesheuvel
2020-09-15 10:10                         ` Herbert Xu
2020-09-15 19:04                           ` Thomas Gleixner
2020-09-15  7:08               ` Ard Biesheuvel
2020-09-15  6:20         ` [patch 00/13] preempt: Make preempt count unconditional Ard Biesheuvel
2020-09-15  6:20           ` Ard Biesheuvel
2020-09-15  6:20           ` [Intel-gfx] " Ard Biesheuvel
2020-09-15  6:20           ` Ard Biesheuvel
2020-09-15  6:20           ` Ard Biesheuvel
2020-09-15  6:22           ` Herbert Xu
2020-09-15  6:22             ` Herbert Xu
2020-09-15  6:22             ` Herbert Xu
2020-09-15  6:22             ` [Intel-gfx] " Herbert Xu
2020-09-15  6:22             ` Herbert Xu
2020-09-15  6:39             ` Linus Torvalds
2020-09-15  6:39               ` Linus Torvalds
2020-09-15  6:39               ` [Intel-gfx] " Linus Torvalds
2020-09-15  6:39               ` Linus Torvalds
2020-09-15  6:39               ` Linus Torvalds
2020-09-15  7:24               ` Thomas Gleixner
2020-09-15  7:24                 ` Thomas Gleixner
2020-09-15  7:24                 ` [Intel-gfx] " Thomas Gleixner
2020-09-15 17:29                 ` Linus Torvalds
2020-09-15 17:29                   ` Linus Torvalds
2020-09-15 17:29                   ` [Intel-gfx] " Linus Torvalds
2020-09-15 17:29                   ` Linus Torvalds
2020-09-15 17:29                   ` Linus Torvalds
2020-09-15  8:39       ` Thomas Gleixner
2020-09-15  8:39         ` Thomas Gleixner
2020-09-15  8:39         ` Thomas Gleixner
2020-09-15  8:39         ` [Intel-gfx] " Thomas Gleixner
2020-09-15  8:39         ` Thomas Gleixner
2020-09-15 17:35         ` Linus Torvalds
2020-09-15 17:35           ` Linus Torvalds
2020-09-15 17:35           ` [Intel-gfx] " Linus Torvalds
2020-09-15 17:35           ` Linus Torvalds
2020-09-15 17:35           ` Linus Torvalds
2020-09-15 19:57           ` Thomas Gleixner
2020-09-15 19:57             ` Thomas Gleixner
2020-09-15 19:57             ` Thomas Gleixner
2020-09-15 19:57             ` [Intel-gfx] " Thomas Gleixner
2020-09-15 19:57             ` Thomas Gleixner
2020-09-15 19:57             ` Thomas Gleixner
2020-09-16 18:34             ` Linus Torvalds
2020-09-16 18:34               ` Linus Torvalds
2020-09-16 18:34               ` [Intel-gfx] " Linus Torvalds
2020-09-16 18:34               ` Linus Torvalds
2020-09-16 18:34               ` Linus Torvalds
2020-09-16  7:37           ` Daniel Vetter
2020-09-16  7:37             ` Daniel Vetter
2020-09-16  7:37             ` [Intel-gfx] " Daniel Vetter
2020-09-16  7:37             ` Daniel Vetter
2020-09-16  7:37             ` Daniel Vetter
2020-09-16 15:29             ` Paul E. McKenney
2020-09-16 15:29               ` Paul E. McKenney
2020-09-16 15:29               ` [Intel-gfx] " Paul E. McKenney
2020-09-16 15:29               ` Paul E. McKenney
2020-09-16 15:29               ` Paul E. McKenney
2020-09-16 18:32               ` Linus Torvalds
2020-09-16 18:32                 ` Linus Torvalds
2020-09-16 18:32                 ` [Intel-gfx] " Linus Torvalds
2020-09-16 18:32                 ` Linus Torvalds
2020-09-16 18:32                 ` Linus Torvalds
2020-09-16 20:43                 ` Paul E. McKenney
2020-09-16 20:43                   ` Paul E. McKenney
2020-09-16 20:43                   ` [Intel-gfx] " Paul E. McKenney
2020-09-16 20:43                   ` Paul E. McKenney
2020-09-16 20:43                   ` Paul E. McKenney
2020-09-17  6:38                 ` Ard Biesheuvel
2020-09-17  6:38                   ` Ard Biesheuvel
2020-09-17  6:38                   ` [Intel-gfx] " Ard Biesheuvel
2020-09-17  6:38                   ` Ard Biesheuvel
2020-09-17  6:38                   ` Ard Biesheuvel
2020-09-16 20:29               ` Daniel Vetter
2020-09-16 20:29                 ` Daniel Vetter
2020-09-16 20:29                 ` [Intel-gfx] " Daniel Vetter
2020-09-16 20:29                 ` Daniel Vetter
2020-09-16 20:29                 ` Daniel Vetter
2020-09-16 20:58                 ` Paul E. McKenney
2020-09-16 20:58                   ` Paul E. McKenney
2020-09-16 20:58                   ` [Intel-gfx] " Paul E. McKenney
2020-09-16 20:58                   ` Paul E. McKenney
2020-09-16 20:58                   ` Paul E. McKenney
2020-09-16 21:43                   ` Daniel Vetter
2020-09-16 21:43                     ` Daniel Vetter
2020-09-16 21:43                     ` [Intel-gfx] " Daniel Vetter
2020-09-16 21:43                     ` Daniel Vetter
2020-09-16 21:43                     ` Daniel Vetter
2020-09-16 22:39                     ` Paul E. McKenney
2020-09-16 22:39                       ` Paul E. McKenney
2020-09-16 22:39                       ` [Intel-gfx] " Paul E. McKenney
2020-09-16 22:39                       ` Paul E. McKenney
2020-09-16 22:39                       ` Paul E. McKenney
2020-09-17  7:52                       ` Daniel Vetter
2020-09-17  7:52                         ` Daniel Vetter
2020-09-17  7:52                         ` [Intel-gfx] " Daniel Vetter
2020-09-17  7:52                         ` Daniel Vetter
2020-09-17  7:52                         ` Daniel Vetter
2020-09-17 16:28                         ` Paul E. McKenney
2020-09-17 16:28                           ` Paul E. McKenney
2020-09-17 16:28                           ` [Intel-gfx] " Paul E. McKenney
2020-09-17 16:28                           ` Paul E. McKenney
2020-09-17 16:28                           ` Paul E. McKenney
2020-09-29  8:19                     ` Michal Hocko
2020-09-29  8:23                       ` [Intel-gfx] " Michal Hocko
2020-09-29  8:23                       ` Michal Hocko
2020-09-29  8:23                       ` Michal Hocko
2020-09-29  8:23                       ` Michal Hocko
2020-09-29  8:21                       ` [Intel-gfx] " Michal Hocko
2020-09-29  8:21                       ` Michal Hocko
2020-09-29  8:21                       ` Michal Hocko
2020-09-29  8:21                       ` Michal Hocko
2020-09-29  8:20                       ` [Intel-gfx] " Michal Hocko
2020-09-29  8:20                       ` Michal Hocko
2020-09-29  8:20                       ` Michal Hocko
2020-09-29  8:20                       ` Michal Hocko
2020-09-29  8:19                       ` [Intel-gfx] " Michal Hocko
2020-09-29  8:19                       ` Michal Hocko
2020-09-29  8:19                       ` Michal Hocko
2020-09-29  8:19                       ` Michal Hocko
2020-09-29  8:19                       ` Michal Hocko
2020-09-29  8:19                       ` [Intel-gfx] " Michal Hocko
2020-09-29  8:19                       ` Michal Hocko
2020-09-29  8:19                       ` Michal Hocko
2020-09-29  9:00                       ` Daniel Vetter
2020-09-29  9:00                         ` Daniel Vetter
2020-09-29  9:00                         ` [Intel-gfx] " Daniel Vetter
2020-09-29  9:00                         ` Daniel Vetter
2020-09-29  9:00                         ` Daniel Vetter
2020-09-29 14:54                         ` Michal Hocko
2020-09-29 14:54                           ` Michal Hocko
2020-09-29 14:54                           ` [Intel-gfx] " Michal Hocko
2020-09-29 14:54                           ` Michal Hocko
2020-09-29 14:54                           ` Michal Hocko
2020-09-16 19:23     ` Matthew Wilcox
2020-09-16 19:23       ` Matthew Wilcox
2020-09-16 19:23       ` [Intel-gfx] " Matthew Wilcox
2020-09-16 19:23       ` Matthew Wilcox
2020-09-16 19:23       ` Matthew Wilcox
2020-09-16 20:48       ` Paul E. McKenney
2020-09-16 20:48         ` Paul E. McKenney
2020-09-16 20:48         ` [Intel-gfx] " Paul E. McKenney
2020-09-16 20:48         ` Paul E. McKenney
2020-09-16 20:48         ` Paul E. McKenney
2020-09-15 17:25   ` Paul E. McKenney
2020-09-15 17:25     ` Paul E. McKenney
2020-09-15 17:25     ` [Intel-gfx] " Paul E. McKenney
2020-09-15 17:25     ` Paul E. McKenney
2020-09-15 17:25     ` Paul E. McKenney
2020-09-15 17:25     ` Paul E. McKenney
2020-09-14 22:01 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200915032137.GA25655@gondor.apana.org.au \
    --to=herbert@gondor.apana.org.au \
    --cc="open list:KERNEL SELFTEST FRAMEWORK <linux-kselftest"@vger.k \
    --cc=airlied@linux.ie \
    --cc=akpm@linux-foundation.org \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=ardb@kernel.org \
    --cc=bcain@codeaurora.org \
    --cc=bigeasy@linutronix.de \
    --cc=bristot@redhat.com \
    --cc=bsegall@google.com \
    --cc=chris@zankel.net \
    --cc=daniel@ffwll.ch \
    --cc=dietmar.eggemann@arm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert@linux-m68k.org \
    --cc=ink@jurassic.park.msu.ru \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=jdike@addtoit.com \
    --cc=jiangshanlai@gmail.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=josh@joshtriplett.org \
    --cc=juri.lelli@redhat.com \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hexagon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=linux@armlinux.org.uk \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mattst88@gmail.com \
    --cc=mgorman@suse.de \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rcu@vger.kernel.org \
    --cc=richard@nod.at \
    --cc=rodrigo.vivi@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=rth@twiddle.net \
    --cc=shuah@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=valentin.schneider@arm.com \
    --cc=vincent.guittot@linaro.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.