Re: [openib-general] Re: RDMA Generic Connection Management

2005-09-07 Thread James Lentini
On Fri, 2 Sep 2005, Roland Dreier wrote: Roland Yes, but what is the generic way? James The generic way would be to handle this in a common James layer. For the IB verbs + RDMA connection API to be as easy James to use as the sockets API, then it needs to make this issue

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-31 Thread James Lentini
On Tue, 30 Aug 2005, Roland Dreier wrote: I just committed this SRP fix, which should make sure we don't use a device after it's gone. And it actually simplifies the code a teeny bit... The device could still be used after it's gone. For example: - the user is configuring SRP via sysfs.

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-31 Thread Roland Dreier
James The device could still be used after it's gone. For James example: James - the user is configuring SRP via sysfs. The thread in James srp_create_target() has just called ib_sa_path_rec_get() James [srp.c line 1209] and is waiting for the path record query James to

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-31 Thread Yaron Haviv
-Original Message- From: [EMAIL PROTECTED] [mailto:openib-general- [EMAIL PROTECTED] On Behalf Of Roland Dreier Sent: Tuesday, August 30, 2005 2:36 PM To: Talpey, Thomas Cc: openib-general@openib.org Subject: Re: [openib-general] Re: RDMA Generic Connection Management Thomas

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-31 Thread Sean Hefty
Yaron Haviv wrote: If all the ULPs need to do exactly the same, or the implementation is different for IB/iWarp, than we should probably do it under the API like its defined in kDAPL. To do this means destroying QPs, CQs, PDs, MRs, etc. under the API. I don't see that you want to do this.

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-31 Thread Talpey, Thomas
At 02:06 PM 8/31/2005, Yaron Haviv wrote: Also note that with Virtual machines this type of event may be more frequent and we may want to decouple the ULPs from the actual hardware s/may want/definitely want/ Tom. ___ openib-general mailing list

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-31 Thread Michael Krause
At 07:46 AM 8/31/2005, James Lentini wrote: On Tue, 30 Aug 2005, Roland Dreier wrote: I just committed this SRP fix, which should make sure we don't use a device after it's gone. And it actually simplifies the code a teeny bit... The device could still be used after it's gone. For example: -

[openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Guy German
On Mon, 2005-08-29 at 14:21 -0700, Sean Hefty wrote: Michael S. Tsirkin wrote: How is this different from what we have with ib_verbs now? With ib_verbs, users receive notification of device addition/removal. This interface doesn't require receiving that notification. Why should it be part

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread James Lentini
On Tue, 30 Aug 2005, Guy German wrote: I don't understand the difference between handling a device received in cma_get_device and device received in ib_client.add ... Consumers that receive a device via the ib_client.add callback will receive a notification that it is no longer available

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Michael Wont users also activate verbs directly anyway, and so be Michael required to handle this notification? In the current verbs API, consumers only receive device pointers from their client-add callback. They may use that pointer until they return from the corresponding

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Guy Couldn't consumers be registered as clients _before_ they Guy call cma_get_device ? Yes, consumers had better continue to use ib_register_client. The question is how to define the cma_get_device API so that consumers can handle hotplug correctly. And we need to make it simple enough

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Steve Wise
: RDMA Generic Connection Management On Tue, 30 Aug 2005, Guy German wrote: I don't understand the difference between handling a device received in cma_get_device and device received in ib_client.add ... Consumers that receive a device via the ib_client.add callback will receive

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Steve I thought all ULPs needed to register as an IB client Steve regardless? Right now they do, because there's no other way to get a struct ib_device pointer. If we add a new API that returns a struct ib_device pointer, then inevitably consumers will use it instead of the current

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Steve Wise
not be a bad thing... Stevo. -Original Message- From: Roland Dreier [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 30, 2005 12:13 PM To: Steve Wise Cc: 'James Lentini'; 'Guy German'; openib-general@openib.org Subject: Re: [openib-general] Re: RDMA Generic Connection Management

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Talpey, Thomas
At 01:12 PM 8/30/2005, Roland Dreier wrote: Steve I thought all ULPs needed to register as an IB client Steve regardless? Right now they do, because there's no other way to get a struct ib_device pointer. If we add a new API that returns a struct ib_device pointer, then inevitably

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Thomas Are you telling us that RPC/RDMA (for example) has to Thomas handle hotplug events just to use IB? Isn't that the job Thomas of a lower layer? NFS/Sockets don't have to deal with Thomas these, f'rinstance. Yes, if you want to talk directly to the device then you have to

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Steve You could enforce that ulps must register as clients. Then Steve get_ib_device() or whatever would only work if the client Steve ULP is registered... I don't think this really solves anything. You still have all sorts of races to handle. For example, a device could be removed

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Talpey, Thomas
At 02:01 PM 8/30/2005, Roland Dreier wrote: Thomas Are you telling us that RPC/RDMA (for example) has to Thomas handle hotplug events just to use IB? Isn't that the job Thomas of a lower layer? NFS/Sockets don't have to deal with Thomas these, f'rinstance. Yes, if you want to talk

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Thomas Verbs don't do that? Not as they are currently defined. And I don't think we want to add reference counting (aka cache-line pingpong) into every verbs call including the fast path to make sure that a device doesn't go away in the middle of the call. - R.

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Talpey, Thomas
At 02:15 PM 8/30/2005, Roland Dreier wrote: Thomas Verbs don't do that? Not as they are currently defined. And I don't think we want to add reference counting (aka cache-line pingpong) into every verbs call including the fast path to make sure that a device doesn't go away in the middle of

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Thomas Well, you're saying somebody has to do it, right? Is it Thomas easier to fob this off to upper layers that (frankly) Thomas don't care what hardware they're talking to!? This means Thomas we have N copies of this, and N ways to do it. Talk about Thomas cacheline

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Talpey, Thomas
kDAPL does this! :-) At 02:35 PM 8/30/2005, Roland Dreier wrote: Thomas Well, you're saying somebody has to do it, right? Is it Thomas easier to fob this off to upper layers that (frankly) Thomas don't care what hardware they're talking to!? This means Thomas we have N copies of

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Steve Wise
, August 30, 2005 1:59 PM To: Roland Dreier Cc: Steve Wise; openib-general@openib.org Subject: Re: [openib-general] Re: RDMA Generic Connection Management kDAPL does this! :-) At 02:35 PM 8/30/2005, Roland Dreier wrote: Thomas Well, you're saying somebody has to do it, right

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
Thomas kDAPL does this! :-) Does what? As far as I can tell kDAPL just ignores hotplug and routing and hopes the problems go away ;) I do see some racy uses of atomic variables in kDAPL, but they don't seem to protect against anything really. - R.

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Caitlin Bestler
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Steve Wise Sent: Tuesday, August 30, 2005 12:01 PM To: 'Talpey, Thomas'; 'Roland Dreier' Cc: openib-general@openib.org Subject: RE: [openib-general] Re: RDMA Generic Connection Management

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Talpey, Thomas
At 03:08 PM 8/30/2005, Roland Dreier wrote: Thomas kDAPL does this! :-) Does what? As far as I can tell kDAPL just ignores hotplug and routing and hopes the problems go away ;) I was referring to kDAPL's architecture, which does in fact address hotplug with async evd upcalls. In the early

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Talpey, Thomas
At 04:10 PM 8/30/2005, Talpey, Thomas wrote: At 03:08 PM 8/30/2005, Roland Dreier wrote: Thomas kDAPL does this! :-) Does what? As far as I can tell kDAPL just ignores hotplug and routing and hopes the problems go away ;) I was referring to kDAPL's architecture, which does in fact address

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread James Lentini
On Tue, 30 Aug 2005, Roland Dreier wrote: Thomas kDAPL does this! :-) Does what? As far as I can tell kDAPL just ignores hotplug and routing and hopes the problems go away ;) I do see some racy uses of atomic variables in kDAPL, but they don't seem to protect against anything

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Steve Wise
-general@openib.org Subject: Re: [openib-general] Re: RDMA Generic Connection Management At 03:08 PM 8/30/2005, Roland Dreier wrote: Thomas kDAPL does this! :-) Does what? As far as I can tell kDAPL just ignores hotplug and routing and hopes the problems go away ;) I was referring

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
James For example when SRP's srp_add_one() function is called, I James don't see a synchronization primitive setup to do James this. Suppose for example that a thread was in SRP's CM James callback handler, srp_cm_handler(), just before the call to James ib_modify_qp() on line

Re: [openib-general] Re: RDMA Generic Connection Management

2005-08-30 Thread Roland Dreier
I just committed this SRP fix, which should make sure we don't use a device after it's gone. And it actually simplifies the code a teeny bit... - R. --- ib_srp.c(revision 3262) +++ ib_srp.c(working copy) @@ -1030,7 +1030,7 @@ static void srp_release_class_dev(struct struct

[openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Michael S. Tsirkin
Quoting r. Guy German [EMAIL PROTECTED]: 1. get_device returns device and port, according the local routing tables, synchronously. ib_cma_connect calls the at module for address resolving (cache handled) before calling the cm_connect. How does one cancel address resolution request? 2.

[openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Michael S. Tsirkin
Quoting r. Roland Dreier [EMAIL PROTECTED]: Subject: Re: RDMA Generic Connection Management James What happens if multiple devices can reach the destination James address? How will they be enumerated to the consumer? I guess we need to move towards the full horror of

RE: [openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Caitlin Bestler
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael S. Tsirkin Sent: Monday, August 29, 2005 1:19 PM To: Roland Dreier Cc: openib-general@openib.org Subject: [openib-general] Re: RDMA Generic Connection Management I think that yes

[openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Michael S. Tsirkin
Quoting r. Roland Dreier [EMAIL PROTECTED]: Subject: Re: RDMA Generic Connection Management Sean To focus on something a little different... do we want an Sean API that returns a pointer to a device structure? Sean Specifically, how does this affect device removal? Hey, that's

[openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Roland Dreier
Michael Roland, could you please explain what the problem is? If Michael you have an outstanding request, and all devices went Michael down, cant it simply be completed with an error status? Something like: get_device_for_route(device); /* hot unplug device */

[openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Michael S. Tsirkin
Quoting r. Sean Hefty [EMAIL PROTECTED]: Subject: Re: RDMA Generic Connection Management Guy German wrote: - ib_cma_get_device (...) /* get device(1) or device+path(2) */ - pd = ib_alloc_pd(...) /* pd allocated in the given device */ - qp = ib_cma_create_qp(...) /* qp returned in init state

[openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Michael S. Tsirkin
Quoting r. Roland Dreier [EMAIL PROTECTED]: Subject: Re: RDMA Generic Connection Management Michael Roland, could you please explain what the problem is? If Michael you have an outstanding request, and all devices went Michael down, cant it simply be completed with an error

[openib-general] Re: RDMA Generic Connection Management

2005-08-29 Thread Sean Hefty
Michael S. Tsirkin wrote: How is this different from what we have with ib_verbs now? With ib_verbs, users receive notification of device addition/removal. This interface doesn't require receiving that notification. I think that reasonable ULPs must register for hotplug events in the ib