Hermit compatibility scorecard

Current determinism, parity, and coverage evidence for Hermit's Linux execution backends.

1 test attempt from 1 validation run is not counted on this site. Each validation run keeps its own record of every test attempt it made, and this site publishes a history of those attempts. The site builder compares the two. These attempts are in their run's record but not in the published history; each line below says why. The green, red and never-measured cell results on this site come from the published history, so these attempts are not counted in them. Each validation run's page still shows the per-cell verdicts that run recorded.

The page of rows the site did not count, and why lists every such run.

Hermit makes Linux execution repeatable by controlling scheduling, time, and randomness. This scorecard compares its backends: determinism asks whether repeated runs agree, while parity asks whether a backend agrees with the reference ptrace backend. Each cell is one workload, execution mode, and backend; results distinguish passes, failures, and unmeasured cells. Latest selected measurement: ; latest history entry: . Totals may combine qualifying results from multiple runs; rebuilding this website does not rerun the tests. For context, start with the introduction to Hermit, or visit the README for setup and usage.

Overview

1,932 runnable cells out of 925 tests × 16 cells per test = 14,800 cells in the manifest. The 16 are 3 modes (chaos, replay, verify) × 5 backends (dbt, kvm, liteinst, ptrace, sabre) + 1 naked/native.

12,807 cells are never run by manifest policy: each carries a recorded not-applicable reason. 61 more are cells this site leaves out on purpose, with no cell row. 1,932 + 12,807 + 61 = 14,800.

1,932runnable cells
1,559result rows shown by default
12,807cells never run by manifest policy
61in the manifest minus rows with a cell page

The difference between cells in the manifest and rows with a cell page is retained as exact arithmetic. It is not assigned a cell result and has no cell row on this site.

How to read these. Green and red are counted over the 1,559 cells with a recorded result, not over the 14,800 in the manifest; quoting red against the manifest would understate the rate. None of the 74 red cells is selected by full in this snapshot. These retained failures fall outside this snapshot’s full-profile selection. Of the 14,800 cells in the manifest, 1,559 have a recorded result, 616 runnable cells have never been measured, 12,564 are never run by manifest policy and have no result and 61 are deliberate omissions with no cell row on this site. 243 of the 1,559 results are on cells that manifest policy no longer runs; they were recorded earlier. The manifest holds far more cells than any path selects, which is the intended arrangement and not a backlog.

83,053 admitted canonical series rows representing 89,902 Hermit runs. 167 admitted validation ledger rows. 181,559 excluded physical series rows representing 183,093 Hermit runs. 5 custom commands selected by full. The captured input contained 264,612 physical series rows representing 272,995 Hermit runs.

Determinism and Backend Parity

Determinism

Recorded outcomes and comparison evidence

KVM and LiteInst in this artifact. Recorded outcomes (kvm: 260 recorded Green, 1 recorded failures; liteinst: 338 recorded Green, 10 recorded failures) remain in Cells. These are positions in this artifact, not changes since an earlier snapshot and not counts of cross-backend matches. A Green outcome alone does not establish either comparison below.

Every determinism percentage uses the same distinct test-and-mode population with a recorded ptrace result, including ptrace failures and leaving out the stripped-comparison cells counted below. The w/partial column adds qualifying partial fractions to full matches. Missing and failed cells stay in the denominator. Parity is not part of this table: Parity (measured after determinism), below it, is the only parity display.

189 test-and-mode cells with a recorded ptrace result are outside every denominator: every recorded check of the ptrace cell used the stripped comparison its manifest declares (comparator: stripped: exit status, streams and stripped logs), which is never a bit-for-bit match.

How comparison evidence earns credit

Numerators count demonstrated comparisons, not generic Green labels. An absent or empty reference population is unavailable. Partial determinism uses the recorded first divergent scheduler turn and a complete same-commit ptrace execution; no missing measurement is inferred as partial. A column with no supported observations is unavailable.

Backend comparison coverage
BackendRecorded instrumentation backend; native and e9patch preprocessing are excluded.DeterminismCanonical repeat matches / all distinct test-and-mode cells with a recorded ptrace result, less those checked only with the stripped comparison.Det. w/partialFull matches plus recorded qualifying partial fractions / the same common denominator.Evidence coverageDeterminism failures and missing/unexecuted cells stay in the determinism denominator. Missing comparison evidence earns no credit.
ptrace98.4%369 / 375 cells98.4%369 / 375 cells4 failed; 0 missing/unmeasured; 6 without determinism evidence; 2,205 in test-and-mode cells with no recorded ptrace result
kvm68.5%257 / 375 cells68.5%257 / 375 cells1 failed; 116 missing/unmeasured; 118 without determinism evidence; 2,210 in test-and-mode cells with no recorded ptrace result
sabre64.0%240 / 375 cells64.0%240 / 375 cells54 failed; 74 missing/unmeasured; 135 without determinism evidence; 2,208 in test-and-mode cells with no recorded ptrace result
liteinst38.9%146 / 375 cells38.9%146 / 375 cells9 failed; 30 missing/unmeasured; 229 without determinism evidence; 2,205 in test-and-mode cells with no recorded ptrace result
dbt6.9%26 / 375 cells6.9%26 / 375 cells0 failed; 296 missing/unmeasured; 349 without determinism evidence; 2,211 in test-and-mode cells with no recorded ptrace result

Parity (measured after determinism)

After the determinism checks, the retained verify log of each candidate backend whose inputs can be equalized with the ptrace reference's (kvm, liteinst, sabre) is compared with the ptrace reference log. A cell's credit is the matched prefix of the two logs over the longer one, in [0, 1]; only a complete match earns 1. A cell with no deterministic golden log has no parity and is outside both credits.

validate run validate-ops-tick-8503b4fc2c30-f0c6c4842871

Data as of: last parity record emitted ; Hermit commit 8503b4fc2c30 measured; parity store at ledger commit 7763d6a31f6d (scorecard/parity.json, sha256 cb7abc76bcac); summary written by Hermit tool commit 8503b4fc2c30.

parity: 0/297 matched; selected 297 of 297 committed; mean 0.043 over 278 measured; floor 0.043 over 281 of 297 selected (counted as 0: 3 unmeasured: no-result-row 3; excluded: 0 no golden; 16 not compared)

Parity of validate run validate-ops-tick-8503b4fc2c30-f0c6c4842871
Candidate backendSelectedMeasuredMatchedDivergedNo parity (no deterministic golden)Not comparedUnmeasuredRecord-missingRefusedMean credit (over measured)Floor credit (over floor cells)Floor cells
kvm9190090001000.10200.100991
liteinst9998098001000.01420.014199
sabre9190090001000.01600.015891
dbt16000016000n/an/a0
TOTAL29727802780163000.04320.0427281

pressure-test run pressure-c470fa213ee8-20261003T180650Z

Data as of: last parity record emitted ; Hermit commit c470fa213ee8 measured; parity store at ledger commit 7763d6a31f6d (scorecard/parity.json, sha256 cb7abc76bcac); summary written by Hermit tool commit 8503b4fc2c30.

parity: not compared: 0 measured of 1 selected (inputs cannot be equalized); selected 1 of 205 committed (partial)

Parity of pressure-test run pressure-c470fa213ee8-20261003T180650Z
Candidate backendSelectedMeasuredMatchedDivergedNo parity (no deterministic golden)Not comparedUnmeasuredRecord-missingRefusedMean credit (over measured)Floor credit (over floor cells)Floor cells
kvm000000000n/an/a0
liteinst000000000n/an/a0
sabre000000000n/an/a0
dbt100001000n/an/a0
TOTAL100001000n/an/a0

173 historical cross-backend parity failure(s) from the retired ptrace rerun are not counted above. The parity details page describes them.

Backend history

Latest recorded state at each UTC date for the current catalogue and current main ancestry, within that date’s reference population (recorded ptrace results, less the stripped-comparison cells). Percentages and counts can fall after regressions. Steps carry recorded state; they are not interpolated measurements. Gaps mean no supported comparison evidence, including legacy periods. The lines are determinism; parity is shown only in Parity (measured after determinism).

Use the chart: Hover over or focus a point to see its exact date and percentage. Clear or select a checkbox under Visible lines to hide or show that series.

Green percentage100%0%2026-08-302026-10-04 UTCdbt determinism, 2026-10-03: 7.0% (26 / 374 reference cells)dbt determinism, 2026-10-04: 6.9% (26 / 375 reference cells)kvm determinism, 2026-08-31: 0.6% (2 / 355 reference cells)kvm determinism, 2026-09-01: 0.6% (2 / 355 reference cells)kvm determinism, 2026-09-02: 0.6% (2 / 355 reference cells)kvm determinism, 2026-09-03: 0.6% (2 / 355 reference cells)kvm determinism, 2026-09-04: 0.6% (2 / 355 reference cells)kvm determinism, 2026-09-05: 53.2% (189 / 355 reference cells)kvm determinism, 2026-09-06: 53.2% (189 / 355 reference cells)kvm determinism, 2026-09-08: 61.7% (219 / 355 reference cells)kvm determinism, 2026-09-09: 61.7% (219 / 355 reference cells)kvm determinism, 2026-09-11: 62.0% (220 / 355 reference cells)kvm determinism, 2026-09-12: 61.8% (220 / 356 reference cells)kvm determinism, 2026-09-16: 61.8% (220 / 356 reference cells)kvm determinism, 2026-09-22: 67.5% (241 / 357 reference cells)kvm determinism, 2026-09-28: 67.4% (242 / 359 reference cells)kvm determinism, 2026-09-29: 65.1% (242 / 372 reference cells)kvm determinism, 2026-09-30: 65.2% (242 / 371 reference cells)kvm determinism, 2026-10-02: 65.2% (242 / 371 reference cells)kvm determinism, 2026-10-03: 67.9% (254 / 374 reference cells)kvm determinism, 2026-10-04: 68.5% (257 / 375 reference cells)liteinst determinism, 2026-08-31: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-01: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-02: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-03: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-04: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-05: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-06: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-08: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-09: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-11: 7.9% (28 / 355 reference cells)liteinst determinism, 2026-09-12: 7.9% (28 / 356 reference cells)liteinst determinism, 2026-09-16: 7.9% (28 / 356 reference cells)liteinst determinism, 2026-09-22: 40.9% (146 / 357 reference cells)liteinst determinism, 2026-09-28: 40.7% (146 / 359 reference cells)liteinst determinism, 2026-09-29: 39.2% (146 / 372 reference cells)liteinst determinism, 2026-09-30: 39.4% (146 / 371 reference cells)liteinst determinism, 2026-10-02: 39.4% (146 / 371 reference cells)liteinst determinism, 2026-10-03: 39.0% (146 / 374 reference cells)liteinst determinism, 2026-10-04: 38.9% (146 / 375 reference cells)ptrace determinism, 2026-08-31: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-01: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-02: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-03: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-04: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-05: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-06: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-08: 96.6% (343 / 355 reference cells)ptrace determinism, 2026-09-09: 96.6% (343 / 355 reference cells)ptrace determinism, 2026-09-11: 96.9% (344 / 355 reference cells)ptrace determinism, 2026-09-12: 96.6% (344 / 356 reference cells)ptrace determinism, 2026-09-16: 96.6% (344 / 356 reference cells)ptrace determinism, 2026-09-22: 96.9% (346 / 357 reference cells)ptrace determinism, 2026-09-28: 98.3% (353 / 359 reference cells)ptrace determinism, 2026-09-29: 98.1% (365 / 372 reference cells)ptrace determinism, 2026-09-30: 98.7% (366 / 371 reference cells)ptrace determinism, 2026-10-02: 98.7% (366 / 371 reference cells)ptrace determinism, 2026-10-03: 98.7% (369 / 374 reference cells)ptrace determinism, 2026-10-04: 98.4% (369 / 375 reference cells)sabre determinism, 2026-08-31: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-01: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-02: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-03: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-04: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-05: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-06: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-08: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-09: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-11: 31.3% (111 / 355 reference cells)sabre determinism, 2026-09-12: 31.2% (111 / 356 reference cells)sabre determinism, 2026-09-16: 31.2% (111 / 356 reference cells)sabre determinism, 2026-09-22: 31.4% (112 / 357 reference cells)sabre determinism, 2026-09-28: 31.2% (112 / 359 reference cells)sabre determinism, 2026-09-29: 30.1% (112 / 372 reference cells)sabre determinism, 2026-09-30: 30.2% (112 / 371 reference cells)sabre determinism, 2026-10-02: 30.2% (112 / 371 reference cells)sabre determinism, 2026-10-03: 29.9% (112 / 374 reference cells)sabre determinism, 2026-10-04: 64.0% (240 / 375 reference cells)
Visible lines
Hover over or focus a point to see its exact date and percentage.

Ledger anchor: 7763d6a31f6d39bcd32777112b8f6efaec9d5959. Latest recorded date: 2026-10-04. Machine-readable history and source provenance.

Recorded values by date
Date (UTC)BackendDeterminism greenDeterminism percentagePtrace reference
2026-08-30dbtNot availableNot available113
2026-08-30kvmNot availableNot available113
2026-08-30liteinstNot availableNot available113
2026-08-30ptraceNot availableNot available113
2026-08-30sabreNot availableNot available113
2026-08-31ptrace34496.9%355
2026-08-31sabre11131.3%355
2026-08-31liteinst287.9%355
2026-08-31kvm20.6%355
2026-08-31dbtNot availableNot available355
2026-09-01ptrace34496.9%355
2026-09-01sabre11131.3%355
2026-09-01liteinst287.9%355
2026-09-01kvm20.6%355
2026-09-01dbtNot availableNot available355
2026-09-02ptrace34496.9%355
2026-09-02sabre11131.3%355
2026-09-02liteinst287.9%355
2026-09-02kvm20.6%355
2026-09-02dbtNot availableNot available355
2026-09-03ptrace34496.9%355
2026-09-03sabre11131.3%355
2026-09-03liteinst287.9%355
2026-09-03kvm20.6%355
2026-09-03dbtNot availableNot available355
2026-09-04ptrace34496.9%355
2026-09-04sabre11131.3%355
2026-09-04liteinst287.9%355
2026-09-04kvm20.6%355
2026-09-04dbtNot availableNot available355
2026-09-05ptrace34496.9%355
2026-09-05kvm18953.2%355
2026-09-05sabre11131.3%355
2026-09-05liteinst287.9%355
2026-09-05dbtNot availableNot available355
2026-09-06ptrace34496.9%355
2026-09-06kvm18953.2%355
2026-09-06sabre11131.3%355
2026-09-06liteinst287.9%355
2026-09-06dbtNot availableNot available355
2026-09-08ptrace34396.6%355
2026-09-08kvm21961.7%355
2026-09-08sabre11131.3%355
2026-09-08liteinst287.9%355
2026-09-08dbtNot availableNot available355
2026-09-09ptrace34396.6%355
2026-09-09kvm21961.7%355
2026-09-09sabre11131.3%355
2026-09-09liteinst287.9%355
2026-09-09dbtNot availableNot available355
2026-09-11ptrace34496.9%355
2026-09-11kvm22062.0%355
2026-09-11sabre11131.3%355
2026-09-11liteinst287.9%355
2026-09-11dbtNot availableNot available355
2026-09-12ptrace34496.6%356
2026-09-12kvm22061.8%356
2026-09-12sabre11131.2%356
2026-09-12liteinst287.9%356
2026-09-12dbtNot availableNot available356
2026-09-16ptrace34496.6%356
2026-09-16kvm22061.8%356
2026-09-16sabre11131.2%356
2026-09-16liteinst287.9%356
2026-09-16dbtNot availableNot available356
2026-09-22ptrace34696.9%357
2026-09-22kvm24167.5%357
2026-09-22liteinst14640.9%357
2026-09-22sabre11231.4%357
2026-09-22dbtNot availableNot available357
2026-09-28ptrace35398.3%359
2026-09-28kvm24267.4%359
2026-09-28liteinst14640.7%359
2026-09-28sabre11231.2%359
2026-09-28dbtNot availableNot available359
2026-09-29ptrace36598.1%372
2026-09-29kvm24265.1%372
2026-09-29liteinst14639.2%372
2026-09-29sabre11230.1%372
2026-09-29dbtNot availableNot available372
2026-09-30ptrace36698.7%371
2026-09-30kvm24265.2%371
2026-09-30liteinst14639.4%371
2026-09-30sabre11230.2%371
2026-09-30dbtNot availableNot available371
2026-10-02ptrace36698.7%371
2026-10-02kvm24265.2%371
2026-10-02liteinst14639.4%371
2026-10-02sabre11230.2%371
2026-10-02dbtNot availableNot available371
2026-10-03ptrace36998.7%374
2026-10-03kvm25467.9%374
2026-10-03liteinst14639.0%374
2026-10-03sabre11229.9%374
2026-10-03dbt267.0%374
2026-10-04ptrace36998.4%375
2026-10-04kvm25768.5%375
2026-10-04sabre24064.0%375
2026-10-04liteinst14638.9%375
2026-10-04dbt266.9%375

Record/Replay

A replay cell records the program under ptrace (record start --strict --verify, in an isolated recording directory), then replays that recording; the harness compares the two runs. Green and red count the latest recorded result; determinism matched counts the cells whose repeated runs agreed. No replay cell is runnable on dbt, kvm, liteinst, sabre: manifest policy never runs them.

Replay cells by backend
BackendReplay cellsRunnableNever run by policyGreenRedNever measured (runnable)Determinism matched
dbt92509250000
kvm92509250000
liteinst92509250000
ptrace925143782401394
sabre92509250000

Build provenance

Website build started: . This is the website generation time, not the age of its measurements.

Sources used to build this website. Commit dates are Git committer dates.

PurposeThe role this exact source revision played in producing the site data.Source commitA short hash linked to the complete immutable Git commit.Commit dateThe commit object’s committer timestamp; not a measurement or website build date.
Hermit catalogue32053b6d4645
Hermit reference revision13437c69bd97
Website data generator (private repository)7648ffd3d5c4
Cell result ledger7763d6a31f6d
Measured Hermit revisions and commit depth

Each row identifies a revision used by the selected cell results. Its measurement date is the latest selected result at that revision; its commit date describes the source, not a test run.

Measured revisions, newest measurement first.

Hermit commitThe exact Hermit revision used for these selected test results.Commit dateThe measured commit object’s committer timestamp; not a test execution date.Latest measurementThe latest selected cell measurement at this exact Hermit revision.First-parent depthRecorded commits along this Hermit revision’s first-parent chain, including itself.All reachable commitsAll recorded Hermit commits reachable from this revision, including merged side branches.
8503b4fc2c303,6903,765
f0f2808c9a0c3,6483,723
c3f7b2bcfa003,5513,626
ba7b784903be3,2583,333
05dcd35a78b32,6472,722
c7520a6c38732,6462,721
a58e9ecfb0372,5942,669
e12c472d22d22,4962,571

First-parent depth counts commits along the revision’s first-parent chain, including the revision itself. All reachable commits also counts merged side branches. These are recorded Hermit history counts, not elapsed time or a claim that a revision is that many commits behind main. A distance requires a verified ancestry relationship. Missing or conflicting depths are not inferred.

Full provenance
Hermit commit used for manifest policy
32053b6d46457b44d009ea8278fa94fe0970de6c
Hermit commit used for ancestry classification
13437c69bd971799f6938b056c254c66df3a2fa2
dev-hermit source commit (private repository)
7648ffd3d5c4529dcf9d752b650f32ad26cfc066
Manifest digest
7b569d5a716dcae37b1f6525c9cece6d5b764009f37d9ed02748c4823b12708d
Captured series source digest
809276d5d8c66a7efc6832c01f7f14e23f61581f61f92c546ca6aa6ea0427bb8
Digest of the series rows this site shows
336a9e4261ea72ee578318edb440779b8a6fd98e60b97815663eb8836f327539