On 11/14/2013 9:30 AM, Or Gerlitz wrote:
On 14/11/2013 02:19, Hefty, Sean wrote:
The patch series is around for couple of weeks already and went through the review of Sean and Bart, with all their feedback being applied. Also Sagi and Co enhanced krping to fully cover (and test...) the proposed API and driver implementation
Somewhat separate from this specific patch, this is my concern.

There are continual requests to modify the kernel verbs interfaces. These requests boil down to exposing proprietary capabilities to the latest version of some vendor's hardware. In turn, these hardware specific knobs bleed into the kernel clients.

At the very least, it seems that there should be some sort of discussion if this is a desirable property of the kernel verbs interface, and if this is the architecture that the kernel should continue to pursue. Or, is there an alternative way of providing the same ability of coding ULPs to specific HW features, versus plugging every new feature into 'post send'?

Sean,

Being concrete + re-iterating and expanding what I wrote you earlier on the V1 thread @ http://marc.info/?l=linux-rdma&m=138314853203389&w=2when you said

Sean > Maybe we should rethink the approach of exposing low-level hardware constructs to every Sean > distinct feature of every vendor's latest hardware directly to the kernel ULPs.

To begin with T10 DIF **is** industry standard, which is to be used in production storage systems, the feature here is T10 DIF acceleration for upstream kernel storage drivers such as iSER/SRP/FCoE initiator/targets that use RDMA and are included in commercial distributions which are used by customers. Note that this/similar feature is supported by some FC cards too, so we want RDMA to be competitive.

This work is part of larger efforts which are done nowadays in other parts of the kernel such as the block layer, the upstream kernel target and more to support T10, its "just" the RDMA part.

Sagi and team made great effort to expose API which isn't tied to specific HW/Firmware API. And in that respect, the verbs API is coupled with industry standards and by no means with specific HW features. Just as quick example, the specific driver/card (mlx5 / ConnectIB) for which the news verbs are implemented uses three objects for its T10 support, named BSF, KLM and PSV - you can be sure, and please check us that there is no sign for them in the verbs API, they only live within the mlx5 driver.

If you see a vendor specific feature/construct that appears in the proposed verbs API changes, let us know.

> [...] versus plugging every new feature into 'post send'?

Its a new feature indeed but its a feature which comes into play when submitting RDMA work-requests to the HCA and for performance reasons must be subject to pipe-lining in the form of batched posting and hence has very good fit as
a sub operation of post-send.

Sean > There are continual requests to modify the kernel verbs interfaces. These requests boil down to exposing proprietary capabilities Sean > to the latest version of some vendor's hardware. In turn, these hardware specific knobs bleed into the kernel clients.

non-T10 examples (please) ?!

Or.

Hey Sean,

Just to add on Or's input,
I really don't agree this is some specific HW capability exposed to ULPs. This feature allows offloading data-integrity handling over RDMA which is a wider concept then just T10-DIF (although we currently expose T10-DIF alone). Signature verbs API does not introduce something specific to Mellanox, we think API is generic enough to allow each vendor to support signature with some degree of freedom. Just needs to implement the 3-steps: create signature enabled MR, bind MR to signature attributes (work-request) and check for signature status at the end of the transaction.

Regarding plugging into post_send, The signature operation is a fast-path operation and I agree with Or regarding the value of batching work requests. Moreover, I think this is a separate discussion. If we agree on another API posting on the send-queue, it will require work also for migrating fastreg and bind_mw extensions. So how about going with current framework, and start a discussion on your concern "taking non-SEND WR extensions out of post_send".

Sagi.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to