[openib-general] Re: 2.6.16-rc6-mm2: new RDMA CM EXPORT_SYMBOL's

Roland Dreier rdreier at cisco.com
Mon Mar 20 10:47:41 PST 2006


Putting this in -mm has generated more discussion than three postings
of the complete patch series to lkml.  Andrew, please don't ever turn
your powers to evil ;)

    Andrew> What code will use them?
    Andrew> Is it planned that this code be merged?

Anyway, there are three main users of these APIs:

 - A kernel module that allows userspace to use this IP-based RDMA
   connection abstraction.  It's my fault that this didn't make it
   into -mm: I didn't think it was quite as baked as the kernel side,
   and it's also more important to have the userspace interface stable
   before merging it upstream, so I didn't put it in my git tree.
   However, it should go into -mm, so I'll include it for next time.

 - iSER ("iSCSI over IB").  The feeling I get from Christoph et al is
   that this is pretty much ready to merge as well, but I'm not sure
   if it's being staged anywhere.

 - NFS/RDMA.  This is not ready to merge yet but it is being worked on
   with the idea of going upstream as soon as it's ready.

Looking at this list of exports, I do see a couple of things that
could maybe be improved:

    > +EXPORT_SYMBOL(rdma_wq);
    > +EXPORT_SYMBOL(rdma_translate_ip);
    > +EXPORT_SYMBOL(rdma_resolve_ip);
    > +EXPORT_SYMBOL(rdma_addr_cancel);

First, rdma_wq seems like a strange internal thing to be exporting.
Sean, why does more than one module need to use the same workqueue?

Second, the naming of rdma_addr_cancel() is not that symmetric with
the rdma_{translate,resolve}_ip() functions.  Unfortunately I'm just
clever enough to criticize, not clever enough to come up with a better
suggestion.

    Andrew> Please explain the thinking behind the choice of a non-GPL
    Andrew> export.  (Yes, we discussed this when inifiniband was
    Andrew> first merged, but it doesn't hurt to reiterate).

I don't think there's any deep thought behind it, except that these
exports (for the most part) form a high-level coherent API and there's
no desire by the original author to restrict things.

ip_dev_find() was originally a non-GPL export, then removed for a
while.  So it makes sense to just revert the first change.

 - R.



More information about the general mailing list