Commit Graph

96 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer
127cbd6d86 client/server: add /proc/sys/mars/[cs]*_count 2023-02-05 11:07:17 +01:00
Thomas Schoebel-Theuer
7f876a1a82 server: separate flying reads and write counters 2023-02-05 11:07:09 +01:00
Thomas Schoebel-Theuer
e33ec25563 server: earlier disallow IO ops on unconnected bricks
Unconnected server bricks cannot work at the IO layer, but
are required for the strategy layer (in order to get strategic
information over the network even when IO is not yet possible).

Reflect this in the code, and report any potential communication
mischief as early as possible (safeguard).

Functional testing did not show a difference, but timing
behaviour should have improved.
2023-02-05 10:39:57 +01:00
Thomas Schoebel-Theuer
27916f714a server: improve CPU usage on slow throughput
Th problem is a distributed one, the scenario is very difficult to
reproduce, and would trigger massive occurence of false-positive test
results, and the classic yield() operation (as already implemented) is
not enough for a solution.

In a certain special case, give up the CPU via a linear backoff
algorithm. in order to prevent a plethora of followup effects, e.g. in
special situations like already happened OOM under a variety of hardware
and kernel configurations.
2023-01-18 18:41:22 +01:00
Thomas Schoebel-Theuer
a4b63e4c63 all: deprecate statistics via say logging 2022-09-07 15:07:27 +02:00
Thomas Schoebel-Theuer
9bf9c8096a all: deprecate historic say logging 2022-09-07 14:14:37 +02:00
Thomas Schoebel-Theuer
301b9f215a server: use new smp waiting 2022-08-24 10:22:27 +02:00
Thomas Schoebel-Theuer
a505a391b5 server: safeguard unexpected socket destruction 2022-08-16 19:08:27 +02:00
Thomas Schoebel-Theuer
03876c40eb server: safeguard underneath socket destruction 2022-08-16 19:08:27 +02:00
Thomas Schoebel-Theuer
93b49cbc68 server: destroy mutex 2022-06-22 08:23:03 +02:00
Thomas Schoebel-Theuer
31401ab85c server: better react on brick startup problems 2022-06-22 08:23:03 +02:00
Thomas Schoebel-Theuer
b395c4bdcc server: access callback lists solely under lock 2022-06-06 15:02:52 +02:00
Thomas Schoebel-Theuer
5a659a0441 server: improve callback list and safeguard locking
Coding style: pairwise nesting of lock/unlock.

Always prefer writes in front of reads when callbacks
need to be transported.
2022-06-06 15:01:43 +02:00
Thomas Schoebel-Theuer
55f9e16365 server: safeguard socket shutdown 2022-06-01 05:43:26 +02:00
Thomas Schoebel-Theuer
ae69c28342 server: safeguard thread termination 2022-06-01 05:43:26 +02:00
Thomas Schoebel-Theuer
acf7d0c4cc server: fix potential races on deallocation 2022-06-01 05:43:06 +02:00
Thomas Schoebel-Theuer
9a8ae5e78a server: safeguard interim realloc and len changes 2022-05-27 07:44:10 +02:00
Thomas Schoebel-Theuer
5f13e810b7 all: safeguard mb on indirect calls 2021-07-08 07:44:38 +02:00
Thomas Schoebel-Theuer
78376caa1a all: fix race on activate_peer 2020-11-20 09:42:35 +01:00
Thomas Schoebel-Theuer
c26fb3bef2 infra: invalidate user caches 2020-11-07 08:34:57 +01:00
Thomas Schoebel-Theuer
166fefb676 all: allow rebased fetch 2020-11-07 08:34:57 +01:00
Thomas Schoebel-Theuer
d8e641a40e infra: new push_check operation 2020-11-07 08:34:56 +01:00
Thomas Schoebel-Theuer
1a96616efe main: new oneshot parameter at activate_peer() 2020-11-07 08:34:56 +01:00
Thomas Schoebel-Theuer
8ac109ad22 server: activate peer on ip push 2020-11-07 08:25:46 +01:00
Thomas Schoebel-Theuer
5a4f1961be all: less msleep 2020-09-18 17:45:57 +02:00
Thomas Schoebel-Theuer
302e7edfe7 infra: simplify mars_free_dent_all 2020-09-17 18:02:27 +02:00
Thomas Schoebel-Theuer
1e5be3d1b9 infra: move dent transfer prototypes to strategy 2020-09-17 18:02:27 +02:00
Thomas Schoebel-Theuer
1c3468985a infra: increase hash table 2020-09-01 19:35:10 +02:00
Thomas Schoebel-Theuer
c500183177 server: precise thread naming 2020-09-01 19:35:10 +02:00
Thomas Schoebel-Theuer
7467aa9939 infra: allow pushing links to peers 2020-07-24 22:42:46 +02:00
Thomas Schoebel-Theuer
8d9ac84b46 infra: extend cmds with 2 strings 2020-07-20 21:20:47 +02:00
Thomas Schoebel-Theuer
8946873739 infra: new trigger code conventions 2020-07-20 21:20:09 +02:00
Thomas Schoebel-Theuer
e02bd88349 infra: fix proto_level conditions 2020-07-08 22:10:08 +02:00
Thomas Schoebel-Theuer
5071b3d0b2 infra: remember Lamport stamp of remote link tree 2020-07-08 21:09:39 +02:00
Thomas Schoebel-Theuer
ea4fbc1885 all: remove superfluous dealloc tests and clears 2020-07-08 21:00:05 +02:00
Thomas Schoebel-Theuer
f7dbb5c0d0 server: replace spinlock with mutex 2020-06-30 21:07:09 +02:00
Thomas Schoebel-Theuer
37da08d6a4 server: new thread naming conventions 2020-06-30 21:07:09 +02:00
Thomas Schoebel-Theuer
4a7905cf8e server: safeguard double free 2020-06-30 21:07:09 +02:00
Thomas Schoebel-Theuer
628c636dff all: distinguish *_ops_* from *_amount_* at limiter 2020-04-13 11:24:01 +02:00
Thomas Schoebel-Theuer
ffcc691efd server: enable callback compression 2020-04-13 11:21:17 +02:00
Thomas Schoebel-Theuer
9e6fb4120c infra: deprecate ref_cs_mode 2020-04-13 10:54:19 +02:00
Thomas Schoebel-Theuer
40e72f9e7d all: deprecate mref_rw and mref_may_write 2020-04-13 10:54:19 +02:00
Thomas Schoebel-Theuer
343670b52d infra: remove superfluous parameter 2020-04-13 10:52:38 +02:00
Thomas Schoebel-Theuer
333760bc1a infra: simplify mars_kill_brick_when_possible() 2020-04-13 10:52:38 +02:00
Thomas Schoebel-Theuer
2d9cab0461 server: reduce handler stack frame size 2020-04-13 09:55:19 +02:00
Thomas Schoebel-Theuer
24484a8749 server: reduce server stack frame size 2020-04-13 09:55:19 +02:00
Thomas Schoebel-Theuer
21b4874e30 infra: make dent protocol extensible 2020-04-13 09:55:19 +02:00
Thomas Schoebel-Theuer
0c5b5daa38 infra: {send,recv}ing mars_cmd via wrapper 2020-04-13 09:55:19 +02:00
Thomas Schoebel-Theuer
8097fe2971 infra: separate dent list retrieval for remote communication 2020-04-01 06:12:28 +02:00
Thomas Schoebel-Theuer
8019a43aa6 server: pimp handler_limit 2020-01-25 20:15:21 +01:00