[openib-general][PATCH][kdapl]: FMR and EVD patch
Guy German
guyg at voltaire.com
Tue Aug 30 07:53:33 PDT 2005
On Tue, 2005-08-30 at 10:40 -0400, James Lentini wrote:
> I'm not comfortable with a solution that relies on vendor specific
> behavior for such a critical mechanism.
I believe I suggested a solution for the general case as well:
1. request CQ notification
2. if cq !empty request CQ notification _again_
> What if dapl_evd_modify_upcall() worked as follows
>
> dapl_evd_modify_upcall
> lock evd with spin_lock_irqsave
> if CQ upcalls need to be enabled
> ib_req_notify_cq
> setup the evd upcall
> unlock evd with spin_unlock_irqrestore
> if ib_peek_cq reports unreaped work completions
> call dapl_evd_dto_callback
>
> I realize that the call to dapl_evd_dto_callback() will potentially be
> racing with a CQ upcall, but I believe that the logic in
> dapl_evd_dto_callback() handles that correctly.
I don't think it's a good idea to call the consumer _again_ in the
consumer's own context ...
Usually the upcall is interrupt/tasklet context that wakes up the thread
- now, you suggest that the thread will "wakeup" itself (when it is,
actually, already running and about to go to sleep)
Guy.
More information about the general
mailing list