Closed lwrage closed 4 years ago
The definition in thread_properties.aadl says that in OSATE, but not the standard document. This is also highly dependent on the scheduling policy/RTOS. RTEMS uses the opposite convention.
Please file an errata on AADLv2.2 first to discuss the semantics we want to enforce.
"A larger value represents a higher priority" is from the standard document. This really is an OSATE bug. The analysis was written before AADLv2.2.
Rate group handling also has a bug, it only works for the rate group containing the thread with the highest rate. The following priority assignment should be fine (modulo wrong priority order) but reports a priority inversion for t2.
t0: thread T {
Priority => 10;
Period => 10ms;
};
t1: thread T {
Priority => 20;
Period => 20ms;
};
t2: thread T {
Priority => 15;
Period => 20ms;
};
THe checker allows the same priority for threads with different priorities. That is wrong.
Summary
The priority inversion checker interprets a higher priority property as lower priority. However, the description for
Thread_Properties::Priority
says "A larger value represents a higher priority."Steps to Reproduce
S.i
Environment