Hi all -
I've finally committed a version of the rdma one-sided component that
1) works and 2) in certain situations actually does rdma. I'll make
it the default when the BTLs are used as soon as one last bug is
fixed in the DDT engine.
However, there is still one outstanding issue. Some BTLs (like
Portals or MX) advertise the ability to do a put but place
restrictions on the put that only work for OB1. For example, both
can only do an RDMA that starts where the prepare_dst() / prepare_src
() call said the target buffer was. This isn't a problem for OB1,
but kind of defeats the purpose of one-sided ;). There's also a
reference count (I believe) in the Portals put/get code that would
make life interesting if a descriptor was doing multiple RDMA ops at
once.
I was thinking that the easy way to solve this was to add a flag
(FAKE_RDMA was the current running favorite, since we've used it
before for different meaning :) ) to the components that have
behaviors that work for OB1, but not a generalized rdma interface. I
was wondering what people thought of this idea and if they had any
preference for naming the flag.
Brian