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

From: Marta Rybczynska
Date: Mon Aug 19 2019 - 03:06:27 EST




----- 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.
>
> On Fri, Aug 16, 2019 at 11:47:21AM +0200, Marta Rybczynska wrote:
>> It is not possible to get 64-bit results from the passthru commands,
>> what prevents from getting for the Capabilities (CAP) property value.
>>
>> As a result, it is not possible to implement IOL's NVMe Conformance
>> test 4.3 Case 1 for Fabrics targets [1] (page 123).
>
> Not that I'm not sure passing through fabrics commands is an all that
> good idea. But we have pending NVMe TPs that use 64-bit result
> values as well, so this seems like a good idea in general.

I'm not sure how those tests could be implemented otherwise today.
The goal is to send an arbitrary command to the target and the passthru
command is AFAIK the only solution. If we have something better
I'm sure they will be ready to use it.

Regards,
Marta