Messages in this thread | | | Date | Tue, 14 Apr 2015 13:43:11 -0400 | From | "ira.weiny" <> | Subject | Re: [PATCH v3 07/28] IB/Verbs: Reform IB-ulp ipoib |
| |
On Tue, Apr 14, 2015 at 11:25:15AM -0600, Jason Gunthorpe wrote: > On Tue, Apr 14, 2015 at 10:18:07AM -0400, ira.weiny wrote: > > > After more thought and reading other opinions, I must agree we should not > > have cap_foo_dev. > > I looked at it a bit, and I think Sean has also basically said, CM > does not support certain mixed port combinations. iWarp and IB simply > cannot be mixed with the current CM and it doesn't look easy to fix > that. We can fix a few point areas simply, but not all of it. > > So we have to have the _dev tests, only to fill the CM's need and they > must have the all true/all false/BUG semantics CM demands. > > Verify on register. > > > While the ports in ib_sa and ib_umad probably can be orthogonal the current > > implementation does not support that and this patch series obscures that a bit. > > Really? Do you see any bugs/missed things? Both were made port > orthogonal when RoCEE was added, because RoCEE needs that.
They are not completely orthogonal:
A failure to init port 2 ends up ends up "killing" port 1 and releasing the device associated resources.
static void ib_umad_add_one(struct ib_device *device) { ... if (ib_umad_init_port(device, i, umad_dev, &umad_dev->port[i - s])) goto err; ...
err: while (--i >= s) { if (!cap_ib_mad(device, i)) continue;
ib_umad_kill_port(&umad_dev->port[i - s]); }
kobject_put(&umad_dev->kobj); }
> > CM wasn't because RoCEE and IB seem to use almost the same code, > though I wonder if mixing really works 100%..
The support can (and should) be orthogonal but the implementation is incomplete.
Ira
> > Jason
| |