code: plan9front

Download patch

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*