Vals-Smith

/ torvalds / linux

PUBLIC

Updated 7/21/2026

Linux kernel source tree

1 Branches 1463202 Commits 0 Contributors 85 Tasks

Key Takeaways

  • GPT-5.6 Sol has the clearest lead in the collection, resolving 63 of 85 tasks—five more than the next-best models.
  • GPT-5.6 Terra is the strongest efficiency option at 56 of 85 tasks, $0.24 per test, 102 seconds, and 0.23M tokens per test.
  • Claude Fable 5 and Muse Spark 1.1 resolve 69 of 85 tasks together; Kimi K3 also uniquely solves two tasks despite its middle-of-table score.

Cost / Test vs. Accuracy

Grok 4.5 is cheapest at $0.17 per test with 55 tasks resolved, while GPT-5.6 Terra adds one task for $0.24 and the leader reaches 63 for $1.09.

Latency vs. Accuracy

GPT-5.6 Terra resolves 56 tasks in 102 seconds and Grok 4.5 resolves 55 in 109 seconds; GPT-5.6 Sol takes 309 seconds for seven additional tasks.

Average token use / test

Input
Output
Reasoning
Cache read
Cache write
Claude Sonnet 5
4.2M
Claude Opus 4.7
1.6M
Kimi K3
1.1M
GLM 5.2 (Fireworks)
1.1M
Gemini 3.5 Flash
1.0M
Claude Opus 4.8
937K
Claude Haiku 4.5 (Nonthinking)
918K
Claude Fable 5
882K
GPT-5.6 Sol
692K
GPT-5.6 Luna
687K
Muse Spark 1.1
623K
Gemini 3.1 Pro Preview (02/26)
596K
GPT 5.5
591K
Grok 4.5
262K
GPT-5.6 Terra
233K

Tasks with failures

PassedFailed

Task detail

32a92f8c8932

Issue statement

The typed kernel allocation helpers (kmalloc_obj, kzalloc_obj, their plural forms, the vmalloc variants, and flexible-structure variants) already default to GFP_KERNEL when no allocation flag is supplied. Audit the straightforward call sites that explicitly pass GFP_KERNEL as their final argument and convert them to the default form by omitting that redundant argument. This includes simple calls split across lines throughout architecture code and core subsystems. Calls using a non-default allocation policy must retain their explicit flag, and allocation behavior must otherwise remain unchanged.

Hidden tests
diff --git a/tools/testing/valsmith/test_alloc_obj_defaults.py b/tools/testing/valsmith/test_alloc_obj_defaults.pynew file mode 100644index 000000000..f4b0a2b18--- /dev/null+++ b/tools/testing/valsmith/test_alloc_obj_defaults.py@@ -0,0 +1,64 @@+#!/usr/bin/env python3+import argparse+import sys+import xml.etree.ElementTree as ET+from pathlib import Path+++CASES = {+    "arch/arm64/kernel/vdso.c":+        "kzalloc_objs(struct page *, vdso_info[abi].vdso_pages)",+    "arch/powerpc/kvm/book3s_pr.c":+        "kzalloc_obj(*vcpu->arch.shadow_vcpu)",+    "arch/sparc/kernel/smp_64.c":+        "kzalloc_flex(*hdesc, maps, num_kernel_image_mappings)",+    "block/blk-crypto-profile.c":+        "kvmalloc_objs(profile->slot_hashtable[0], slot_hashtable_size)",+    "drivers/acpi/scan.c":+        "kzalloc_objs(*r, ret + 1)",+    "drivers/gpu/drm/drm_atomic.c":+        "kzalloc_obj(*state)",+    "net/unix/af_unix.c":+        "kvmalloc_objs(spinlock_t, UNIX_HASH_SIZE)",+    "sound/usb/mixer.c":+        "kzalloc_obj(*cval)",+}+++def normalized(path):+    return " ".join(Path(path).read_text(encoding="utf-8").split())+++def check_default_kernel_allocations():+    missing = []+    for path, call in CASES.items():+        if call not in normalized(path):+            missing.append(f"{path}: expected {call}")+    if missing:+        raise AssertionError("Default GFP_KERNEL allocation form missing:\n" + "\n".join(missing))+++def main():+    parser = argparse.ArgumentParser()+    parser.add_argument("--junitxml", required=True)+    args = parser.parse_args()+    suite = ET.Element("testsuite", name="alloc_obj_defaults", tests="1")+    case = ET.SubElement(suite, "testcase", classname="alloc_obj_defaults",+                         name="default_kernel_allocations_omit_redundant_flag")+    failed = False+    try:+        check_default_kernel_allocations()+    except Exception as error:+        failed = True+        suite.set("failures", "1")+        ET.SubElement(case, "failure", message=str(error)).text = str(error)+    else:+        suite.set("failures", "0")+    report = Path(args.junitxml)+    report.parent.mkdir(parents=True, exist_ok=True)+    ET.ElementTree(suite).write(report, encoding="utf-8", xml_declaration=True)+    return 1 if failed else 0+++if __name__ == "__main__":+    sys.exit(main()) 

Head-to-head

VS

Accuracy

74.12%Δ 5.88%

68.24%

Cost / test

$1.09Δ $0.33

$1.43

Latency

309sΔ 120s

428s

Cost distribution

$0.00$2.24$4.47

Latency distribution

0s719s1438s

Input token distribution

02.2M4.4M

Output token distribution

042.1K84.2K

Task outcomes

85 tasks

Both
A only
B only
Neither