[ofw] ibal library callback model

Sean Hefty sean.hefty at intel.com
Tue Apr 7 11:17:13 PDT 2009


>For user-mode IBAL, there's a thread pool that handles IOCTL completions for CQ
>callbacks, CM callbacks, PnP callbacks, etc.  The threading there is controlled
>per object - you will only have a single callback per CEP, for example, as the
>CEP manager won't issue the next IOCTL for a CEP until the callback unwinds.
>Similarly, there's a single PnP IOCTL outstanding per PnP registration, so a
>single thread invoking callbacks for PnP events until the callback unwinds.
>Multiple PnP registrations should be able to see callbacks in parallel, though.
>
>I'd have to look at the code in more detail to give more precise answers, the
>above is off the top of my head.  If you can clarify what you're trying to
>understand that will help me give you more useful answers.

I'm trying to understand if a user can get simultaneous callbacks for the same
CM connection.

For example, I see the following call paths in ual_mgr.c:

__cb_thread_routine() -> cm_cb() -> __cm_handler() ->
__proc_conn() -> __proc_dreq()

I end up with two threads in this same code path.  I wanted to verify that the
same connection would not get simultaneous callbacks, and I wanted to confirm
that blocking in the callback could lead to a deadlock, depending on what was
being waited on.  In this case, blocking in a CM callback affects callbacks for
CQs. 




More information about the ofw mailing list