Partitions can deadlock
- 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.