public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Sagi Grimberg <sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
To: "Hefty, Sean" <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Oren Duer <oren-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH RFC 2/9] IB/core: Introduce Signature Verbs API
Date: Sun, 20 Oct 2013 15:55:58 +0300	[thread overview]
Message-ID: <5263D2DE.8010500@mellanox.com> (raw)
In-Reply-To: <1828884A29C6694DAF28B7E6B8A8237388CE2BFF-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>

On 10/18/2013 1:51 AM, Hefty, Sean wrote:
>> @@ -885,6 +901,19 @@ struct ib_send_wr {
>>   			u32                      rkey;
>>   			struct ib_mw_bind_info   bind_info;
>>   		} bind_mw;
>> +		struct {
>> +			struct ib_sig_attrs    *sig_attrs;
>> +			struct ib_mr	       *sig_mr;
>> +			int			access_flags;
>> +			/* Registered data mr */
>> +			struct ib_mr	       *data_mr;
>> +			u32			data_size;
>> +			u64			data_va;
>> +			/* Registered protection mr */
>> +			struct ib_mr	       *prot_mr;
>> +			u32			prot_size;
>> +			u64			prot_va;
>> +		} sig_handover;
> At what point do we admit that this is a ridiculous structure?

If you are referring to ib_send_wr, I agree, shall we modify it to a 
union of typedefs so it becomes more readable?

> Help me understand what this WR is doing.  Is this telling the HCA to copy data between local MRs?  What is a 'data MR' versus a 'protected MR'?  (I'm not hip on T10-DIF.)

No data copy, god forbids... :)

Let me start by giving a short intro on signature (and T10-DIF).
In signature world, data may exist with protection information which is 
the guarding the data. In T10-DIF (Data Integrity Fields) for example, 
these are 8-byte guards which includes CRC for each 512 bytes of data 
(block).
An HCA which support signature offload, is expected to validate that the 
data is intact (each block matches its guard) and send it correctly over 
the wire (in T10-DIF case the data and protection should be interleaved 
i.e. 512B of data followed by 8B of protection guard) or alternatively, 
validate data (+ protection) coming from the wire and write it to the 
associated memory areas.
In the general case, the data and the protection guards may lie in 
different memory areas. SCSI mid-layer for instance, passes the 
transport driver 2 buffers using 2 scatterlists.
The transport driver (or application in the general case), is expected 
to register each buffer (as it normally would in order to use RDMA) 
using 2 MRs.

The signature handover operation is binding all the necessary 
information for the HCA together: where is the data (data_mr), where is 
the protection information (prot_mr), what are the signature properties 
(sig_attrs).
Once this step is taken (WR is posted), a single MR (sig_mr) describes 
the signature handover operation and can be used to perform RDMA under 
signature presence.
Once the HCA will perform RDMA over this MR, it will take into account 
the signature context of the transaction and will follow the signature 
attributes configured.

Hope this helps,

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

  parent reply	other threads:[~2013-10-20 12:55 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-15 15:38 [PATCH RFC 0/9] Introduce Signature feature Sagi Grimberg
     [not found] ` <1381851510-17290-1-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-10-15 15:38   ` [PATCH RFC 1/9] IB/core: Introduce indirect and protected memory regions Sagi Grimberg
     [not found]     ` <1381851510-17290-2-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-10-17 22:43       ` Hefty, Sean
     [not found]         ` <1828884A29C6694DAF28B7E6B8A8237388CE2BE0-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-10-20 13:05           ` Sagi Grimberg
     [not found]         ` <5263CC09.6030103@mellanox.com>
     [not found]           ` <5263CC09.6030103-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-10-21 14:39             ` Hefty, Sean
2013-10-15 15:38   ` [PATCH RFC 2/9] IB/core: Introduce Signature Verbs API Sagi Grimberg
     [not found]     ` <1381851510-17290-3-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-10-17 22:51       ` Hefty, Sean
     [not found]         ` <1828884A29C6694DAF28B7E6B8A8237388CE2BFF-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-10-20 12:55           ` Sagi Grimberg [this message]
     [not found]             ` <5263D2DE.8010500-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-10-21 14:34               ` Hefty, Sean
     [not found]                 ` <1828884A29C6694DAF28B7E6B8A8237388CEA91E-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-10-21 16:12                   ` Sagi Grimberg
     [not found]                     ` <52655282.1000505-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-10-22 16:41                       ` Hefty, Sean
     [not found]                         ` <1828884A29C6694DAF28B7E6B8A8237388CEE1C7-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-10-22 17:46                           ` Sagi Grimberg
     [not found]                             ` <5266BA11.6090300-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-10-22 18:20                               ` Hefty, Sean
     [not found]                                 ` <1828884A29C6694DAF28B7E6B8A8237388CEE286-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-10-23 10:42                                   ` Sagi Grimberg
2013-10-15 15:38   ` [PATCH RFC 3/9] IB/mlx5, mlx5_core: Support for create_mr and destroy_mr Sagi Grimberg
2013-10-15 15:38   ` [PATCH RFC 4/9] IB/mlx5: Initialize mlx5_ib_qp signature related Sagi Grimberg
2013-10-15 15:38   ` [PATCH RFC 5/9] IB/mlx5: Break wqe handling to begin & finish routines Sagi Grimberg
2013-10-15 15:38   ` [PATCH RFC 6/9] IB/mlx5: remove MTT access mode from umr flags helper function Sagi Grimberg
2013-10-15 15:38   ` [PATCH RFC 7/9] IB/mlx5: Support IB_WR_REG_SIG_MR Sagi Grimberg
2013-10-15 15:38   ` [PATCH RFC 8/9] IB/mlx5: Collect signature error completion Sagi Grimberg
2013-10-15 15:38   ` [PATCH RFC 9/9] IB/mlx5: Publish support in signature feature Sagi Grimberg

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=5263D2DE.8010500@mellanox.com \
    --to=sagig-vpraknaxozvwk0htik3j/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=oren-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox