You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
In the sem-speed-test, the main thread stops the test by doing a task delay and then deleting the worker tasks.
When running on a hard real time kernel and a single processor system, if the worker threads are a higher priority than the main thread, then the main thread never gets CPU time to stop the test and it just runs infinitely.
To Reproduce
Run the test on a single-processor system such as VxWorks or RTEMS where the originating (shell) task is a (logically) lower priority than 50, which is the priority given to the worker tasks it creates. The test will never exit because the root task never gets CPU time again to cancel the worker tasks.
Expected behavior
The test should never run infinitely, regardless of (mis-)configuration.
System observed on:
RTEMS 4.11 on i686 (QEMU)
Additional context
The worker tasks should employ some type of hard limit so they do not run infinitely even if the priority is higher than the root task.
Reporter Info
Joseph Hickey, Vantage Systems, Inc.
The text was updated successfully, but these errors were encountered:
1. Add a hard limit to the execution (work) counter for the
sem-speed-test worker threads. With this they will self-exit
eventually even if the root task never gets CPU time to stop them.
2. Set the priority of the worker tasks to be logically lower, so
it is less likely to preempt the main task.
Note that the logical priority is inverted from the numeric value.
1. Add a hard limit to the execution (work) counter for the
sem-speed-test worker threads. With this they will self-exit
eventually even if the root task never gets CPU time to stop them.
2. Set the priority of the worker tasks to be logically lower, so
it is less likely to preempt the main task.
Note that the logical priority is inverted from the numeric value.
Describe the bug
In the sem-speed-test, the main thread stops the test by doing a task delay and then deleting the worker tasks.
When running on a hard real time kernel and a single processor system, if the worker threads are a higher priority than the main thread, then the main thread never gets CPU time to stop the test and it just runs infinitely.
To Reproduce
Run the test on a single-processor system such as VxWorks or RTEMS where the originating (shell) task is a (logically) lower priority than 50, which is the priority given to the worker tasks it creates. The test will never exit because the root task never gets CPU time again to cancel the worker tasks.
Expected behavior
The test should never run infinitely, regardless of (mis-)configuration.
System observed on:
RTEMS 4.11 on i686 (QEMU)
Additional context
The worker tasks should employ some type of hard limit so they do not run infinitely even if the priority is higher than the root task.
Reporter Info
Joseph Hickey, Vantage Systems, Inc.
The text was updated successfully, but these errors were encountered: