Skip to content

Commit c413aae

Browse files
committed
Revert "[alf] Temporarily revert parallel SC commits"
This reverts commit c2b2304.
1 parent 122c4e2 commit c413aae

File tree

5 files changed

+18
-7
lines changed

5 files changed

+18
-7
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ find_package(Common REQUIRED)
6767
find_package(ReadoutCard REQUIRED)
6868
find_package(LLA REQUIRED)
6969
find_package(DIM REQUIRED)
70+
find_package(DimRpcParallel REQUIRED)
7071

7172
if(NOT APPLE)
7273
find_package(Python3 3.6 COMPONENTS Interpreter Development)
@@ -127,6 +128,7 @@ target_link_libraries(ALF
127128
${LINK_LIBS}
128129
PRIVATE
129130
dim::dim
131+
DimRpcParallel
130132
)
131133

132134
set_target_properties(ALF
@@ -176,6 +178,7 @@ foreach(i RANGE ${count})
176178
PRIVATE
177179
ALF
178180
dim::dim
181+
DimRpcParallel
179182
)
180183
endforeach()
181184

apps/Alf.cxx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ class Alf : public AliceO2::Common::Program
5858
options.add_options()("no-fw-check",
5959
po::bool_switch(&mOptions.noFirmwareCheck)->default_value(false),
6060
"Disable firmware compatibility check");
61+
options.add_options()("sequential",
62+
po::bool_switch(&mOptions.sequentialRpcs)->default_value(false),
63+
"Switch to force DIM RPCs to be executed sequentially");
6164
}
6265

6366
virtual void run(const po::variables_map&) override
@@ -126,7 +129,7 @@ class Alf : public AliceO2::Common::Program
126129
Logger::get() << link.alfId << " " << link.serialId << " " << link.linkId << LogDebugDevel << endm;
127130
}
128131
}
129-
alfServer.makeRpcServers(links);
132+
alfServer.makeRpcServers(links, mOptions.sequentialRpcs);
130133
}
131134

132135
// main thread
@@ -139,6 +142,7 @@ class Alf : public AliceO2::Common::Program
139142
struct OptionsStruct {
140143
std::string dimDnsNode = "";
141144
bool noFirmwareCheck = false;
145+
bool sequentialRpcs = false;
142146
} mOptions;
143147
};
144148

src/AlfServer.cxx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,13 +543,15 @@ std::vector<std::pair<Ic::Operation, Ic::Data>> AlfServer::parseStringToIcPairs(
543543
return pairs;
544544
}
545545

546-
void AlfServer::makeRpcServers(std::vector<AlfLink> links)
546+
void AlfServer::makeRpcServers(std::vector<AlfLink> links, bool sequentialRpcs)
547547
{
548548
for (auto& link : links) {
549+
// Set a unique parallel dim rpc bank for every link
550+
int parallelDimRpcBank = sequentialRpcs ? 0 : (link.serialId.getSerial() * 100) + link.rawLinkId;
549551

550552
// Function to create RPC server
551553
auto makeServer = [&](std::string name, auto callback) {
552-
return std::make_unique<StringRpcServer>(name, callback);
554+
return std::make_unique<StringRpcServer>(name, callback, parallelDimRpcBank);
553555
};
554556

555557
// Object for generating DNS names for the AlfLink

src/AlfServer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class AlfServer
4848
{
4949
public:
5050
AlfServer();
51-
void makeRpcServers(std::vector<AlfLink> links);
51+
void makeRpcServers(std::vector<AlfLink> links, bool sequentialRpcs = false);
5252

5353
private:
5454
std::string scaBlobWrite(const std::string& parameter, AlfLink link);

src/DimServices/DimServices.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
#include <dim/dis.hxx>
2727
#include <string>
2828

29+
#include <DimRpcParallel/dimrpcparallel.h>
30+
2931
#include "Alf/Exception.h"
3032
#include "Alf/Common.h"
3133
#include "ReadoutCard/Register.h"
@@ -64,13 +66,13 @@ bool isSuccess(const std::string& str);
6466
bool isFailure(const std::string& str);
6567
std::string stripPrefix(const std::string& str);
6668

67-
class StringRpcServer : public DimRpc
69+
class StringRpcServer : public DimRpcParallel
6870
{
6971
public:
7072
using Callback = std::function<std::string(const std::string&)>;
7173

72-
StringRpcServer(const std::string& serviceName, Callback callback)
73-
: DimRpc(serviceName.c_str(), "C", "C"), mCallback(callback), mServiceName(serviceName)
74+
StringRpcServer(const std::string& serviceName, Callback callback, int bank)
75+
: DimRpcParallel(serviceName.c_str(), "C", "C", bank), mCallback(callback), mServiceName(serviceName)
7476
{
7577
}
7678

0 commit comments

Comments
 (0)