mars/kernel
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
..
sy_old lib_log et al: report scan problems 2022-06-27 22:09:25 +02:00
Kbuild
Kconfig brick_mem: make CONFIG_MARS_MEM_RETRY mandatory by removing the symbol 2022-06-28 21:25:28 +02:00
Makefile
brick.c infra: minor bracing improvements 2021-07-08 07:54:30 +02:00
brick.h infra: trighten brick pointer checking 2022-07-12 11:28:12 +02:00
brick_atomic.h
brick_checking.h infra: tighten NULL pointer checking 2022-07-12 11:28:12 +02:00
brick_locks.h
brick_mem.c server: improve CPU usage on slow throughput 2023-01-16 10:00:06 +01:00
brick_mem.h infra: use new SET_PTR_NULL 2022-07-12 11:28:12 +02:00
brick_say.c all: adapt to removal of get_ds() 2021-02-10 13:36:06 +01:00
brick_say.h all: pack enums 2022-04-02 18:55:19 +02:00
brick_wait.h
compat.h compat: old kernels without WRITE_ONCE 2021-03-16 12:00:01 +01:00
gpl-2.0.txt
lamport.c all: adapt to removal of current_kernel_time64() 2021-02-10 13:36:06 +01:00
lamport.h all: adapt to removal of current_kernel_time64() 2021-02-10 13:36:06 +01:00
lib_limiter.c all: adapt to removal of current_kernel_time64() 2021-02-10 13:36:06 +01:00
lib_limiter.h
lib_log.c lib_log et al: report scan problems 2022-06-27 22:09:25 +02:00
lib_log.h lib_log et al: report scan problems 2022-06-27 22:09:25 +02:00
lib_mapfree.c mapfree: safeguard deleted files 2022-06-22 08:23:03 +02:00
lib_mapfree.h infra: fix spelling 2022-06-06 15:02:52 +02:00
lib_pairing_heap.h
lib_queue.h
lib_rank.c
lib_rank.h
lib_timing.c
lib_timing.h all: adapt to removal of current_kernel_time64() 2021-02-10 13:36:06 +01:00
mars.h all: pack enums 2022-04-02 18:55:19 +02:00
mars_aio.c infra: fix spelling 2022-06-06 15:02:52 +02:00
mars_aio.h
mars_bio.c bio: allow throttling for testing 2021-02-06 15:08:07 +01:00
mars_bio.h bio: remove unused variable 2021-03-01 13:05:17 +01:00
mars_buf.c all: safeguard mb on indirect calls 2021-07-08 07:44:38 +02:00
mars_buf.h
mars_check.c all: safeguard mb on indirect calls 2021-07-08 07:44:38 +02:00
mars_check.h
mars_client.c client: destroy mutex 2022-06-22 08:23:03 +02:00
mars_client.h client: ensure that completion occurs exactly once 2021-04-21 11:37:27 +02:00
mars_copy.c copy: setup callback after allocation succeeded 2022-07-12 11:28:12 +02:00
mars_copy.h copy: index paranoia 2022-05-20 00:16:28 +02:00
mars_dummy.c dummy: improve comments 2022-05-27 08:13:10 +02:00
mars_dummy.h dummy: improve comments 2022-05-27 08:13:10 +02:00
mars_errno.h lib_log et al: report scan problems 2022-06-27 22:09:25 +02:00
mars_generic.c infra: explain choice of CRC-like algorithms 2022-03-03 07:07:46 +01:00
mars_if.c if: safeguard deactivation of congested_fn 2022-06-28 07:13:56 +02:00
mars_if.h if: safeguard hash_index 2021-03-01 13:05:17 +01:00
mars_net.c net: safeguard mref transfer 2022-05-27 07:43:54 +02:00
mars_net.h net: safeguard mref transfer 2022-05-27 07:43:54 +02:00
mars_server.c server: improve CPU usage on slow throughput 2023-01-16 10:00:06 +01:00
mars_server.h server: fix potential races on deallocation 2022-06-01 05:43:06 +02:00
mars_sio.c infra: fix spelling 2022-06-06 15:02:52 +02:00
mars_sio.h
mars_trans_logger.c logger: use READ_ONCE for q_{active,queued} 2022-06-27 22:09:37 +02:00
mars_trans_logger.h lib_log et al: report scan problems 2022-06-27 22:09:25 +02:00
mars_usebuf.c all: safeguard mb on indirect calls 2021-07-08 07:44:38 +02:00
mars_usebuf.h
meta.h all: pack enums 2022-04-02 18:55:19 +02:00