DLR-FT / DLR-FT/a653rs-linux

Partitions can deadlock

Open
#121 2 comments 0 reactions 0 assignees View on GitHub
ARINC 653 Part 4 bug
Dominant language
Rust
Stars
11
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Since f50997f partitions can deadlock.
This happens when the aperodic process tries to send something via the "syscall" `UnixDatagram` to the hypervisor, but the hypervisor freezes the partition in this very moment. When the next partition time window comes around, the periodic process is scheduled first (unfrozen) but it never computes. We think, this is because the aperiodic process is frozen during a critical section of the send, which locks the entire process. Since f50997f processes within a partition are actually threads of a single process. This would explain, why a freeze during a critical section in the aperiodic process could lock the perodic process out of executing. This results in a deadlock, because the aperiodic process is only scheduled after the periodic process finishes its work in this partition time window, and since the periodic process can not execute, this never happens.

This class of errors/deadlocks can be avoided by moving intra-partition scheduling into each partition

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.