- 07 Feb, 2024 40 commits
-
-
Nils Goroll authored
we did not lower buddy->wait_pri if the cancel resulted in an empty priority list. This was no problem, but the stricter assertions from the previous commit would trigger, because they now require that the priority list for wait_pri is filled.
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
For clarity and to not overlook it, pools should have a proper default priority. The fill callback can still change it.
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
For cases where we do not need FFS, we do not need the index. This does not change anything yet. This patch only works together with the next (so git bisect is expected to break here). The split is to separate manual changes from automated patching.
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
at least I now realize that this could probably be misunderstood...
-
Nils Goroll authored
-
Nils Goroll authored
The dance of taking a reference when waiting caused a lot of trouble already before, and with a fresh look at it does not seem to make much sense. But most importantly, it was wrong: lbuf->ff was set to NULL in logbuffer_flush_finish_work_one() before the mutex was returned with pthread_cond_wait(), so if (ff == NULL) goto unlock; in logbuffer_wait_flush_fini() could lead to the function returning before logbuffer_flush_finish_work_one() _was_ actually done. But with bceec122 this could lead to the stack memory being repurposed (logbuffer_flush_finish returning) before it was actually safe to. This issue could surface in fellow_log_test hanging. We also now return all allocations under the lock to prevent a race with fellow_log_close() where flush finish threads could outlive the ffd, resulting in buddy leak detection to fire, because the ff allocation was not returned. Fixes #49
-
Nils Goroll authored
The other assertion is what we actually mean: The log2up(sz) must be at least bits, otherwise it makes no sense.
-
Nils Goroll authored
-
Nils Goroll authored
otherwise all hell will break loose if we changed reqs->pri, because we would dequeue from the wrong list head.
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
The single-allocation buddy wrapper functions did not serve much of a purpose but waiting for FP_OPEN, which has now been moved to fellow_dskbuddy().
-
Nils Goroll authored
Fixes #48
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
... a chance to take memory from the old
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-