Dennis Potter
6975854376
Solved problem with blocking thread
...
In the case that a node was already disconnected but not stopped,
rdma_cm_get_event always blocked and we coulnd't join the threads. This
is solved in this commit by registering SIGUSR1 to the CM event thread.
This bug originated in issue #152
2018-07-14 16:46:23 +02:00
Dennis Potter
3d01174859
Merge branch 'ib-send-inline' into develop
2018-07-14 15:26:12 +02:00
Dennis Potter
95e2a7c20b
Added extra check for inline mode. Closes #164
...
The actual maximum size for inline mode is now returned to the user and
there is a check that inline_mode is either 0 or 1. Furthermore, this
commit includes a minor improvement in ib_write()
2018-07-14 15:20:24 +02:00
Dennis Potter
1d6ee5aec8
Node can determine if data should be send inline
...
The user can set the maximum size of the inline data and the node checks
if a sample can be send inline. This commit doesn't contain a info
message to the user about what the final max inline size will be. (The
HCA will probably change the value set by the user.)
2018-07-13 13:50:30 +02:00
Sonja Kolen
bfd25b55db
check if publish/ subscribe topic is set before subscribing or publishing, provide a warning to the user in case subscribing/ publishing cannot be done because of lack of topic
2018-07-13 13:36:13 +02:00
Dennis Potter
b1b778f542
Added buffer to ib_write()
...
Now, ib_write() reads every cycle cnt values from the Completion Queue.
If it is not able to return them to the framework immediately, it
temporarily saves them on a stack.
ib_write() checks every cycle if the stack is non-empty and if it is
possible to return values from the stack to the framework.
2018-07-13 12:21:59 +02:00
Dennis Potter
4cd8fc7150
ib_write and ib_read handle memory in a way that the pool doesn't underrun now. Sending data inline is broken in this commit
2018-07-12 17:49:17 +02:00
Dennis Potter
51c26c0bb1
Merge branch 'node-read-write-interface' into develop
2018-07-11 23:03:59 +02:00
Dennis Potter
72e627b327
Fixes #166 , all node interfaces are modified
...
The functions now look like this
int node_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *release);
int node_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned *release);
This commit enables nodes to control how many samples will
be released by the framework through *release
2018-07-11 18:14:29 +02:00
Sonja Kolen
a2d33154d0
Merge branch 'develop' of git.rwth-aachen.de:acs/public/villas/VILLASnode into develop
2018-07-09 12:59:24 +02:00
Sonja Kolen
eb2941ea95
node: pass return value of vt->destroy
2018-07-09 12:55:36 +02:00
Sonja Kolen
6d613223cc
memory: fix use after free
2018-07-09 12:54:33 +02:00
Dennis Potter
29ff75fad3
Removed some obsolete code for completion queues
2018-07-08 15:32:28 +02:00
Dennis Potter
746fd2f694
Refactored ib_write in the same way as ib_read (described in #153 ). Merged separate completion queue polls to ib_write. Closes #167
2018-07-08 15:00:47 +02:00
Dennis Potter
ebb5446305
Refactored the way ib_read() handles the refence counts for the samples it uses. This is based on the algorithm described in issue #153
2018-07-08 14:05:48 +02:00
Dennis Potter
6150a36411
Changed all node_write() functions
2018-07-07 17:48:07 +02:00
Dennis Potter
4663f55e4b
Changed all node_read() functions to support a *cnt instead of cnt
2018-07-07 17:07:45 +02:00
Dennis Potter
8119c39c1a
Merge branch 'ib-started-connected' into develop
2018-07-07 16:24:57 +02:00
Dennis Potter
06e7434d6c
Solved some state problems. This commit also solves #154 , which was caused by a non-terminated thread. (This thread will be removed in a later commit anyway
2018-07-07 15:34:07 +02:00
Dennis Potter
1bdd0a9e34
node_stop can be called if node is STARTED or CONNECTED
2018-07-07 15:24:48 +02:00
Dennis Potter
836adee4d6
Node is able to clean everything up and reconnect. Node can abort if it is in STARTED and in CONNECTED state
2018-07-07 14:36:23 +02:00
Dennis Potter
80da4801e1
Source and target successfully connect and node changes status from STATE_STARTED to STATE_CONNECTED in this commit. Next step will be to fix ib_stop and ib_disconnect to make the target able to accept new connections.
2018-07-07 13:08:08 +02:00
Dennis Potter
e16644b0e9
Added some error handling in IB memory type
2018-07-07 12:56:08 +02:00
Dennis Potter
e2061e58fc
Events are now monitored in a separate thread. The segmentation faults we saw earlier were caused because we exited ib_start before we created a protection domain, which is used by memory_allocation
2018-07-07 12:49:22 +02:00
Dennis Potter
bde7dd69d7
Merge branch 'develop' of git.rwth-aachen.de:acs/public/villas/VILLASnode into develop
2018-07-06 14:47:28 +02:00
Dennis Potter
e91ea7a225
Remove villas.pb-c.c and villas.pb-c.h from repository and do a minor update to .gitignore. Closes #162
2018-07-06 14:47:11 +02:00
26541bae79
log: fix logging to syslog
2018-07-06 14:13:01 +02:00
9e15dfdc34
log: only show indention markers in console logs, not files
2018-07-06 14:12:48 +02:00
Dennis Potter
2bf122991c
Started to convert the RDMA_CM_EVENT loop to a separate thread and added a new state to the node. This commit is still broken
2018-07-05 18:26:32 +02:00
Dennis Potter
43dc305fde
Placed sanity checks to a separate function ib_check. Closes #151
2018-07-05 15:30:33 +02:00
Dennis Potter
b2fcfdca9d
Checked all tools for the presence of log_parse()
2018-07-05 14:40:32 +02:00
Dennis Potter
f976ce5418
Added debug messages with different verbosity levels
2018-07-05 13:57:25 +02:00
Dennis Potter
781f405a48
Adhered to coding style
2018-07-04 19:04:08 +02:00
b84210b91d
cmake: add support for infiniband node-type
2018-07-04 17:50:26 +02:00
fb4c39f19a
memory: update file haeders
2018-07-04 17:27:45 +02:00
4d09482fdb
Merge branch 'infiniband' into develop
...
# Conflicts:
# Makefile
# Makefile.config
# Makefile.help
# lib/Makefile.villas-ext.inc
# lib/Makefile.villas.inc
# lib/memory.c
# lib/nodes/Makefile.inc
2018-07-04 16:50:36 +02:00
92e4b61e2e
add assertion to check that the node-type has been started before starting the node
2018-07-04 16:38:06 +02:00
Dennis Potter
08682bec9b
Added LOG_IB
2018-07-04 16:34:08 +02:00
8cd1b93225
cmake: fix linking of libiec61850 on Ubuntu
2018-07-04 16:27:43 +02:00
Dennis Potter
86363f06da
Added better handling for FLUSH_ERRs of receive work queue
2018-07-04 15:37:25 +02:00
Dennis Potter
8f52d167f5
Fixed wrong directory in include of ib.h
2018-07-04 15:26:22 +02:00
Dennis Potter
51519c06df
Implemented new memory system implementation in infiniband node
2018-07-04 15:15:24 +02:00
d64b650f58
cmake: link against imported target for libprotobuf-c
2018-07-04 15:14:02 +02:00
6ecac46b4e
cmake: fix detection protobuf
2018-07-04 15:09:22 +02:00
d9e041a525
cmake: fix detection of libwebsockets
2018-07-04 15:09:08 +02:00
5bb7404cd8
allow compilation against older libcurl versions
2018-07-04 15:08:48 +02:00
dc3421a3ed
memory: improve error message when executed without super-user privs ( closes #157 )
2018-07-04 12:15:24 +02:00
Dennis Potter
070e2c2bde
Quick work around. api init function uses memory_type_heap, so the hash table needs to be initialized. This happens in memory_init()
2018-07-04 11:59:52 +02:00
Dennis Potter
f3a5b81649
Merge branch 'infiniband-memory' into infiniband
2018-07-04 10:50:21 +02:00
Dennis Potter
5a6b9120be
Fixed incompatible integer to pointer conversion returning 'int' from a function with result type 'struct memory_allocation *'
2018-07-04 10:39:13 +02:00