ref: 90d8e4d9442cd3219211f12a2cc66ee5418c6b57
parent: 80ed3922c3c6b9e2b24a07a96bf7d9267fce7d2e
author: Ori Bernstein <ori@eigenstate.org>
date: Sun May 26 20:17:35 EDT 2024
gefs: improve heuristic for arena selection
--- a/sys/src/cmd/gefs/blk.c
+++ b/sys/src/cmd/gefs/blk.c
@@ -134,14 +134,14 @@
static Arena*
pickarena(uint ty, uint hint, int tries)
{
- uint n;
+ uint n, r;
- n = hint + tries + ainc(&fs->roundrobin)/1024;
+ r = ainc(&fs->roundrobin)/2048;
if(ty == Tdat)
- n++;
- if(hint % fs->narena == 0)
- n++;
- return &fs->arenas[n%fs->narena];
+ n = hint % (fs->narena - 1) + r + 1;
+ else
+ n = r;
+ return &fs->arenas[(n + tries) % fs->narena];
}
Arena*