Re: [PATCH RFC] RDMA/CMA: Allocate PS_TCP ports from the host TCPport space.

From: Steve Wise
Date: Tue Aug 07 2007 - 11:06:42 EST




Evgeniy Polyakov wrote:
Hi Steve.

On Tue, Aug 07, 2007 at 09:37:41AM -0500, Steve Wise (swise@xxxxxxxxxxxxxxxxxxxxx) wrote:
+static int cma_get_tcp_port(struct rdma_id_private *id_priv)
+{
+ int ret;
+ struct socket *sock;
+
+ ret = sock_create_kern(AF_INET, SOCK_STREAM, IPPROTO_TCP, &sock);
+ if (ret)
+ return ret;
+ ret = sock->ops->bind(sock,
+ (struct socketaddr *)&id_priv->id.route.addr.src_addr,
+ ip_addr_size(&id_priv->id.route.addr.src_addr));

If get away from talks about broken offloading, this one will result in
the case, when usual network dataflow can enter private rdma land, i.e.
after bind succeeded this socket is accessible via any other network
device. Is it inteded?
And this is quite noticeble overhead per rdma connection, btw.


I'm not sure I understand your question? What do you mean by "accessible"? The intention is to _just_ reserve the addr/port. The socket struct alloc and bind was a simple way to do this. I assume we'll have to come up with a better way though. Namely provide a low level interface to the port space allocator allowing both rdma and the host tcp stack to share the space without
requiring a socket struct for rdma connections.

Or maybe we'll come up a different and better solution to this issue...

Steve.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/