[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