Rabbit against mainline Linux

Same initramfs, same benchmark binary, same QEMU rig, same machine model. The only thing that changes is the kernel.

How the numbers are produced

One processor. 512 MiB for the operations, 1024 MiB for the model and the agent.

QEMU 8.2.2, Linux 7.3.0 built from the mainline tree, the same initramfs and the same binary on both sides.

Rabbit is faster at every measured time, and uses less memory

Lower is faster on the same QEMU rig. The raw table below contains every measurement, including the losses.

Benchmark dot plot: Rabbit versus mainline Linux on a logarithmic scale

Benchmark comparison between Rabbit and mainline Linux. Operation times span 6 kernel measurements on a logarithmic axis from 100 nanoseconds to 100 milliseconds. End-to-end times span 3 measurements from 1 second to 10000 seconds. Memory and throughput comparisons are shown in the table below.

The chart continues to the right: scroll it sideways for the two mainline series and their values.

Kernel operations (log time, 100 ns – 100 ms)RabbitLinux 7.3.0Linux, mitigations off100 ns1 µs10 µs100 µs1 ms10 ms100 msSystem call77.9× faster376 ns29.3 us1.04 usMap and touch memory3.78× faster6.83 ms/MiB25.8 ms/MiB8.69 ms/MiBFault in memory, 4 KiB pages22.2× faster2.01 ms/MiB44.6 ms/MiB13.7 ms/MiBFault in memory, 2 MiB pages54.4× faster825 us/MiB44.9 ms/MiB13.0 ms/MiBFutex round trip62.3× faster6.53 us407 us97.7 usFour threads, spawn to join12.5× faster620 us7.73 ms4.59 msEnd-to-end (log time, 1 s – 10000 s)RabbitLinux 7.3.0Linux, mitigations off1 s10 s100 s1000 s10000 sBoot to the first result16.0× faster12.9 s206 s63.8 sTime to the first token2.19× faster11.25 s24.67 s22.82 sSeconds of an agent loop3.40× faster821 s2793 s2570 s

Memory and throughput

Resident memory of the guest319 MB476 MB483 MB1.49× less memory
Tokens per second0.45 tok/s0.20 tok/s0.21 tok/s2.25× more tokens/s
Resident memory with the model857 MB1021 MB1023 MB1.19× less memory
RabbitLinux 7.3.0Linux, mitigations off

Logarithmic scale: zero is not representable. The position of each mark encodes the order of magnitude, not the absolute difference.

Raw measurements
MetricRabbitLinux 7.3.0Linux, mitigations off
System call376 ns29.3 us1.04 us
Map and touch memory6.83 ms/MiB25.8 ms/MiB8.69 ms/MiB
Fault in memory, 4 KiB pages2.01 ms/MiB44.6 ms/MiB13.7 ms/MiB
Fault in memory, 2 MiB pages825 us/MiB44.9 ms/MiB13.0 ms/MiB
Futex round trip6.53 us407 us97.7 us
Four threads, spawn to join620 us7.73 ms4.59 ms
Boot to the first result12.9 s206 s63.8 s
Resident memory of the guest319 MB476 MB483 MB
Time to the first token11.25 s24.67 s22.82 s
Tokens per second0.45 tok/s0.20 tok/s0.21 tok/s
Seconds of an agent loop821 s2793 s2570 s
Resident memory with the model857 MB1021 MB1023 MB

What the numbers do and do not say

The ratios are the claim

Between 1.3 and 7.4 times cheaper per operation, three times faster in the agent loop, two thirds of the memory of the guest.

The absolute numbers describe an emulator

There is no hardware acceleration on the host, so a wall clock statement about a processor is not supported yet. A host with KVM is the open issue for that.

Every loss is published

The reference kernel without mitigations is measured too, and the batches where a boot did not finish are in the repository with the samples that are missing.

  • Same userspace, same QEMU version, same machine model, same rootfs, same benchmark scripts, raw results committed to the repository.
  • Two areas where a purpose-built kernel can plausibly win in a private VM: syscall entry cost and fork/exec plus tail latency.
  • Every loss is published too. No cherry-picking, no "mitigations off" as the only comparison point.

Raw results in the repository

Every measurement is committed as raw data. The published table is derived from these directories.

  • bench/results/vps-1cpu/The operations
  • bench/results/inference-native/The model
  • bench/results/agent/The agent

Read the full method and report

The benchmarking document explains the protocol; the report contains every measurement, the losses and the threats to validity.