Commit Graph

88 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer ad3f5fa943 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-16 10:00:06 +01: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
Thomas Schoebel-Theuer 2176f6ee13 bio: adapt to REQ_IDLE in place of NOIDLE 2019-12-25 09:19:07 +01:00
Thomas Schoebel-Theuer 8b0d52e705 server: remove deprecated loadavg quirk 2019-12-25 09:19:06 +01:00
Thomas Schoebel-Theuer ee08ab587e infra: introduce hash_table and hash_link 2019-07-10 11:27:37 +02:00
Thomas Schoebel-Theuer b1861be0a9 infa: add quick dent list for speedup 2019-07-10 11:27:37 +02:00
Thomas Schoebel-Theuer 426b67e811 Merge branch 'mars0.1.y' into mars0.1a.y 2018-11-26 11:38:26 +01:00
Thomas Schoebel-Theuer d6511758a3 server: fix stupid typo 2018-11-26 11:15:19 +01:00
Thomas Schoebel-Theuer d5dc1ea8af all: differentiate traffic types 2018-05-14 20:42:00 +02:00
Thomas Schoebel-Theuer 1bb56365c3 all: introduce traffic types 2018-05-14 20:42:00 +02:00