Alexey Rybalchenko
ccbd622130
Apply cppcoreguidelines-init-variables
2021-05-28 13:14:51 +02:00
Christian Tacke
7616b0b0aa
CMake: Set CXX language level via target_compile_features()
...
See: https://gitlab.kitware.com/cmake/cmake/-/issues/18446
See: https://cmake.org/cmake/help/latest/manual/cmake-compile-features.7.html#requiring-language-standards
2021-05-28 10:38:14 +02:00
Dennis Klein
ed78ccd29c
CMake: Remove cotire dependency
...
CMake now has native unity build support:
https://cmake.org/cmake/help/latest/variable/CMAKE_UNITY_BUILD.html
2021-05-28 10:38:14 +02:00
Dennis Klein
d15bc17b12
extern/asio: Bump and require v1.18.1
2021-05-28 10:38:14 +02:00
Dennis Klein
ce0a052252
SDK: Add missing header <thread>
2021-05-28 10:38:14 +02:00
Alexey Rybalchenko
9bf908fb52
shm: revert some changes from c85d6e0
that introduced a race
2021-05-20 00:40:58 +02:00
Alexey Rybalchenko
021c1b1c4d
shm: add monitor method to retrieve free segment memory
2021-05-18 14:05:12 +02:00
Alexey Rybalchenko
a7dbeadd1c
runDevice: remove const from getDevice parameter
2021-05-13 23:00:35 +02:00
Alexey Rybalchenko
e6f67b3658
Fix Ofi interface
2021-05-07 21:59:52 +02:00
Alexey Rybalchenko
091d0824d1
ofi: fix Events() signature
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
857aa84fa3
add mlock/zero options to unmanaged region
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
c85d6e079c
shm: reduce shm contention when dealing with ack queues
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
8b4056e408
Update docs
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
b67b80e0ad
shmmonitor: add severity setting
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
2c89b24857
shm: eliminate race/deadlock in region subscriptions
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
c6a6a5f21b
Check transport type of msg and corresponding region
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
9defa71622
Add GetType() to UnmanagedRegion
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
ed2dcedf03
Add operator<< for fair::mq::Transport
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
8a2641d842
shm: check result of region acquisition
2021-05-07 21:33:15 +02:00
Alexey Rybalchenko
2ca62d06db
shm region cache: fix multiple sessions issue
2021-05-07 14:20:00 +02:00
Gvozden Neskovic
ef5b3c782e
improve message counter cache line use
2021-05-07 14:20:00 +02:00
Gvozden Neskovic
f7ba3052aa
use thread local cache to avoid interprocess lock on shm GetData
2021-05-07 14:20:00 +02:00
Dennis Klein
a90dbf64de
Fix -Wunused-result
...
Fixes #281
2021-05-07 13:18:12 +02:00
Dennis Klein
057ba03776
PluginManager: Do not load built-in plugins via dlopen/dlsym
...
fixes #351
2021-05-05 03:52:12 +02:00
Giulio Eulisse
6dfea32aee
Improve Events API
...
If the call is interrupted by a signal, this will throw, which we clearly do not want. Simplifying the API to let the user decide what to do on error is probably the best option.
2021-05-04 22:54:19 +02:00
Dennis Klein
ea9aede652
Fallback to <boost/filesystem> on GCC 7
2021-04-08 16:22:47 +02:00
Alexey Rybalchenko
77bf12c8e8
docs patch
2021-04-08 12:38:18 +02:00
Alexey Rybalchenko
f3bc9e05a8
shmmonitor: update docs
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
5facc441b8
shmmonitor: add --list-all
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
2602f53585
Add tools: StrStartsWith, StrEndsWith
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
0976465338
shm: reduce delay between monitor daemon launch & HBs
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
9144258b89
shmmonitor: daemon output to file if FAIRMQ_SHMMONITOR_VERBOSE is true
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
be55565617
shmmonitor: use fairlogger
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
d7e2fbecea
shmmonitor: refactor to separate monitoring from output
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
72175e5757
shmmonitor: optimize startup to avoid repeated start
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
effba534f0
shmmonitor: add session name and creator id to the output
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
efd42075a9
shmmonitor: enable read only access
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
5228407932
shmmonitor: distinguish daemon from monitor mode (orthogonal)
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
30e81d58f8
shmmonitor: allow getting shmids based on session/userid
2021-04-08 10:11:23 +02:00
Dennis Klein
fc49687879
builtin devices: Reorganize
2021-03-26 10:06:10 +01:00
Dennis Klein
66a4df0667
fairmq-uuid-gen: Move to tools directory
2021-03-26 10:06:10 +01:00
Dennis Klein
978191fa6c
Introduce <fairmq/runDevice.h>
2021-03-26 10:06:10 +01:00
Dennis Klein
cef6d0afcd
Introduce <fairmq/Device.h>
2021-03-26 10:06:10 +01:00
Dennis Klein
47ec550792
control plugin: Move to subdirectory for consistency
2021-03-26 10:06:10 +01:00
Dennis Klein
107248be0a
Reorganize includes for consistency
2021-03-26 10:06:10 +01:00
Dennis Klein
4b6cf8b181
Fix aggregate initialization issue before C++20
...
Use value initialization to prevent
error: temporary of type ... has protected destructor
see https://stackoverflow.com/a/56745475
2021-03-26 10:06:10 +01:00
Alexey Rybalchenko
bffe74c5cf
shm: handle shrink failure gracefully
2021-03-23 13:00:35 +01:00
Alexey Rybalchenko
62438bd99e
shm: Improve error message when segment cannot be opened
2021-03-18 09:02:08 +01:00
Alexey Rybalchenko
c8ad684b18
Add --shm-no-cleanup option
...
When true, device will skip the segment cleanup even when it is the last
segment user
2021-03-18 09:02:08 +01:00
Alexey Rybalchenko
a5ec83208d
Update docs
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
fc2241ece7
Fix incorrect channel index passed to OnData callback
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
1f26883b75
Formatting
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
edbdc57332
shm: make shmId also available as uint64_t
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
0fd2fcadc2
shm: Make sure no event notifications are missed
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
9b48b31a75
shm: Make sure all region events are fired
2021-03-11 12:14:00 +01:00
Giulio Eulisse
ce4584b3d8
Provide a better syntax for --channel-config
...
The current syntax is ambiguous because it treats assignments
(like address=127.0.0.1) and selectors (name=my-channel) using
the symbol equal `"`.
This allows:
my-channel:address=127.0.0.1
as alternative syntax, which clearly separates the role of my-channel
from the associated properties.
2021-03-05 02:02:14 +01:00
Alexey Rybalchenko
bbc1dd4600
Add optional file output to FairMQSink
2021-03-01 15:33:45 +01:00
Dennis Klein
8327810942
Warn on unknown --channel-config args
2021-03-01 08:37:57 +01:00
Dennis Klein
c37742e3b4
Update Copyright string
2021-03-01 08:37:57 +01:00
Alexey Rybalchenko
93dff3c5a7
Fix regression in shmmonitor
2021-02-19 09:54:29 +01:00
Alexey Rybalchenko
2b3e38d9a4
shmmonitor: non-interactive mode checks and quits
2021-02-10 10:36:08 +01:00
Alexey Rybalchenko
c6b13cd3a1
Fix shmem::Message::SetUsedSize(0)
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
c5487a11ed
Remove custom implementation for enum hashing
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
4a09154a91
17-ify namespaces
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
d9a5e82160
Cleanup tools includes
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
751c53171c
Replace tools::make_unique with std::make_unique
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
6815c9c172
zmq: implement alignment
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
02a3980343
Remove useless parameter from implementation
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
38b34785e0
format & remove unused variable
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
be94ceb7a7
zmq: simplify SetUsedSize implementation
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
afadbb53e4
zmq: correct accounting for msg size > 2GB
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
749d28a3b5
DeviceRunner: check FAIRMQ_SEVERITY env var for severity
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
29f45fa77d
Rename TransferResult to TransferCode
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
ea746b17d0
Remove deprecated methods
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
f46d446d52
shm: do mlock/zeroing under shmem lock
2020-12-04 13:27:45 +01:00
Alexey Rybalchenko
db0937f339
shm: ensure local segments are complete for region subscriptions
2020-11-25 13:41:23 +01:00
Alexey Rybalchenko
bb1ce794b6
Let single message methods also return int64_t
2020-11-17 14:04:20 +01:00
Dennis Klein
9e2373b55d
extern/asio: Bump to 1.18.0
2020-11-13 15:55:52 +01:00
Alexey Rybalchenko
e39d17d09e
Apply suggestions from -Wrange-loop-analysis
2020-11-13 02:58:09 +01:00
Alexey Rybalchenko
a14502242f
DDS command UI: return EXIT_FAILURE on errors
2020-11-13 02:58:09 +01:00
Alexey Rybalchenko
d3697ec97b
SDK: add WaitForPublisherCount() and related ctor arg
2020-11-13 02:58:09 +01:00
Alexey Rybalchenko
49d8a1b4dd
DeviceRunner: Set log severity only if one was provided
2020-10-19 10:23:08 +02:00
Alexey Rybalchenko
f14f507584
SDK: Remove instance limit from DDSSession
2020-10-09 13:35:55 +02:00
Alexey Rybalchenko
8dd0b25c06
Make BasicTopology actually movable
2020-10-09 13:35:55 +02:00
Alexey Rybalchenko
0e5978b160
Properties: add output support for shorts
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
71b1866d7b
small includes cleanup
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
6699711e17
FairMQChannel: Refactor, moving short methods to header
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
120760da0a
FairMQChannel: avoid copy when iterating over endpoints
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
d03a504ccd
shmem: fail earlier if given an unsupported socket type
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
cf004f69b2
FairMQChannel: replace ResetChannel() with Invalidate()
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
cfa18ccfce
FairMQChannel: remove artifacts from no longer used optimizations
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
e332e20dbd
Remove thread-safety from channel methods
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
3ab10ced7a
FairMQChannel: remove deprecated methods
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
1b30f3ac14
Update return types in ofi::Socket
2020-09-23 09:29:57 +02:00
Alexey Rybalchenko
35c7959c53
Workaround Cpp17MoveInsertable issue on xcode 12
2020-09-22 05:33:29 +02:00
Alexey Rybalchenko
5ea8ffeb34
Update command format in PMIx plugin
2020-09-17 14:22:03 +02:00
Dennis Klein
0f5e1b6815
Tests.SDK: Reduce timeout by factor 1000 because new machines can be fast enough to complete within 1ms
2020-09-16 15:43:58 +02:00
Alexey Rybalchenko
6932f88c84
Adjust transfer methods behaviour when interrupted
...
A transer is attempted even if the transport has been interrupted
(with a timeout). When the timeout is reached, transfer methods will
return TransferResult::interrupted (-3).
2020-09-16 15:43:58 +02:00
Alexey Rybalchenko
5e97d85956
Cleanup includes
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
fdbf289364
Update monitor & debug tools for multiple segments
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
266843cda5
Shm: initial multiple segments support
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
b126ede45a
Shm: Verbosity switch for Cleanup methods
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
12e6a874db
Remove built-in devices from the main lib
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
73109fe6d3
Shm: configurable allocation strategy
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
3b2d2a0ac8
Shm: Refactor to localize segment access
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
72a45f78b3
Shm: Add Monitor::GetDebugInfo()
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
b63f31d0e0
Shm: Provide debug infos only in debug mode
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
70a583d08d
Shm: Provide segment/msg debug infos
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
fe9b87e4e2
Improve error reporting in SDK/fairmq-dds-command-ui
2020-09-07 12:52:43 +02:00
Alexey Rybalchenko
2ac27905e7
Move fairmq-dds-command-ui to SDK
2020-09-03 17:34:05 +02:00
Alexey Rybalchenko
690e8a0370
Retry on EINTR in blocking zmq calls
2020-08-28 18:22:03 +02:00
Alexey Rybalchenko
62ed4e5f80
Avoid unconditional call to now() when allocating message
2020-08-13 14:16:12 +02:00
neskovic@gmail.com
f1d6b18668
Message counter: use relaxed/acquire memory ordering
2020-08-13 11:49:55 +02:00
Alexey Rybalchenko
c0153a6b55
shmMonitor: Adjust output slightly
2020-08-07 14:27:14 +02:00
Alexey Rybalchenko
86a1dd38a2
ShmMonitor: Use FairLogger for timestamp calculation
2020-08-07 14:27:14 +02:00
Alexey Rybalchenko
b0f73017e2
shmmonitor: add output with -v (non-interactive)
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
b83655d5da
MessageBadAlloc: report amount of available memory
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
9c27051cdc
BenchmarkSampler: add alignment parameter
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
65f9519917
Add error handling for mlock
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
b5545c1575
Add helpers for AggregatedTopologyState
2020-07-17 12:41:53 +02:00
Alexey Rybalchenko
3eca8e9def
Add test for shm transport options
2020-07-15 13:59:53 +02:00
Alexey Rybalchenko
beb7766fca
Shm: add options to zero and/or mlock the segment
2020-07-15 13:59:53 +02:00
Giulio Eulisse
bf909f94dc
ofi: adapt to the new API for FairMQSocket::Events
2020-07-15 13:58:47 +02:00
Dennis Klein
1140c4c6ab
SDK: Provide comparison operator for device and topo states
2020-07-15 13:01:23 +02:00
Alexey Rybalchenko
a6da208e79
Add Undefined and Mixed state for use in SDK
2020-07-15 13:01:23 +02:00
Giulio Eulisse
ba3a82b1df
Update FairMQSocket.h
2020-07-15 12:09:54 +02:00
Giulio Eulisse
e8cc104344
Add API to extract ZMQ_EVENTS from socket backend
2020-07-15 12:09:54 +02:00
Alexey Rybalchenko
5a7dcd9fc1
SDK: warn if given path translates to no selected tasks
2020-07-09 23:34:28 +02:00
Alexey Rybalchenko
78b1c188bf
Shm: report correct size when opening segment
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
66bc7ba762
Remove useless variable
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
88bc1f7a06
Shm: throw if requested message size exceeds total segment size
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
f70201610b
Do not attemp to find random port for non-TCP protocols
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
8125489776
Handle out_of_range when locating RegionInfo
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
6dd0a44308
Make shmid an 8-digit hex number
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
afe2dcaa02
BenchmarkSampler: add memset option
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
aeab9e5407
Socket.h: refactor to reduce duplicate code
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
539e5602a6
Expose fair::mq::shmem::Monitor::Cleanup() API
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
f885b4618e
Optimize unmanaged region ReceiveAcks
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
3364da9541
Add linger setting for unmanaged region
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
79489bb501
Add missing includes
2020-06-10 13:55:15 +02:00
Alexey Rybalchenko
79ca436b74
Zmq: let GetData of an empty message return nullptr
2020-06-05 18:16:13 +02:00
Alexey Rybalchenko
36d4f3c937
Use SHA2 instead of boost::hash to generate shmem id
2020-06-05 18:16:13 +02:00
Alexey Rybalchenko
bdf895ae9e
Add PicoSHA2 dependency
2020-06-05 18:16:13 +02:00
Giulio Eulisse
dd47b34e06
Add ability to retrieve ZMQ_FD
2020-06-03 19:44:00 +02:00
Alexey Rybalchenko
a59c902c74
MemoryResource: propagate alignment
2020-06-03 19:41:40 +02:00
Alexey Rybalchenko
dabc48c21a
Shm: fix incorrect ptr range check
2020-05-29 23:34:27 +02:00
Alexey Rybalchenko
236d5a8608
Let default shm segm size be multiple of page size
...
To allow potential optimizations (e.g. huge pages)
2020-05-28 17:23:18 +02:00
Alexey Rybalchenko
5008fa4732
Fix regression in handling unregistered options
2020-05-28 17:23:18 +02:00
Alexey Rybalchenko
b5bb476b0d
Adjust program options style to disallow guessing
2020-05-25 14:03:12 +02:00
Giulio Eulisse
ea7ae04025
Adapt to requests by @rbx
2020-05-25 08:36:57 +02:00