[ofw] RE: [PATCH] Support for ND over WV (incomplete)
Sean Hefty
sean.hefty at intel.com
Tue May 12 14:44:20 PDT 2009
>Here's the prototype for the DisconnectAndFlush method that would be needed for
>an ND provider over WV.
>
>I don't have any code to implement that, but for now it could be implemented as
>returning an error status. This mainly gets the WV interfaces in place for the
>2.1 release.
>
>Hopefully not too many things pop up when we get to the actual implementation.
>
>I changed the interface GUID since the interface changed.
>
>Thoughts/comments?
I believe these are the issues that need to be dealt with:
- We can safely modify the QP state to error when:
a) a DREQ has been received
b) a DREP has been received
- CM callbacks are at dispatch.
- For a) we can modify to error in the downcall from userspace
We just need to know if a DREQ has been received
(Note that all other QP modify calls are done in downcalls.)
- For b) we cannot call modify in the CM callback
The last bullet is what needs to be dealt with. The kernel could store the
QpId with the WV_ENDPOINT structure when EP:Accept() is called, but it still
needs to queue the modify call to another thread.
The WV ND provider could probably handle this by allocating a thread and
separating the ND:Disconnect call into two WV calls, Disconnect and Modify. It
should be possible to handle this in the kernel as well, but it still requires a
thread switch. I think we need to look at the advantages of these two
approaches, unless someone can come up with a third approach.
The only advantage I can think of for handling this in the kernel depends on
having a QP modify call that can occur at dispatch. Regardless of which
approach is used, I think we can handle it without changing the API or IOCTL
interfaces.
- Sean
More information about the ofw
mailing list