Thread (22 messages) 22 messages, 4 authors, 2021-03-02

Re: [PATCH] nvme-tcp: Check if request has started before processing it

From: Keith Busch <kbusch@kernel.org>
Date: 2021-02-26 17:20:12
Also in: lkml

On Fri, Feb 26, 2021 at 05:42:46PM +0100, Hannes Reinecke wrote:
On 2/26/21 5:13 PM, Keith Busch wrote:
quoted
That's just addressing a symptom. You can't fully verify the request is
valid this way because the host could have started the same command ID
the very moment before the code checks it, incorrectly completing an
in-flight command and getting data corruption.
Oh, I am fully aware.

Bad frames are just that, bad frames.
We can only fully validate that when digests are enabled, but I gather that
controllers sending out bad frames wouldn't want to enable digests, either.
So relying on that is possibly not an option.

So really what I'm trying to avoid is the host crashing on a bad frame.
That kind of thing always resonates bad with customers.
And tripping over an uninitialized command is just too stupid IMO.
Crashing is bad, silent data corruption is worse. Is there truly no
defense against that? If not, why should anyone rely on this?

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help