Re: [PATCH v2] nvme: allow 64-bit results in passthru commands

From: James Smart
Date: Mon Aug 19 2019 - 11:57:12 EST




On 8/19/2019 7:49 AM, Keith Busch wrote:
On Mon, Aug 19, 2019 at 12:06:23AM -0700, Marta Rybczynska wrote:
----- On 16 Aug, 2019, at 15:16, Christoph Hellwig hch@xxxxxx wrote:
Sorry for not replying to the earlier version, and thanks for doing
this work.

I wonder if instead of using our own structure we'd just use
a full nvme SQE for the input and CQE for that output. Even if we
reserve a few fields that means we are ready for any newly used
field (at least until the SQE/CQE sizes are expanded..).
We could do that, nvme_command and nvme_completion are already UAPI.
On the other hand that would mean not filling out certain fields like
command_id. Can do an approach like this.
Well, we need to pass user space addresses and lengths, which isn't
captured in struct nvme_command.

This is going to be fun. It's going to have to be a cooperative effort between app and transport. There will always need to be some parts of the SQE filled out by the transport like SGL, command type/subtype bits, as well as dealing with buffers as Keith states. Command ID is another of those fields.

-- james