Alexey Rybalchenko
80ed45df63
extend region config
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
eef42d2dea
simplify region cleanup
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
d630fbb1e4
consolidate UnmanagedRegion options
2021-12-16 16:27:07 +01:00
Giulio Eulisse
acfb495411
Do not print logo, if not requested
2021-12-14 11:26:10 +01:00
Alexey Rybalchenko
953c4a75c8
refactor: deduplicate more zmq/shmem code
2021-12-06 09:45:39 +01:00
Alexey Rybalchenko
f24dee33c2
Add configurable default snd/rcv timeout
2021-12-06 09:45:39 +01:00
Alexey Rybalchenko
856780f88a
fix: install tools/Exceptions.h
2021-11-12 13:20:48 +01:00
Alexey Rybalchenko
dbdf17c661
Avoid accessing Device.fChannels directly, use getters
2021-11-03 20:23:40 +01:00
Alexey Rybalchenko
a3bb5fb4b0
feat: Add Device::GetNumSubChannels(channel)
2021-11-03 20:23:40 +01:00
Alexey Rybalchenko
0eaea3c66f
Do not catch and rethrow exception from state handlers
2021-11-03 20:23:40 +01:00
Alexey Rybalchenko
ebcbe2dde6
feat: Add interactive controller button to print connected peers
2021-10-19 10:22:19 +02:00
Dennis Klein
fda8126a43
feat: Add new GetNumberOfConnectedPeers() API
2021-10-19 10:22:19 +02:00
Dennis Klein
8796ce5b20
feat: Add new assertm macro
...
This allows to add a message to the assertion which can improve
readability of error diagnostics.
2021-10-19 10:22:19 +02:00
Dennis Klein
b8503bfbd5
fix: Deprecate Message::Close because it is really a dtor
2021-10-19 10:22:19 +02:00
Dennis Klein
7329cb4428
refactor: Deduplicate GetConstant()
...
* Deprecate its old name in the Socket classes
2021-10-19 10:22:19 +02:00
Dennis Klein
e84a16da88
fix: warning readability-braces-around-statements
2021-10-19 10:22:19 +02:00
Dennis Klein
1a5d0eddbe
fix: Silence false positive cppcoreguidel-pro-bounds-array-to-pointer-decay
2021-10-19 10:22:19 +02:00
Alexey Rybalchenko
5fe2f53c7b
feat: add tool for noncanonical input
2021-10-08 09:42:28 +02:00
Alexey Rybalchenko
d7fb01908c
fix(shm): fix regression in debug mode data
2021-10-08 09:42:28 +02:00
Alexey Rybalchenko
1449166d44
feat: add options to control allocation attempts
2021-10-08 09:42:28 +02:00
Alexey Rybalchenko
36600dce2c
Apply clang-diagnostic-unused-private-field
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
153dcfab94
Apply modernize-use-override
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
ad824b4de1
Define copy/move ctors and assignment ops
...
Delete special member functions where they are not used.
(as part of applying suggestions from cppcoreguidelines-special-member-functions)
These classes don't need to be copyable/movable:
# copy/move not used:
zmq:: TransportFactory, Socket, Message, UnmanagedRegion, Poller, Context
shm:: TransportFactory, Socket, Message, UnmanagedRegion, Poller
ofi:: TransportFactory, Socket, Message, Context
shm:: ZMsg, Region, Monitor, TerminalConfig, Manager
plugins:: Config, Control, TerminalConfig
fairmq::StateQueue, StateMachine, ProgOptions, PluginServices, PluginManager, Plugin, Device, StateSubscription
TestData, BadDevice, TestDevice (test suite heplers)
# used via ptr interface:
fairmq::UnmanagedRegion, TransportFactory, Socket, Poller, Message
These classes need to be movable/copyable:
MyClass (test suite helper), fairmq::Channel, fairmq::Parts
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
597d88277b
Apply clang-analyzer-optin.performance.Padding
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
9590b5be40
Apply readability-static-accessed-through-instance
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
cf9b45cd75
Apply cppcoreguidelines-avoid-non-const-global-variables
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
1ee9d2d222
Apply misc-unused-alias-decls
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
310204a89d
Apply performance-faster-string-find
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
f33c597f34
Apply readability-avoid-const-params-in-decls
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
efca8e0ad4
fix(pmix): Avoid deprecated value
2021-09-24 13:36:58 +02:00
Alexey Rybalchenko
1ac30b51b1
fix(pmix): compiler warning infinite-recursion
2021-09-24 13:36:58 +02:00
Alexey Rybalchenko
2934016586
fix(pmix): ler warning string-plus-int
2021-09-24 13:36:58 +02:00
Alexey Rybalchenko
e484bf4578
Shm: Fix SetUsedSize()
2021-09-20 13:29:28 +02:00
Dennis Klein
b442483dc3
fix: Deprecate static string helper
2021-09-09 18:01:55 +02:00
Dennis Klein
727a709aff
fix: -Winfinite-recursion
2021-09-09 18:01:55 +02:00
Alexey Rybalchenko
bce380d871
Implement shmem msg zero-copy
2021-09-07 20:53:16 +02:00
Alexey Rybalchenko
815b2f1d76
shm: reimplement alignment
2021-09-07 20:53:16 +02:00
Dennis Klein
4e8f247a0d
fix: First round of using new non-namespaced typenames
2021-09-07 20:53:16 +02:00
Dennis Klein
24fbf94946
build: Use fairmq-tidy on our own codebase when RUN_FAIRMQ_TIDY=ON
2021-09-07 20:53:16 +02:00
Dennis Klein
dff2b4b7d1
feat(tidy): Add new FairMQTidy.cmake module
2021-09-07 20:53:16 +02:00
Dennis Klein
9cbaf7e0fd
feat(tools): Move the error code to the Tools target
2021-09-07 20:53:16 +02:00
Dennis Klein
db727092c5
feat(tidy): Add new fairmq-tidy tool
2021-09-07 20:53:16 +02:00
Dennis Klein
8e6c50e7cc
refactor: Prepare deprecation of non-namespaced types and headers
2021-09-07 20:53:16 +02:00
Alexey Rybalchenko
db0500fb2d
Protect access to options container
2021-07-30 16:07:47 +02:00
Dennis Klein
479d6e0712
feat: Add <fairmq/FwdDecls.h>
2021-07-16 18:47:55 +02:00
Dennis Klein
8859c563ac
build: Pick shared flatbuffers lib first
...
relates alisw/alidist#3165
2021-07-16 18:03:47 +02:00
Dennis Klein
e3d3be888f
feat: Add new function GetEnabledTransports()
...
* Also clang-format
2021-07-16 12:31:17 +02:00
Dennis Klein
0c4921d650
feat: Drop public bundled dependency to asio
2021-07-16 12:31:17 +02:00
Dennis Klein
1007de8e49
feat(ofi): Require asiofi 0.5
...
* Modernize some ofi transport code along the way
* Replace Boost.Container with `<memory_resource>`
* Introduce namespaced headers
* `<fairmq/Channel.h>`
* `<fairmq/Message.h>`
* `<fairmq/Poller.h>`
* `<fairmq/Socket.h>`
* `<fairmq/TransportFactory.h>`
* `<fairmq/UnmanagedRegion.h>`
* Compile-firewall Boost.Process in `shmem::Manager` because it conflicts
with standalone asio
2021-07-16 12:31:17 +02:00
Dennis Klein
9585c20b7f
feat: Drop public dependency to Boost.Asio and use standalone asio
2021-07-16 12:31:17 +02:00
Alexey Rybalchenko
03ba9eb558
Add --shm-zero-segment-on-creation option
2021-07-16 09:40:17 +02:00
David Rohr
a6193a380d
Add --shm-mlock-segment-on-creation option
2021-07-16 09:40:17 +02:00
Dennis Klein
e2452fa7e4
fix(plugins): Avoid double device control releases
...
This was not really broken, but it generated a debug log message
containing the keyword 'error' consistently, which is convoluting any
debugging session.
This commit also adds some trace log message on plugin device control
API calls.
2021-07-07 14:43:32 +02:00
Dennis Klein
1df338b262
feat: Require DDS 3.5.13.7
2021-07-07 14:43:32 +02:00
Dennis Klein
81b1ba1f20
fix(sdk): Avoid narrowing conversion
2021-07-07 14:43:32 +02:00
Dennis Klein
e2de214a19
fix(sdk): Silence boost warnings
2021-07-07 14:43:32 +02:00
Dennis Klein
09d2574105
feat(sdk): Remove unused fairmq executable
2021-07-07 14:43:32 +02:00
Dennis Klein
8533a44418
test: Adjust test signal timer
...
With shorter timing the tests were failing sometimes.
2021-07-07 14:43:32 +02:00
Dennis Klein
42606f9f17
build: Add missing compile feature
2021-07-07 14:43:32 +02:00
Dennis Klein
8bf9e1d0a6
build: Do not hardcode include dirs
2021-07-07 14:43:32 +02:00
Alexey Rybalchenko
c5e40fd180
shmmonitor: handle missing segmentInfos
2021-07-02 01:40:57 +02:00
Alexey Rybalchenko
ac3293fcc6
Fix heap-use-after-free
2021-06-24 14:11:43 +02:00
Alexey Rybalchenko
4fdf9d340b
Fix stack-use-after-scope
2021-06-24 14:11:43 +02:00
Alexey Rybalchenko
5c9ba5e5b4
shm: avoid meta data copy on recv and fix its alignment
2021-06-24 14:11:43 +02:00
Alexey Rybalchenko
4dbb5535c3
Add empty msg check for transport compatibility checker
2021-06-24 14:11:43 +02:00
Alexey Rybalchenko
a8bdb91165
shm: throw TransportError if could not lock region
2021-06-15 11:54:29 +02:00
Alexey Rybalchenko
37c059177f
shm: improve exception handling
2021-06-15 11:54:29 +02:00
Alexey Rybalchenko
28a887a457
shm: optimize monitor heartbeats
2021-06-15 11:54:29 +02:00
Alexey Rybalchenko
3c4158addb
Remove useless code
2021-05-28 13:14:51 +02:00
Alexey Rybalchenko
882edbbdb8
Apply modernize-pass-by-value
2021-05-28 13:14:51 +02:00
Alexey Rybalchenko
c847a7ca02
Apply readability-container-size-empty
2021-05-28 13:14:51 +02:00
Alexey Rybalchenko
f25cca2073
Apply clang-analyzer-deadcode.DeadStores
2021-05-28 13:14:51 +02:00
Alexey Rybalchenko
6aeac265ec
Apply modernize-use-equals-default
2021-05-28 13:14:51 +02:00
Alexey Rybalchenko
9444de5868
Apply readability-redundant-member-init
2021-05-28 13:14:51 +02:00
Alexey Rybalchenko
acf63d3c1b
Apply modernize-use-default-member-init
2021-05-28 13:14:51 +02:00
Alexey Rybalchenko
e1b229522c
Apply modernize-deprecated-headers
2021-05-28 13:14:51 +02:00
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