Skip to content

feat(rta): Interrupt_Overhead folds into ISR WCET (Tier A #5 cont.)#209

Merged
avrabe merged 1 commit into
mainfrom
feat/v0.9.x-c1-interrupt-overhead
May 11, 2026
Merged

feat(rta): Interrupt_Overhead folds into ISR WCET (Tier A #5 cont.)#209
avrabe merged 1 commit into
mainfrom
feat/v0.9.x-c1-interrupt-overhead

Conversation

@avrabe

@avrabe avrabe commented May 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Folds Spar_Timing::Interrupt_Overhead into each ISR's effective WCET as 1x per firing (vector dispatch, ISR-context save/restore, EOI ack), companion to the 2x Context_Switch_Time task inflation from PR feat(rta): Context_Switch_Time folded into recurrence (v0.9.2) #198.
  • Inflation is applied once at ISR construction and propagates into both per-CPU utilization (Tier 1) and the IRQ-chain budget; emits a new IsrOverheadInflation Info diagnostic mirroring the existing OverheadInflation style.
  • Default unset = 0 (byte-identical to v0.9.2). Adds get_interrupt_overhead accessor with Spar_Timing -> legacy SPAR_Properties -> bare lookup chain for v0.8.x advisory compatibility.

Test plan

  • interrupt_overhead_inflates_isr_wcet — Interrupt_Overhead = 50us inflates 100us ISR -> 150us (1x, not 2x), IsrOverheadInflation diagnostic emitted.
  • no_interrupt_overhead_byte_identical_to_pre_c1 — property absent: no diagnostic, baseline RTA preserved.
  • interrupt_overhead_combined_with_context_switch_for_handler — Sporadic ISR with Interrupt_Overhead AND a handler thread with Context_Switch_Time: ISR side gets 1x, handler thread gets 2x, both diagnostics emitted independently.
  • cargo clippy -p spar-analysis --all-targets -- -D warnings clean; cargo fmt --all clean; rivet validate PASS.

Closes the Tier A #5 reviewer follow-up after v0.9.2's task-side context-switch fix (REQ-RTA-010).

🤖 Generated with Claude Code

…ont.)

Folds Spar_Timing::Interrupt_Overhead into each ISR's effective WCET as
1x per firing — vector dispatch, ISR-context save/restore, EOI ack —
mirroring the 2x Context_Switch_Time inflation tasks pay per dispatch
(REQ-RTA-008 / PR #198). The ISR pays this kernel-resident interrupt
cost once per firing, not twice; default unset = 0 keeps RTA output
byte-identical to v0.9.2. Closes the Tier A #5 reviewer follow-up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@avrabe avrabe enabled auto-merge (squash) May 10, 2026 19:19
@codecov

codecov Bot commented May 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.12644% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/spar-analysis/src/rta.rs 97.77% 3 Missing ⚠️
crates/spar-analysis/src/property_accessors.rs 94.87% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@avrabe avrabe merged commit e2ae6b4 into main May 11, 2026
16 checks passed
@avrabe avrabe deleted the feat/v0.9.x-c1-interrupt-overhead branch May 11, 2026 03:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant