summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/rdma
Commit message (Collapse)AuthorAgeFilesLines
* Update from trunk r1375509 through r1450773asyncstoreKim van der Riet2013-02-282-8/+25
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1451244 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3227: assert if application or reserved header overflows send buffer.Kenneth Anthony Giusti2011-04-292-5/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1097934 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3227: account for extra header bytes when computing data size for send ↵Kenneth Anthony Giusti2011-04-273-11/+14
| | | | | | buffers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1097102 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3007: Unique management identifier for connections.Alan Conway2011-02-011-0/+1
| | | | | | | | | | | | | | | Management was using remote socket address (host:port) to identify connections, but this is not a unique identifier. Both the local and remote addresses are needed to uniquely identify a connection - see http://www.faqs.org/rfcs/rfc793.html. This was causing management errors (multiple objects using same identifier) and cluster failures (invalid-arg exception) due to inconsistencies caused by the incorrect management map. This commit uses "localhost:localport-remotehost:remoteport" as a unique identifier. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1066220 13f79535-47bb-0310-9956-ffa450edef68
* Rename Rdma send buffer operations.Andrew Stitcher2010-12-236-19/+19
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052331 13f79535-47bb-0310-9956-ffa450edef68
* Changes due to review comments from Doug Ledford:Andrew Stitcher2010-12-235-19/+15
| | | | | | | | - Removed lock unsafe operation Rdma::QueuePair::bufferAvailable() and replaced the unavailable case with failing getBuffer(). - Improved asserts in the Rdma::QueuePair::getBuffer() code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052330 13f79535-47bb-0310-9956-ffa450edef68
* Implementation for v1 rdma protocol - append sent credit and flags wordAndrew Stitcher2010-12-233-26/+74
| | | | | | | | | after sent frame (instead of sending it in immediate data). Small change to send buffer management to support this to 0 dataCount when returning buffers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052329 13f79535-47bb-0310-9956-ffa450edef68
* Reduce rdma scatter gathers allocated per queue pair to 1 as iWarpAndrew Stitcher2010-12-231-2/+5
| | | | | | only supports 1 sge. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052328 13f79535-47bb-0310-9956-ffa450edef68
* Fix error handling for ibv_post_send() & ibv_port_recv()Andrew Stitcher2010-12-231-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052327 13f79535-47bb-0310-9956-ffa450edef68
* Allow for the case where we get an rdma reject because there is no one listeningAndrew Stitcher2010-12-231-4/+14
| | | | | | on the resolved address git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052326 13f79535-47bb-0310-9956-ffa450edef68
* Factored rdma sending/receiving code out to make manipulatingAndrew Stitcher2010-12-232-24/+42
| | | | | | credit isolated git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052325 13f79535-47bb-0310-9956-ffa450edef68
* Reject attempts to connect with version of rdma protocol we don't understandAndrew Stitcher2010-12-232-1/+17
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052324 13f79535-47bb-0310-9956-ffa450edef68
* Plumb rdma protocol version into Rdma::AsynchIOAndrew Stitcher2010-12-234-0/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052323 13f79535-47bb-0310-9956-ffa450edef68
* Add in some useful rdma warnings when we reject a connectionAndrew Stitcher2010-12-231-1/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052321 13f79535-47bb-0310-9956-ffa450edef68
* Add code to switch on/off byteswapping of RDMA ConnectionParamsAndrew Stitcher2010-12-232-15/+60
| | | | | | | | depending on detected protocol version. To give some backwards compatibility and fix a previous error which sent connection params in host order. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052320 13f79535-47bb-0310-9956-ffa450edef68
* Added test into RdmaClient to be sure the messages we receive are theAndrew Stitcher2010-12-231-8/+40
| | | | | | | same as the message we sent. Use a pseudo random non-repetetive stream as the message to be sure there is no reordering or repeating of messages. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052319 13f79535-47bb-0310-9956-ffa450edef68
* Allow RdmaClient to be interruptedAndrew Stitcher2010-12-231-2/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1052318 13f79535-47bb-0310-9956-ffa450edef68
* 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