ArithmeticException thrown when scaling a core's frequency
An ArithmeticException
is thrown when calculating the duration of a
resource allocation after scaling the respective core’s frequency by
300%.
Cause
In cases where the assigned frequency is exactly three times the base
frequency, the calculation of their ratio results in a non terminating
decimal expansion (0.333333…). As the call to
BigDecimal.divide(BigDecimal)
in
TaskWcetTableStaticImpl.getWcet(TaskWcetTable, Task, ExecutionUnit, long)
does not specify how to handle the rounding an ArithmeticException
is
thrown.
How to reproduce
- Import attached project
- Import the project into the DSE view
- Switch to the schedule synthesis view
- Select the checkbox for latency minimization
- Run the DSE
(from redmine: issue id 3826, created on 2019-09-25, closed on 2019-09-26)
- Uploads:
- test_dse_hierarchical.af3_23 Minimal AF3 project for testing