11.10 Invariant Violations

<< Click to Display Table of Contents >>

Navigation:  ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 11 - Architectural Invariants >

11.10 Invariant Violations

Any violation of an architectural invariant indicates a design bug or an implementation defect. Performance, convenience, or simplicity never justify violating an invariant.

 

Common violation patterns to watch for:

Architectural state modified before WB stage — violates single commit point (11.2.2)

Implicit ordering assumed between CPUs — violates weak ordering (11.3.1)

LL/SC reservation survives PAL transition — violates reservation lifetime (11.4.2)

Speculative instruction executes past barrier — violates serialization (11.2.4)

Exception delivered with younger instructions committed — violates precise execution (11.2.1)

MMIO access buffered or reordered — violates MMIO strong ordering (11.3.3)

Exception bypasses PAL entry — violates PAL-mediated delivery (11.6.3)

One CPU directly mutates another's pipeline state — violates per-CPU independence (11.7.2)

 

Machine checks (MachineCheckReason::SMP_BARRIER_TIMEOUT) are the system's last defense against invariant violations that would otherwise deadlock SMP coordination.