Skip to content

Commit 4ca8d3d

Browse files
authored
Merge pull request #196 from sy-c/master
update
2 parents 7b81935 + bfe6dc9 commit 4ca8d3d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+624
-231
lines changed

doc/configurationParameters.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ The parameters related to 3rd-party libraries are described here for convenience
5050
| consumer-* | filterLinksInclude | string | | Defines a filter based on link ids. Only data belonging to the links in this list (coma separated values) are accepted. If empty, all link ids are fine. |
5151
| consumer-* | stopOnError | int | 0 | If 1, readout will stop automatically on consumer error. |
5252
| consumer-data-sampling-* | address | string | ipc:///tmp/readout-pipe-1 | Address of the data sampling. |
53+
| consumer-FairMQChannel-* | checkResources | string | | Check beforehand if unmanaged region would fit in given list of resources. Comma-separated list of items to be checked: eg /dev/shm, MemFree, MemAvailable. (any filesystem path, and any /proc/meminfo entry).|
5354
| consumer-FairMQChannel-* | disableSending | int | 0 | If set, no data is output to FMQ channel. Used for performance test to create FMQ shared memory segment without pushing the data. |
5455
| consumer-FairMQChannel-* | enableRawFormat | int | 0 | If 0, data is pushed 1 STF header + 1 part per HBF. If 1, data is pushed in raw format without STF headers, 1 FMQ message per data page. If 2, format is 1 STF header + 1 part per data page.|
5556
| consumer-FairMQChannel-* | fmq-address | string | ipc:///tmp/pipe-readout | Address of the FMQ channel. Depends on transportType. c.f. FairMQ::FairMQChannel.h |
@@ -87,6 +88,7 @@ The parameters related to 3rd-party libraries are described here for convenience
8788
| consumer-zmq-* | address | string| tcp://127.0.0.1:50001 | ZMQ address where to publish (PUB) data pages, eg ipc://@readout-eventDump |
8889
| consumer-zmq-* | maxRate | int| 0 | Maximum number of pages to publish per second. The associated memory copy has an impact on cpu load, so this should be limited when one does not use all the data (eg for eventDump). |
8990
| consumer-zmq-* | pagesPerBurst | int | 1 | Number of consecutive pages guaranteed to be part of each publish sequence. The maxRate limit is checked at the end of each burst. |
91+
| consumer-zmq-* | zmqOptions | string | | Additional ZMQ options, as a comma-separated list of key=value pairs. Possible keys: ZMQ_CONFLATE, ZMQ_IO_THREADS, ZMQ_LINGER, ZMQ_SNDBUF, ZMQ_SNDHWM, ZMQ_SNDTIMEO. |
9092
| equipment-* | blockAlign | bytes | 2M | Alignment of the beginning of the big memory block from which the pool is created. Pool will start at a multiple of this value. Each page will then begin at a multiple of memoryPoolPageSize from the beginning of big block. |
9193
| equipment-* | consoleStatsUpdateTime | double | 0 | If set, number of seconds between printing statistics on console. |
9294
| equipment-* | debugFirstPages | int | 0 | If set, print debug information for first (given number of) data pages readout. |
@@ -104,8 +106,10 @@ The parameters related to 3rd-party libraries are described here for convenience
104106
| equipment-* | rdhCheckEnabled | int | 0 | If set, data pages are parsed and RDH headers checked. Errors are reported in logs. |
105107
| equipment-* | rdhDumpEnabled | int | 0 | If set, data pages are parsed and RDH headers summary printed. Setting a negative number will print only the first N RDH.|
106108
| equipment-* | rdhDumpErrorEnabled | int | 1 | If set, a log message is printed for each RDH header error found.|
107-
| equipment-* | rdhDumpWarningEnabled | int | 0 | If set, a log message is printed for each RDH header warning found.|
108-
| equipment-* | rdhUseFirstInPageEnabled | int | 0 | If set, the first RDH in each data page is used to populate readout headers (e.g. linkId).|
109+
| equipment-* | rdhDumpWarningEnabled | int | 1 | If set, a log message is printed for each RDH header warning found.|
110+
| equipment-* | rdhUseFirstInPageEnabled | int | 0 or 1 | If set, the first RDH in each data page is used to populate readout headers (e.g. linkId). Default is 1 for equipments generating data with RDH, 0 otherwsise. |
111+
| equipment-* | saveErrorPagesMax | int | 0 | If set, pages found with data error are saved to disk up to given maximum. |
112+
| equipment-* | saveErrorPagesPath | string | | Path where to save data pages with errors (when feature enabled). |
109113
| equipment-* | stopOnError | int | 0 | If 1, readout will stop automatically on equipment error. |
110114
| equipment-* | TFperiod | int | 256 | Duration of a timeframe, in number of LHC orbits. |
111115
| equipment-cruemulator-* | cruBlockSize | int | 8192 | Size of a RDH block. |
@@ -134,10 +138,13 @@ The parameters related to 3rd-party libraries are described here for convenience
134138
| equipment-rorc-* | debugStatsEnabled | int | 0 | If set, enable extra statistics about internal buffers status. (printed to stdout when stopping) |
135139
| equipment-rorc-* | firmwareCheckEnabled | int | 1 | If set, RORC driver checks compatibility with detected firmware. Use 0 to bypass this check (eg new fw version not yet recognized by ReadoutCard version). |
136140
| equipment-zmq-* | address | string | | Address of remote server to connect, eg tcp://remoteHost:12345. |
141+
| equipment-zmq-* | mode | string | stream | Possible values: stream (1 input ZMQ message = 1 output data page), snapshot (last ZMQ message = one output data page per TF). |
137142
| equipment-zmq-* | timeframeClientUrl | string | | The address to be used to retrieve current timeframe. When set, data is published only once for each TF id published by remote server. |
143+
| equipment-zmq-* | type | string | SUB | Type of ZMQ socket to use to get data (PULL, SUB). |
138144
| readout | aggregatorSliceTimeout | double | 0 | When set, slices (groups) of pages are flushed if not updated after given timeout (otherwise closed only on beginning of next TF, or on stop). |
139145
| readout | aggregatorStfTimeout | double | 0 | When set, subtimeframes are buffered until timeout (otherwise, sent immediately and independently for each data source). |
140146
| readout | disableAggregatorSlicing | int | 0 | When set, the aggregator slicing is disabled, data pages are passed through without grouping/slicing. |
147+
| readout | disableTimeframes | int | 0 | When set, all timeframe related features are disabled (this may supersede other config parameters). |
141148
| readout | exitTimeout | double | -1 | Time in seconds after which the program exits automatically. -1 for unlimited. |
142149
| readout | flushEquipmentTimeout | double | 1 | Time in seconds to wait for data once the equipments are stopped. 0 means stop immediately. |
143150
| readout | logbookApiToken | string | | The token to be used for the logbook API. |

doc/releaseNotes.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,3 +365,9 @@ This file describes the main feature changes for each readout.exe released versi
365365
- consumer-FMQchannel: drop TF on error (to avoid unhappy STFB when sending incomplete data, eg on "data page too small" or "no page left" conditions).
366366
- added memory pool usage statistics (to help tuning buffer pages count and size).
367367
- added some ZeroMQ options for consumerZMQ and equipmentZMQ.
368+
369+
## next version
370+
- Updated configuration parameters:
371+
- added equipment-*.saveErrorPagesMax and equipment-*.saveErrorPagesPath to save to disk data pages found with errors (up to given maximum, in given path).
372+
- equipment-*.rdhDumpWarningEnabled default set to 1 (now that RDH warning messages auto-muted on flood).
373+
- o2-readout-rawreader: added print of TF id when RDH dump enabled. To enable this feature, one must specify a value for timeframePeriodOrbits (typically 128 or 256) in the command line parameters. TF ids generated are relative to the beginning of the file.

src/Consumer.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -130,3 +131,4 @@ bool Consumer::isDataBlockFilterOk(const DataBlock& b)
130131

131132
return 1;
132133
}
134+

src/Consumer.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -83,3 +84,4 @@ std::unique_ptr<Consumer> getUniqueConsumerDataSampling(ConfigFile& cfg, std::st
8384
std::unique_ptr<Consumer> getUniqueConsumerTCP(ConfigFile& cfg, std::string cfgEntryPoint);
8485
std::unique_ptr<Consumer> getUniqueConsumerRDMA(ConfigFile& cfg, std::string cfgEntryPoint);
8586
std::unique_ptr<Consumer> getUniqueConsumerZMQ(ConfigFile& cfg, std::string cfgEntryPoint);
87+

src/ConsumerDataChecker.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -135,3 +136,4 @@ class ConsumerDataChecker : public Consumer
135136
};
136137

137138
std::unique_ptr<Consumer> getUniqueConsumerDataChecker(ConfigFile& cfg, std::string cfgEntryPoint) { return std::make_unique<ConsumerDataChecker>(cfg, cfgEntryPoint); }
139+

src/ConsumerDataProcessor.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -380,3 +381,4 @@ class ConsumerDataProcessor : public Consumer
380381
};
381382

382383
std::unique_ptr<Consumer> getUniqueConsumerDataProcessor(ConfigFile& cfg, std::string cfgEntryPoint) { return std::make_unique<ConsumerDataProcessor>(cfg, cfgEntryPoint); }
384+

src/ConsumerDataSampling.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -148,3 +149,4 @@ class ConsumerDataSampling : public Consumer
148149
std::unique_ptr<Consumer> getUniqueConsumerDataSampling(ConfigFile& cfg, std::string cfgEntryPoint) { return std::make_unique<ConsumerDataSampling>(cfg, cfgEntryPoint); }
149150

150151
#endif
152+

src/ConsumerFMQ.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -147,3 +148,4 @@ class ConsumerFMQ : public Consumer
147148
std::unique_ptr<Consumer> getUniqueConsumerFMQ(ConfigFile& cfg, std::string cfgEntryPoint) { return std::make_unique<ConsumerFMQ>(cfg, cfgEntryPoint); }
148149

149150
#endif
151+

src/ConsumerFMQchannel.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -757,3 +758,4 @@ class ConsumerFMQchannel : public Consumer
757758
std::unique_ptr<Consumer> getUniqueConsumerFMQchannel(ConfigFile& cfg, std::string cfgEntryPoint) { return std::make_unique<ConsumerFMQchannel>(cfg, cfgEntryPoint); }
758759

759760
#endif
761+

src/ConsumerFileRecorder.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// Copyright CERN and copyright holders of ALICE O2. This software is
2-
// distributed under the terms of the GNU General Public License v3 (GPL
3-
// Version 3), copied verbatim in the file "COPYING".
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
44
//
5-
// See http://alice-o2.web.cern.ch/license for full licensing information.
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
67
//
78
// In applying this license CERN does not waive the privileges and immunities
89
// granted to it by virtue of its status as an Intergovernmental Organization
@@ -639,3 +640,4 @@ class ConsumerFileRecorder : public Consumer
639640
};
640641

641642
std::unique_ptr<Consumer> getUniqueConsumerFileRecorder(ConfigFile& cfg, std::string cfgEntryPoint) { return std::make_unique<ConsumerFileRecorder>(cfg, cfgEntryPoint); }
643+

0 commit comments

Comments
 (0)