Skip to content

Priority inversion check misinterprets priority property and other bugs #2243

@lwrage

Description

@lwrage

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

  1. Load the model below in OSATE
  2. Instantiate S.i
  3. On the instance model run Analyses -> Timing -> Check Rate Monotonic Priority Assignment
  4. There are errors reported even though threads with lower period have higher priority
package Issue1365
public

	system S
	end S;

	system implementation S.i
		subcomponents
			cpu: processor CPU;
			p: process P.i;
		properties
				Actual_Processor_Binding => (reference (cpu));
	end S.i;

	processor CPU
	end CPU;

	process P
	end P;

	process implementation P.i
		subcomponents
			t1: thread T {
				Priority => 3;
				Period => 10ms;
			};
			t2: thread T {
				Priority => 2;
				Period => 20ms;
			};
			t3: thread T {
				Priority => 1;
				Period => 40ms;
			};
	end P.i;

	thread T
		properties
			Dispatch_Protocol => Periodic;
	end T;

end Issue1365;

Environment

  • OSATE Version:
  • Operating System:

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions