Ok, glad I got this conversation started :)
So, we need a slight redesign to determine the cm method (unless forced
via commandline arg). This can be determined by calling all the
individual open routines, and having them return a priority based on
their ability to function. For example, the xoob open function will
check the mca_btl_openib_component.num_xrc_qps for a non-zero value and
return the priority based on that.
Of course, if forced then it will only call that specific open function
and throw any relevant errors as necessary.
If this sounds sane, then let me know and I'll start coding it up.