fellow_storage: in disk LRU, get the disk reserve upfront

an unintended side effect of the last rework was that the main LRU loop would
only run once the disk buddy had waiting requests, such that the reserve would
not be built up unless it was needed at least once. Which, to some extent,
defeats the purpose for freshly loaded caches.
parent df98c718
......@@ -1755,8 +1755,6 @@ sfedsk_lru_thread(struct worker *wrk, void *arg)
wrk->vsl = &vsl;
VSL_Setup(wrk->vsl, NULL, (size_t)0);
buddy_wait_needspace(buddy);
while (!stvfe->shutdown) {
sfedsk_reserve_resize(r,
stvfe->tune.dsk_reserve_chunks,
......@@ -1774,7 +1772,8 @@ sfedsk_lru_thread(struct worker *wrk, void *arg)
n = 0;
sfedsk_reserve_release(r);
nuked += sfedsk_nuke(wrk, stvfe->ffd, stv, ++n);
if (buddy->waiting)
nuked += sfedsk_nuke(wrk, stvfe->ffd, stv, ++n);
sfedsk_reserve_req(r);
while (buddy->waiting) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment