summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/rdma
Commit message (Collapse)AuthorAgeFilesLines
* Add state constraint annotations to Rdma::AsynchIO;Andrew Stitcher2010-10-121-4/+14
| | | | | | | Simplify state machine slightly git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021831 13f79535-47bb-0310-9956-ffa450edef68
* Improve the performance of the Rdma::AsynchIO by using a veryAndrew Stitcher2010-10-122-7/+62
| | | | | | | | simple state machine to reduce the context switch for notifyPendingWrite() by allowing it to "hijack" existing concurrent processing on an IO thread. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021823 13f79535-47bb-0310-9956-ffa450edef68
* Rewrite Rdma::AsynchIO to use deferred code rather than a state machine:Andrew Stitcher2010-10-122-238/+26
| | | | | | | | This eliminates a lot of difficult to understand error prone state machine code git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021822 13f79535-47bb-0310-9956-ffa450edef68
* Serialise close into the data callbacks:Andrew Stitcher2010-10-122-4/+22
| | | | | | | | | Rejig Rdma::ConnectionManager to have a stop function with a callback and use this to ensure that the Rdma::Connector used by qpid::sys::RdmaConnector is correctly deleted only after it has been actually stopped git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021819 13f79535-47bb-0310-9956-ffa450edef68
* Make sure that Rdma::Listener can generate no more callbacks after it receivesAndrew Stitcher2010-10-121-0/+12
| | | | | | | a disconnected event for a connection id. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021818 13f79535-47bb-0310-9956-ffa450edef68
* If we have already stopped an Rdma connection, but we still get a data eventAndrew Stitcher2010-10-121-0/+3
| | | | | | | ignore it git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021817 13f79535-47bb-0310-9956-ffa450edef68
* Handle Rdma Flush events - instead of reporting to the application justAndrew Stitcher2010-10-121-0/+16
| | | | | | | | return write buffers to the pool and do nothing for recv buffers as the connection must be in an error state now. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021816 13f79535-47bb-0310-9956-ffa450edef68
* Fix Rdma test server so that you can interrupt it again (since makingAndrew Stitcher2010-10-121-3/+9
| | | | | | | Poller run loop impervious to signals) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1021815 13f79535-47bb-0310-9956-ffa450edef68
* Fix to allow compilation with libibverbs 1.1.2Andrew Stitcher2010-09-082-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995165 13f79535-47bb-0310-9956-ffa450edef68
* Stop the client side Rdma code from receiving connection events before the ↵Andrew Stitcher2010-09-082-0/+5
| | | | | | | | data events are stopped to avoid any events after the Rdma::Connector is deleted git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995145 13f79535-47bb-0310-9956-ffa450edef68
* Delay daemon side Rdma connection disconnect() so that it happens serialisedAndrew Stitcher2010-09-082-0/+17
| | | | | | to the data channel for the connection. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995143 13f79535-47bb-0310-9956-ffa450edef68
* Avoid Rdma::AsynchIO leaking when stopped without being drained andAndrew Stitcher2010-09-081-1/+3
| | | | | | | add in asserts to be sure that you call stopped and drained callbacks in the correct state git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995142 13f79535-47bb-0310-9956-ffa450edef68
* Only delete Rdma server side connections when the client disconnects -Andrew Stitcher2010-09-081-0/+4
| | | | | | | this avoids a race between the disconnect event and deleting the connection upon closing. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995141 13f79535-47bb-0310-9956-ffa450edef68
* Rearrange drain queue code so that it does't call the callback unless thereAndrew Stitcher2010-09-081-3/+8
| | | | | | are no outstanding write buffers git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995137 13f79535-47bb-0310-9956-ffa450edef68
* Coalesce checking for the drained and stopped conditions into a singleAndrew Stitcher2010-09-082-17/+22
| | | | | | function git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995136 13f79535-47bb-0310-9956-ffa450edef68
* Reorder some code for improved intellegibilityAndrew Stitcher2010-09-081-15/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995135 13f79535-47bb-0310-9956-ffa450edef68
* Remove write after frees in Rdma::AsynchIO and qpid::client::RdmaConnectorAndrew Stitcher2010-09-081-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995134 13f79535-47bb-0310-9956-ffa450edef68
* Dispose the queue pair before acknowledging channel events when destroyingAndrew Stitcher2010-09-081-3/+6
| | | | | | Rdma::QueuePair to stop any events being processed during destruction git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995133 13f79535-47bb-0310-9956-ffa450edef68
* Use structures with much less dynamic allocation to hold rdma buffersAndrew Stitcher2010-09-082-18/+22
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995132 13f79535-47bb-0310-9956-ffa450edef68
* Refactored Rdma write buffers to be controlled by the rdma_wrapper layerAndrew Stitcher2010-09-084-56/+67
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995131 13f79535-47bb-0310-9956-ffa450edef68
* Move rdma recv buffers to a single large allocation rather than piecemeal ↵Andrew Stitcher2010-09-085-10/+53
| | | | | | allocations git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995130 13f79535-47bb-0310-9956-ffa450edef68
* Stop using references to intrusive_ptr in Rdma codeAndrew Stitcher2010-09-081-6/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995127 13f79535-47bb-0310-9956-ffa450edef68
* Move the RDMA buffer tracking/destruction into the QueuePair class fromAndrew Stitcher2010-09-084-9/+7
| | | | | | the RdmaIO class. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995126 13f79535-47bb-0310-9956-ffa450edef68
* Changed RDMA testing server not to use the lower level Rdma buffersAndrew Stitcher2010-09-081-11/+35
| | | | | | | if it needs to queue messages to echo, but to suffer the double copy overhead of using its own buffers git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995125 13f79535-47bb-0310-9956-ffa450edef68
* Allow entry into notifyPendingWrite() if already stopped as it is too hardAndrew Stitcher2010-06-141-2/+2
| | | | | | | to eliminate a race that can cause this, and it is essentially harmless if ignored git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954499 13f79535-47bb-0310-9956-ffa450edef68
* Move QueuePair member in Rdma::AsynchIO to ensure that it get destroyed beforeAndrew Stitcher2010-06-142-4/+6
| | | | | | | the buffers it uses, so that there is no hardware activity using them after they are deleted git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954498 13f79535-47bb-0310-9956-ffa450edef68
* Combine Rdma::Buffer and ibv_sge needed to send itAndrew Stitcher2010-06-145-51/+49
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954496 13f79535-47bb-0310-9956-ffa450edef68
* Try to avoid getting into a state where we can't send credit because weAndrew Stitcher2010-06-141-1/+10
| | | | | | | sent the very last buffer without any credit. So in theory when we do have credit to send we should have a buffer and xmit credit to do it with. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954495 13f79535-47bb-0310-9956-ffa450edef68
* Added asserts to ensure that we catch it if xmitCredit isn't saneAndrew Stitcher2010-06-141-0/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954494 13f79535-47bb-0310-9956-ffa450edef68
* Allow stopping even if we've got outstanding write buffers.Andrew Stitcher2010-06-141-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954493 13f79535-47bb-0310-9956-ffa450edef68
* In Rdma::AsynchIO::stop():Andrew Stitcher2010-06-141-2/+4
| | | | | | | | | | | | - make sure we stop the underlying handle immediately whether or not we do the stopped callback now or have to defer it. In qpid::client::RdmaConnector: - make sure that the shutdown handler is called under all circumstances. - make sure that the destructor doesn't delete the aio if it is already deleted git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954492 13f79535-47bb-0310-9956-ffa450edef68
* Only set the draining flag when we delay calling the drained callback.Andrew Stitcher2010-06-141-2/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954491 13f79535-47bb-0310-9956-ffa450edef68
* Trivial code simplificationAndrew Stitcher2010-06-141-3/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954490 13f79535-47bb-0310-9956-ffa450edef68
* Removed unnecessary parameter from Rdma::AsynchIO::dataEvent()Andrew Stitcher2010-06-142-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954489 13f79535-47bb-0310-9956-ffa450edef68
* Fix RDMA for upstream changes which now require notification on shutdownAndrew Stitcher2010-05-184-51/+128
| | | | | | differently from before git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@945904 13f79535-47bb-0310-9956-ffa450edef68
* Rearrange RDMA wrapper class code so that the interface and implementationAndrew Stitcher2010-05-136-384/+462
| | | | | | are better separated. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@943771 13f79535-47bb-0310-9956-ffa450edef68
* Allow rdma_disconnect() to fail with EINVAL as it appearsAndrew Stitcher2010-05-132-2/+12
| | | | | | | | | to be necessary to call rdma_disconnect() after receiving a disconnection event in Infiniband, but it's not allowed on iWarp as the disconnect event has already disconnected the queue pair. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@943770 13f79535-47bb-0310-9956-ffa450edef68
* Fix memory error in previous SocketAddress refactoringAndrew Stitcher2010-01-265-27/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@903407 13f79535-47bb-0310-9956-ffa450edef68
* Used new SocketAddress class in rdma codeAndrew Stitcher2009-10-095-31/+21
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@823392 13f79535-47bb-0310-9956-ffa450edef68
* Tidied up namespace usageAndrew Stitcher2009-09-092-4/+18
| | | | | | Miscelleneous whitespace fixes git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@813094 13f79535-47bb-0310-9956-ffa450edef68
* Add directory to #includeAlan Conway2009-07-148-8/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
* Stop watching the acceptors dispatch handle before it is deleted in ssl and ↵Gordon Sim2009-06-032-1/+6
| | | | | | rdma plugins. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@781332 13f79535-47bb-0310-9956-ffa450edef68
* Whitespace fixesAndrew Stitcher2009-05-282-16/+16
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@779446 13f79535-47bb-0310-9956-ffa450edef68
* Fix compile breakage with different versions of librdma_cmAndrew Stitcher2009-01-271-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@738273 13f79535-47bb-0310-9956-ffa450edef68
* Added missing ASF licenseGordon Sim2008-12-151-0/+21
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@726684 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1438: Before registering the rdma daemon transport plugin checkAndrew Stitcher2008-11-073-2/+11
| | | | | | | whether there are any rdma devices - if not don't register git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@712182 13f79535-47bb-0310-9956-ffa450edef68
* Add #include qpid/sys/DispatchHandle.h, needed since DispatchHandle split ↵Stephen D. Huston2008-10-211-0/+1
| | | | | | out of Dispatcher.h in changes from QPID-1377 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706777 13f79535-47bb-0310-9956-ffa450edef68
* Removed the state lock from the RdmaIO codeAndrew Stitcher2008-09-232-95/+128
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@698276 13f79535-47bb-0310-9956-ffa450edef68
* RDMA bugfixes:Andrew Stitcher2008-09-192-12/+23
| | | | | | | | | | | | - Changed Rdma connection creation to allocate all necessary buffer memory immediately. This has the effect that no later buffer allocations happen which can fail so that once accepted connections won't fail because of lack of locked memory. - Fixed connection logic so we reject a new connection if we can't create the necessary handlers rather than kill the entire broker (this includes not enough locked memory) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@697101 13f79535-47bb-0310-9956-ffa450edef68
* Implementation of AMQP over RDMA protocols (Infiniband)Andrew Stitcher2008-09-118-283/+740
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@694143 13f79535-47bb-0310-9956-ffa450edef68