public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Shlomo Pongratz <shlomop-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
To: "Hefty,
	Sean" <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	shlomop-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org
Cc: Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Notes on XRC
Date: Mon, 25 Mar 2013 11:32:01 +0200	[thread overview]
Message-ID: <51501991.5020105@mellanox.com> (raw)

Hi Sean,

I'm experimenting XRC with a real application and I want to share my 
thoughts.

A natural way to pass the SRQ's QPN is to use the "private_data" of the 
"rdma_conn_param", however this area is limited to 56 octets and since 
each QPN occupies 3 octets that leaves us with 18 SRQ. I suggest to 
increase the size of the private data, or to find a more convenient way 
to pass the SRQ's QPM, one that doesn't use extra ports or out-of-band 
communication (socket).

Another issue is of backwards compatibility of applications.  Assume an 
application uses a well known port, and want to allow both new XRC 
enabled clients and old RC clients. It seems that this is possible using 
the "rdma_create_ep" API with appropriate "rdma_addrinfo" one that 
"rdma_getaddrinfo" resolved with QP type "IBV_QPT_XRC_RECV" and one with 
"IBV_QPT_RC" one the same port (I hope this is allowed). A client on the 
other side will first try to connect to the XRC and if it fails will 
fall-back to RC.

However, a server usually uses "rdma_create_id" to associate an event 
handler with an id and then bind the id to an address, and accept 
connection requests asynchronously, but with these API, AFAIK there is 
no way to pass the required hints.

I assume I can use the "private_data" of the "rdma_conn_param" to 
distinguish between XRC enabled clients and servers and old ones, but it 
doesn't seems clean, as it is implicit and not explicit.

Best regards,

S.P.

--
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

             reply	other threads:[~2013-03-25  9:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-25  9:32 Shlomo Pongratz [this message]
     [not found] ` <51501991.5020105-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-03-25 16:27   ` Notes on XRC Hefty, Sean
     [not found]     ` <1828884A29C6694DAF28B7E6B8A823736F367A8A-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-26  9:59       ` Shlomo Pongratz
     [not found]         ` <5151718A.6090907-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-03-26 15:55           ` Hefty, Sean
     [not found]             ` <1828884A29C6694DAF28B7E6B8A823736F368244-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-26 20:50               ` Shlomo Pongratz

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=51501991.5020105@mellanox.com \
    --to=shlomop-vpraknaxozvwk0htik3j/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ogerlitz-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