Moteur : corrections de relecture des threads CPU — un -tb absent n'efface plus les réglages batch d'EXTRA_ARGS

Sans -tb, llama.cpp ne recopie pas seulement le nombre de -t : il remplace
TOUT le réglage CPU du batch par celui de -t (postprocess_cpu_params,
« cpuparams = *role_model »). Un -Cb, -Crb, --cpu-strict-batch, --prio-batch
ou --poll-batch écrit dans EXTRA_ARGS était donc effacé sans un mot depuis que
Loki ne pose plus « -tb 0 » — un réglage utilisateur cassé.

- Dans ce cas seulement, Loki pose -tb : la valeur de -t quand elle est connue
  (THREADS, sonde du conteneur ou -t / --threads d'EXTRA_ARGS), sinon 0,
  l'ancien comportement, et le dit sur stderr.
- Un -tb déjà dans EXTRA_ARGS reste maître, comme avant.
- flagValue lit la dernière occurrence d'un drapeau (« -t 6 » ou « -t=6 »).
- Tests : quatre lignes de construction d'arguments et une table flagValue.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-03 22:37:59 +02:00
1 parent c6c5dc2b7e
commit 0a02604968
3 files changed
+92 -3

No files matched your search

@@ -143,3 +143,21 @@ func TestThreadCount(t *testing.T) {
}
}
}
func TestFlagValue(t *testing.T) {
for _, c := range []struct {
args []string
want string
}{
{nil, ""},
{[]string{"-t", "6"}, "6"},
{[]string{"--threads=7"}, "7"},
{[]string{"-t", "6", "--threads", "8"}, "8"}, // la dernière gagne, comme dans le moteur
{[]string{"-tb", "9"}, ""}, // -tb n'est pas -t
{[]string{"-t"}, ""}, // drapeau orphelin
} {
if got := flagValue(c.args, "-t", "--threads"); got != c.want {
t.Errorf("flagValue(%q) = %q, want %q", c.args, got, c.want)
}
}
}