Skip to content

multikernel: make IPI publication ordered and recoverable - #7

Draft
nickolaev wants to merge 1 commit into
multikernel:masterfrom
nickolaev:ipi-transport
Draft

multikernel: make IPI publication ordered and recoverable#7
nickolaev wants to merge 1 commit into
multikernel:masterfrom
nickolaev:ipi-transport

Conversation

@nickolaev

Copy link
Copy Markdown

Summary

  • Serialize shared-ring producers with a bounded owner-and-slot gate.
  • Keep interrupts enabled while waiting for another kernel's producer.
  • Preserve FIFO publication and consumption.
  • Recover interrupted publication only after its producer CPU is confirmed parked.
  • Validate the private host/spawn transport layout before launch and require a ready acknowledgment before activation.
  • Use one x86 boot capability bit while keeping exact compatibility in the shared ABI version and ELF note.

Compatibility

The private shared transport ABI is bumped to version 3. Host and spawn kernels validate the ABI magic, version, structure size, boot context, manifest layout, and initialization acknowledgment.

An incompatible host/spawn pairing is rejected before the instance becomes active.

Serialize shared-ring producers with a bounded owner-aware gate. Preserve
FIFO publication and recover a gate only after its producer CPU is known
to be parked.

The gate and slot-state protocol change the private shared transport
layout. Add an exact pre-launch layout and protocol check at this boundary,
then require a transport initialization acknowledgment after both rings
have been validated and before marking the instance active.

Fail invalid manifests and missing acknowledgments closed. A spawn started
by a host without the pre-launch check validates the boot-context anchor
before using any shifted field and enters a local interrupt-disabled halt
loop on mismatch without trusting shared park state or touching reset and
APIC hardware.

Signed-off-by: Nikolay Nikolaev <nicknickolaev@gmail.com>
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