RTEMS | rtems: The counter conversions overflow above a few seconds (#5806)

Sebastian Huber (@sebhub) gitlab at rtems.org
Thu Oct 8 06:15:36 UTC 2026



Issue created by Sebastian Huber: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5806



`rtems_counter_ticks_to_sbintime()` and `rtems_counter_ticks_to_nanoseconds()` in `cpukit/sapi/src/cpucounterconverter.c` multiply the counter ticks with a 64-bit scaler. The 64-bit product overflows.

| Function | Wrong result from |
| -------- | ----------------- |
| `rtems_counter_ticks_to_sbintime()` | 2 s |
| `rtems_counter_ticks_to_nanoseconds()` | 4.29 s, where the cast to 32 bits also truncates the result |

The test framework measures durations with `rtems_counter_ticks_to_sbintime()`. On a 25 MHz counter, the performance test suite reported 107 s for a run of 731 s. On the 62.5 MHz counter of Qemu `xlnx-zcu102`, `rtems_counter_ticks_to_nanoseconds()` returns a wrong value for the maximum counter ticks.

The test `spcpucounter01` checks the conversions at one second alone.

Found while measuring the runtime of the red-black tree on several boards. This description was created with Claude Code assistance.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5806
You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/namespace/49/sent_notifications/6-3vrcr1zqfpcjl9ttscxypo5h2-1d/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20261008/e3fac929/attachment.htm>


More information about the bugs mailing list