These are the execution-tuning defaults every kernel shares. The resolver loads
them from execution-tuning.conf and execution-<route>.conf as presets, merges
the built-in profile, imported offsets, and user overrides, and hands the result
to native; anything a profile omits falls back to the values here.
Field-name suffixes encode units: _ms for milliseconds, _us for
microseconds. The "Impact" and "Rationale" columns explain the trade-offs rather
than prescribe values; when you do change execution, base it on real-device
measurements.
Everything in this table is advisory. Only kernel geometry is required; a profile may omit or override these values, and the shipped default is the suggestion.
| Parent | Child | Default | Purpose | Impact | Rationale |
|---|---|---|---|---|---|
| Recommended CPUs | recommended_cpus.main | 0 | Suggested main race CPU. | Changes scheduling, heat, and race timing; explicit UI selection takes precedence. | Preserves legacy fallback without topology assumptions. |
recommended_cpus.consumer | 1 | Suggested consumer CPU. | Same-core placement increases contention; nonexistent cores fail or fall back. | Keeps legacy separation. | |
| Heap preparation | heap.prepare_max_attempts | 4 | Full heap-preparation retry cap. | More retries may recover transient misses but add time and heat. | Matches the former four-pass bound. |
heap.prepare_timeout_ms | 240000 | Overall heap preparation timeout. | Too short misjudges slow devices; too long delays failure feedback. | Four minutes preserves the old bounded worst case. | |
heap.kernelsnitch_timeout_ms | 60000 | KernelSnitch scan timeout. | Affects scan completeness versus stall time. | Matches the prior 60-second scan window. | |
| Shared race timing | race.route_wait_ms | 1000 | Shared pre-route wait. | Changes readiness ordering. | Preserves the conservative one-second window. |
race.route_done_timeout_ms | 300000 | Maximum wait for the route worker to publish its terminal status. | Expiry fail-stops the native process because PI ownership cannot be safely unwound. | Five minutes bounds a stuck route without shortening existing TCP attempt windows. | |
race.setup_settle_us | 50000 | Post-setup settle delay. | Too short can trigger before setup completes. | Legacy 50 ms balance. | |
race.state_poll_interval_us | 1000 | Shared state polling interval. | Trades CPU load for reaction latency. | Preserves prior polling cadence. | |
| W1/W2/W3 stages | stages.w1_attempts | 15 | W1 write-attempt cap. | More attempts add heat and corruption exposure. | Copied from the original loop bound. |
stages.w1_settle_us | 100000 | W1 post-attempt settle. | Controls stabilization before verification. | Preserves 100 ms. | |
stages.w1_scratch_repair_attempts | 3 | W1 scratch-repair cap. | More repairs may recover or compound damage. | Matches the former three repairs. | |
stages.w2_attempts | 15 | W2 credential-write cap. | Affects elevation probability, time, and risk. | Matches legacy W2. | |
stages.w2_settle_us | 100000 | W2 settle delay. | Too short may verify before visibility. | Preserves 100 ms. | |
stages.w3_chain_rounds | 3 | Whole W3-chain rounds. | More rounds increase coverage and exposure. | Legacy cap is three. | |
stages.w3_attempts | 6 | W3 attempts per round. | Changes bypass opportunity and contention. | Preserves six attempts. | |
stages.w3_settle_us | 50000 | W3 settle delay. | Controls verification timing and speed. | Preserves 50 ms. | |
| TCP zerocopy route | routes.tcp_zerocopy.attempts | 2000 | TCP zerocopy probe cap. | Major heat/time contributor; too low reduces hit rate. | Matches the original cap. |
routes.tcp_zerocopy.arm_sequence | 16 | Arm-sequence length. | Changes spray/trigger ordering; wrong values miss the window. | Preserves the validated 16-step sequence. | |
routes.tcp_zerocopy.post_receive_hold_iterations | 20000 | Post-receive hold iterations. | Longer hold widens window but adds heat. | Copies the former busy-loop constant. | |
| Select-stack route | routes.select_stack.enter_delay_us | 50000 | Delay before the main select trigger after consumer entry. | Directly shifts the select-stack race window. | Preserves validated 50 ms timing. |
routes.select_stack.timeout_us | 200000 | Per-select timeout. | Balances premature exit and recovery time. | Preserves 200 ms. | |
routes.select_stack.consumer_max_calls | 1 | Consumer call cap. | Multiple calls alter the proven layout. | The stable path is single-shot. | |
routes.select_stack.consumer_burst_calls | 1 | Calls per consumer burst. | Changes scheduling and stack lifetime. | Preserves one-call bursts. | |
| Privilege handoff | handoff.pre_dispatch_settle_ms | 2000 | Pre-handoff settle. | Too short may dispatch before privilege/SELinux state settles. | Preserves two seconds. |
handoff.module_poll_attempts | 30 | Module-state poll count. | Together with the interval, forms the 3-second total window. | 30×100 ms preserves three seconds. | |
handoff.module_poll_interval_ms | 100 | Module poll interval. | Trades wakeups for latency. | Legacy cadence. | |
handoff.enforce_poll_attempts | 200 | Enforcing-state poll count. | Together with the interval, defines the 20-second recovery window. | 200×100 ms preserves twenty seconds. | |
handoff.enforce_poll_interval_ms | 100 | Enforcing poll interval. | Affects detection latency and wakeups. | Legacy cadence. |