- 04 Feb, 2024 6 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
When we hit an FCO for which we could not lock the varnish object (oc), we inserted that FCO at the end of the LRU list, and restarted at the first. But if that FCO was the only one, we would find ourselves in an infinite loop. We now put a marker segment on the LRU for the time we need to let go of the lru lock and continue at that marker.
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
The exp thread is also critical. It must not starve, otherwise lru starves also because of hitting OC_F_DYING objects.
-
Nils Goroll authored
-
- 03 Feb, 2024 22 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
Unfortunately, this brings us above 4K, so we fill up with io structs
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
This way we have a better chance to call the actual return at a more suitable time, for example outside a lock.
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
Ref #53
-
- 01 Feb, 2024 3 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
Fixes #52
-
Nils Goroll authored
Closes #50
-
- 26 Jan, 2024 2 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
The fellow_e00029.vtc canary fell over on Ubuntu 20.04 with kernel 5.15
-
- 16 Jan, 2024 5 commits
-
-
Nils Goroll authored
This fixes two bugs: The most relavant was that we did not increase buddy->wait_pri if the new priority was higher, which could lead to all kinds of weird effects, for example: - starvation/lock up - LRU removing all of the cache because there were requests waiting, but buddy_wait_work() did not see them. The second bug is that we also called buddy_wait_work() if there actually was no change (the critical region could find state == IW_SIGNALLED). Also, for the new assertions, we need to set the proper wait_pri for the case that the priority is lowered.
-
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.
-
- 13 Jan, 2024 2 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
-