Generalize benchmark qualification environment

This commit is contained in:
ms2k 2026-07-15 02:49:39 +09:00
commit 2d4ec2ed8b

View file

@ -1,30 +1,52 @@
{
"schema": "lazaret-ignored-workspace-benchmark-v1",
"reference_environment": {
"qualification_environment": {
"architecture": "x86_64",
"kernel": "Linux 6.9 or later",
"cpu": "reference x86_64 processor",
"cpu_set": "one hardware thread from each of eight physical cores",
"cpu_governor": "performance",
"memory_bytes": 17179869184,
"swap": "disabled-for-benchmark-cgroup",
"storage": "reference local NVMe-class block device",
"storage_stack": "NVMe with dm-crypt and no network or copy-on-write layer",
"filesystem": "XFS",
"filesystem_block_bytes": 4096,
"filesystem_mount_options": [
"rw",
"nosuid",
"nodev",
"relatime",
"inode64",
"noquota"
"cpu": {
"physical_cores_minimum": 8,
"allocation": "one hardware thread from each allocated physical core",
"governor": "performance"
},
"memory": {
"bytes_minimum": 17179869184,
"swap": "disabled-for-benchmark-cgroup"
},
"storage": {
"kind": "local-block-device",
"network_backed": false,
"copy_on_write": false
},
"filesystem": {
"type": "XFS",
"block_bytes": 4096,
"required_mount_options": [
"relatime",
"inode64"
],
"forbidden_features": [
"quota"
]
},
"qualification_result_fields": [
"kernel_release",
"cpu_model",
"cpu_microcode",
"allocated_cpu_topology",
"memory_bytes",
"storage_model",
"storage_transport",
"storage_stack",
"filesystem_type",
"filesystem_block_bytes",
"filesystem_mount_options",
"fuse_userspace_version",
"runsc_version",
"git_version",
"uv_version",
"rust_version"
],
"fuse_userspace": "qualification-result-version",
"runsc": "qualification-result-version",
"git": "qualification-result-version",
"uv": "qualification-result-version",
"rust": "qualification-result-version"
"qualification_result_policy": "record exact observed values in the generated run result, not the source tree, without requiring literal model or version equality; every supported component must satisfy the release matrix"
},
"placements": {
"direct": "one native reference tree containing the same visible bytes and metadata on the same backing filesystem, without FUSE or runsc",
@ -38,6 +60,7 @@
"clock": "CLOCK_MONOTONIC_RAW elapsed nanoseconds",
"statistic": "median",
"relative_statistic": "median of paired routed/direct elapsed-time ratios",
"direct_calibration_formula": "direct placement median <= absolute_median_ms / relative_median_ratio in every independent run and preparation state",
"median_definition": "sort numeric values ascending and select value at zero-based index floor(count/2); every measured count is odd",
"within_run_relative_mad_formula": "median(abs(sample - median(samples))) / median(samples), evaluated separately for direct elapsed times, routed elapsed times, and paired routed/direct ratios in each workload, preparation state, and independent run",
"between_run_median_spread_formula": "(max(run_medians) - min(run_medians)) / median(run_medians), evaluated across the three independent-run medians separately for direct elapsed time, routed elapsed time, and paired routed/direct ratio in each workload and preparation state",
@ -52,9 +75,9 @@
"primed": "fresh materialization followed by one untimed complete workload invocation before measured samples"
},
"normalization": {
"environment": "reject a run that differs from any reference environment field",
"environment": "reject a run that violates any qualification-environment constraint or direct-placement calibration limit; record every exact observed qualification-result field",
"background_load": "reject a sample when another process consumes more than five percent of one reference core or benchmark memory pressure causes reclaim",
"pass_rule": "every independent run and preparation state meets both the absolute median and paired median-ratio budget and both variance limits"
"pass_rule": "every independent run and preparation state meets the direct-placement calibration, routed absolute median, paired median-ratio budget, and both variance limits"
},
"identity_encoding": {
"integer_encoding": "unsigned integers are fixed-width big-endian; the command exit status is signed two's-complement i32 big-endian",