FairMQ: shared memory unmanaged region updates:

- use same mapping for sender/receiver (created/remote) region.
 - rename FairMQRegion -> FairMQUnmanagedRegion.
This commit is contained in:
Alexey Rybalchenko
2017-10-19 11:17:05 +02:00
committed by Mohammad Al-Turany
parent f7d3a5e8ae
commit 0bb866ff36
24 changed files with 212 additions and 327 deletions

View File

@@ -50,7 +50,7 @@ FairMQMessageZMQ::FairMQMessageZMQ(void* data, const size_t size, fairmq_free_fn
}
}
FairMQMessageZMQ::FairMQMessageZMQ(FairMQRegionPtr& /*region*/, void* data, const size_t size)
FairMQMessageZMQ::FairMQMessageZMQ(FairMQUnmanagedRegionPtr& /*region*/, void* data, const size_t size)
: fMessage()
{
// FIXME: make this zero-copy:

View File

@@ -21,7 +21,7 @@
#include <zmq.h>
#include "FairMQMessage.h"
#include "FairMQRegion.h"
#include "FairMQUnmanagedRegion.h"
class FairMQMessageZMQ : public FairMQMessage
{
@@ -29,7 +29,7 @@ class FairMQMessageZMQ : public FairMQMessage
FairMQMessageZMQ();
FairMQMessageZMQ(const size_t size);
FairMQMessageZMQ(void* data, const size_t size, fairmq_free_fn* ffn, void* hint = nullptr);
FairMQMessageZMQ(FairMQRegionPtr& region, void* data, const size_t size);
FairMQMessageZMQ(FairMQUnmanagedRegionPtr& region, void* data, const size_t size);
virtual void Rebuild();
virtual void Rebuild(const size_t size);

View File

@@ -64,7 +64,7 @@ FairMQMessagePtr FairMQTransportFactoryZMQ::CreateMessage(void* data, const size
return unique_ptr<FairMQMessage>(new FairMQMessageZMQ(data, size, ffn, hint));
}
FairMQMessagePtr FairMQTransportFactoryZMQ::CreateMessage(FairMQRegionPtr& region, void* data, const size_t size) const
FairMQMessagePtr FairMQTransportFactoryZMQ::CreateMessage(FairMQUnmanagedRegionPtr& region, void* data, const size_t size) const
{
return unique_ptr<FairMQMessage>(new FairMQMessageZMQ(region, data, size));
}
@@ -95,9 +95,9 @@ FairMQPollerPtr FairMQTransportFactoryZMQ::CreatePoller(const FairMQSocket& cmdS
return unique_ptr<FairMQPoller>(new FairMQPollerZMQ(cmdSocket, dataSocket));
}
FairMQRegionPtr FairMQTransportFactoryZMQ::CreateRegion(const size_t size) const
FairMQUnmanagedRegionPtr FairMQTransportFactoryZMQ::CreateUnmanagedRegion(const size_t size) const
{
return unique_ptr<FairMQRegion>(new FairMQRegionZMQ(size));
return unique_ptr<FairMQUnmanagedRegion>(new FairMQUnmanagedRegionZMQ(size));
}
FairMQ::Transport FairMQTransportFactoryZMQ::GetType() const

View File

@@ -22,7 +22,7 @@
#include "FairMQMessageZMQ.h"
#include "FairMQSocketZMQ.h"
#include "FairMQPollerZMQ.h"
#include "FairMQRegionZMQ.h"
#include "FairMQUnmanagedRegionZMQ.h"
#include <options/FairMQProgOptions.h>
class FairMQTransportFactoryZMQ : public FairMQTransportFactory
@@ -37,7 +37,7 @@ class FairMQTransportFactoryZMQ : public FairMQTransportFactory
FairMQMessagePtr CreateMessage() const override;
FairMQMessagePtr CreateMessage(const size_t size) const override;
FairMQMessagePtr CreateMessage(void* data, const size_t size, fairmq_free_fn* ffn, void* hint = nullptr) const override;
FairMQMessagePtr CreateMessage(FairMQRegionPtr& region, void* data, const size_t size) const override;
FairMQMessagePtr CreateMessage(FairMQUnmanagedRegionPtr& region, void* data, const size_t size) const override;
FairMQSocketPtr CreateSocket(const std::string& type, const std::string& name) const override;
@@ -46,7 +46,7 @@ class FairMQTransportFactoryZMQ : public FairMQTransportFactory
FairMQPollerPtr CreatePoller(const std::unordered_map<std::string, std::vector<FairMQChannel>>& channelsMap, const std::vector<std::string>& channelList) const override;
FairMQPollerPtr CreatePoller(const FairMQSocket& cmdSocket, const FairMQSocket& dataSocket) const override;
FairMQRegionPtr CreateRegion(const size_t size) const override;
FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size) const override;
FairMQ::Transport GetType() const override;
private:

View File

@@ -6,28 +6,28 @@
* copied verbatim in the file "LICENSE" *
********************************************************************************/
#include "FairMQRegionZMQ.h"
#include "FairMQUnmanagedRegionZMQ.h"
#include "FairMQLogger.h"
using namespace std;
FairMQRegionZMQ::FairMQRegionZMQ(const size_t size)
FairMQUnmanagedRegionZMQ::FairMQUnmanagedRegionZMQ(const size_t size)
: fBuffer(malloc(size))
, fSize(size)
{
}
void* FairMQRegionZMQ::GetData() const
void* FairMQUnmanagedRegionZMQ::GetData() const
{
return fBuffer;
}
size_t FairMQRegionZMQ::GetSize() const
size_t FairMQUnmanagedRegionZMQ::GetSize() const
{
return fSize;
}
FairMQRegionZMQ::~FairMQRegionZMQ()
FairMQUnmanagedRegionZMQ::~FairMQUnmanagedRegionZMQ()
{
LOG(DEBUG) << "destroying region";
free(fBuffer);

View File

@@ -6,30 +6,30 @@
* copied verbatim in the file "LICENSE" *
********************************************************************************/
#ifndef FAIRMQREGIONZMQ_H_
#define FAIRMQREGIONZMQ_H_
#ifndef FAIRMQUNMANAGEDREGIONZMQ_H_
#define FAIRMQUNMANAGEDREGIONZMQ_H_
#include "FairMQRegion.h"
#include "FairMQUnmanagedRegion.h"
#include <cstddef> // size_t
class FairMQRegionZMQ : public FairMQRegion
class FairMQUnmanagedRegionZMQ : public FairMQUnmanagedRegion
{
friend class FairMQSocketSHM;
public:
FairMQRegionZMQ(const size_t size);
FairMQRegionZMQ(const FairMQRegionZMQ&) = delete;
FairMQRegionZMQ operator=(const FairMQRegionZMQ&) = delete;
FairMQUnmanagedRegionZMQ(const size_t size);
FairMQUnmanagedRegionZMQ(const FairMQUnmanagedRegionZMQ&) = delete;
FairMQUnmanagedRegionZMQ operator=(const FairMQUnmanagedRegionZMQ&) = delete;
virtual void* GetData() const override;
virtual size_t GetSize() const override;
virtual ~FairMQRegionZMQ();
virtual ~FairMQUnmanagedRegionZMQ();
private:
void* fBuffer;
size_t fSize;
};
#endif /* FAIRMQREGIONZMQ_H_ */
#endif /* FAIRMQUNMANAGEDREGIONZMQ_H_ */