Move WorkRequest to Completion.h

This commit is contained in:
2023-04-25 19:47:31 +02:00
parent bf2a23ef7e
commit 6a2cdf1d2b
10 changed files with 20 additions and 20 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
#include "jf_packet.h"
#include "../common/JFJochException.h"
ProcessJFPacket::ProcessJFPacket(ThreadSafeFIFO<Completion> &in_c, ThreadSafeFIFO<ProcessWorkRequest> &in_wr,
ProcessJFPacket::ProcessJFPacket(ThreadSafeFIFO<Completion> &in_c, ThreadSafeFIFO<WorkRequest> &in_wr,
uint32_t nmodules)
: m(2 * nmodules),
c_fifo(in_c),
+2 -7
View File
@@ -11,11 +11,6 @@
#include <shared_mutex>
struct ProcessWorkRequest {
uint16_t *ptr;
uint32_t handle;
};
struct ModuleInfo {
uint16_t *ptr;
Completion c;
@@ -24,11 +19,11 @@ struct ModuleInfo {
class ProcessJFPacket {
std::vector<std::mutex> m;
ThreadSafeFIFO<Completion> &c_fifo;
ThreadSafeFIFO<ProcessWorkRequest> &wr_fifo;
ThreadSafeFIFO<WorkRequest> &wr_fifo;
std::vector<ModuleInfo> module_info;
std::atomic<uint64_t> packet_counter = 0;
public:
ProcessJFPacket(ThreadSafeFIFO<Completion> &c, ThreadSafeFIFO<ProcessWorkRequest> &wr, uint32_t nmodules);
ProcessJFPacket(ThreadSafeFIFO<Completion> &c, ThreadSafeFIFO<WorkRequest> &wr, uint32_t nmodules);
~ProcessJFPacket();
void ProcessPacket(jf_udp_payload *datagram);
uint64_t GetCounter();
+1 -1
View File
@@ -8,7 +8,7 @@ ADD_LIBRARY(JungfraujochHost STATIC
AcquisitionOfflineCounters.cpp AcquisitionOfflineCounters.h
IBWrappers.cpp IBWrappers.h
MlxRawEthDevice.cpp MlxRawEthDevice.h
../../jungfrau/jf_packet.h LinuxSocketDevice.cpp LinuxSocketDevice.h FPGAAcquisitionDevice.cpp FPGAAcquisitionDevice.h)
../../jungfrau/jf_packet.h LinuxSocketDevice.cpp LinuxSocketDevice.h FPGAAcquisitionDevice.cpp FPGAAcquisitionDevice.h WorkRequest.h)
TARGET_LINK_LIBRARIES(JungfraujochHost CommonFunctions HLSSimulation ${IBVERBS} JFCalibration)
+5
View File
@@ -6,6 +6,11 @@
#include <cstdint>
struct WorkRequest {
uint16_t *ptr;
uint32_t handle;
};
struct Completion {
enum class Type {Start, End, Image} type;
+1 -1
View File
@@ -111,7 +111,7 @@ void LinuxSocketDevice::HW_SetCancelDataCollectionBit() {
bool LinuxSocketDevice::HW_SendWorkRequest(uint32_t handle) {
if (handle != UINT32_MAX)
wr_queue.Put(ProcessWorkRequest{
wr_queue.Put(WorkRequest{
.ptr = buffer_device.at(handle),
.handle = handle
});
+1 -1
View File
@@ -9,7 +9,7 @@
#include "AcquisitionDevice.h"
class LinuxSocketDevice : public AcquisitionDevice {
ThreadSafeFIFO<ProcessWorkRequest> wr_queue;
ThreadSafeFIFO<WorkRequest> wr_queue;
int32_t rcv_buf_size;
+1 -1
View File
@@ -109,7 +109,7 @@ void MlxRawEthDevice::HW_SetCancelDataCollectionBit() {
bool MlxRawEthDevice::HW_SendWorkRequest(uint32_t handle) {
if (handle != UINT32_MAX)
wr_queue.Put(ProcessWorkRequest{
wr_queue.Put(WorkRequest{
.ptr = buffer_device.at(handle),
.handle = handle
});
+1 -1
View File
@@ -19,7 +19,7 @@ class MlxRawEthDevice : public AcquisitionDevice {
std::mutex m;
IBContext context;
ThreadSafeFIFO<ProcessWorkRequest> wr_queue;
ThreadSafeFIFO<WorkRequest> wr_queue;
uint64_t mac_addr;
uint32_t ipv4_addr;
ActionConfig cfg;
+5 -5
View File
@@ -9,7 +9,7 @@
TEST_CASE("ProcessRawPacketTest_Empty") {
ThreadSafeFIFO<Completion> c_fifo;
ThreadSafeFIFO<ProcessWorkRequest> wr_fifo;
ThreadSafeFIFO<WorkRequest> wr_fifo;
{
ProcessJFPacket process(c_fifo, wr_fifo, 2);
@@ -20,13 +20,13 @@ TEST_CASE("ProcessRawPacketTest_Empty") {
TEST_CASE("ProcessRawPacketTest") {
ThreadSafeFIFO<Completion> c_fifo;
ThreadSafeFIFO<ProcessWorkRequest> wr_fifo;
ThreadSafeFIFO<WorkRequest> wr_fifo;
std::vector<uint16_t> array_0(RAW_MODULE_SIZE), array_1(RAW_MODULE_SIZE), array_2(RAW_MODULE_SIZE);
wr_fifo.Put(ProcessWorkRequest{.ptr = array_0.data(), .handle = 0});
wr_fifo.Put(ProcessWorkRequest{.ptr = array_1.data(), .handle = 1});
wr_fifo.Put(ProcessWorkRequest{.ptr = array_2.data(), .handle = 2});
wr_fifo.Put(WorkRequest{.ptr = array_0.data(), .handle = 0});
wr_fifo.Put(WorkRequest{.ptr = array_1.data(), .handle = 1});
wr_fifo.Put(WorkRequest{.ptr = array_2.data(), .handle = 2});
DiffractionExperiment experiment(DetectorGeometry(8));
experiment.DataStreams(2);
+2 -2
View File
@@ -180,11 +180,11 @@ void test_packet_processing(Logger &logger) {
auto start_time = std::chrono::system_clock::now();
for (int z = 0; z < ntries; z++) {
ThreadSafeFIFO<Completion> c;
ThreadSafeFIFO<ProcessWorkRequest> wr;
ThreadSafeFIFO<WorkRequest> wr;
ProcessJFPacket process(c, wr, nmodules);
for (uint32_t i = 0; i < nmodules * nframes; i++)
wr.Put(ProcessWorkRequest{
wr.Put(WorkRequest{
.ptr = output.data() + i * RAW_MODULE_SIZE,
.handle = i
});