]> git.openfabrics.org - ~shefty/rdma-win.git/commit
etc/comp_channel: fix lost event problem
authorshefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 23 Apr 2009 19:25:04 +0000 (19:25 +0000)
committershefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 23 Apr 2009 19:25:04 +0000 (19:25 +0000)
commit21a23dd8d91ee697b06b44fa21036ee82944d62d
treebe33016b8ce3e878b134943a0d9326be00239109
parent0febb16eba69dc5579a029a0468660a7c0553b92
etc/comp_channel: fix lost event problem

The previous version of the completion channel was racy and would
occasionally lose events, resulting in users blocking indefinitely
if no new events occurred.  The most sure fix for this is to add
a thread to the completion manager that reaps events from an IO
completion port and dispatches them to the correct completion
channel.  This results in a 1-2% performance hit in libibverbs
bandwidth tests that wait on CQ, but actually works.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2127 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
trunk/etc/user/comp_channel.cpp
trunk/inc/user/comp_channel.h