1. 01 Sep, 2020 1 commit
  2. 31 Aug, 2020 1 commit
  3. 28 Aug, 2020 1 commit
    • Jim Brunner's avatar
      Use H/W Monotonic clock and updates to AE (#7644) · c01e94a4
      Jim Brunner authored
      Update adds a general source for retrieving a monotonic time.
      In addition, AE has been updated to utilize the new monotonic
      clock for timer processing.
      
      This performance improvement is **not** enabled in a default build due to various H/W compatibility
      concerns, see README.md for details. It does however change the default use of gettimeofday with
      clock_gettime and somewhat improves performance.
      
      This update provides the following
      1. An interface for retrieving a monotonic clock. getMonotonicUs returns a uint64_t (aka monotime)
         with the number of micro-seconds from an arbitrary point. No more messing with tv_sec/tv_usec.
         Simple routines are provided for measuring elapsed milli-seconds or elapsed micro-seconds (the
         most common use case for a monotonic timer). No worries about time moving backwards.
      2. High-speed assembler implementation for x86 and ARM. The standard method for retrieving the
         monotonic clock is POSIX.1b (1993): clock_gettime(CLOCK_MONOTONIC, timespec*). However, most
         modern processors provide a constant speed instruction clock which can be retrieved in a fraction
         of the time that it takes to call clock_gettime. For x86, this is provided by the RDTSC
         instruction. For ARM, this is provided by the CNTVCT_EL0 instruction. As a compile-time option,
         these high-speed timers can be chosen. (Default is POSIX clock_gettime.)
      3. Refactor of event loop timers. The timer processing in ae.c has been refactored to use the new
         monotonic clock interface. This results in simpler/cleaner logic and improved performance.
      c01e94a4
  4. 06 Aug, 2020 1 commit
  5. 22 Jul, 2020 1 commit
  6. 10 Jul, 2020 1 commit
  7. 05 Feb, 2020 1 commit
  8. 14 Jan, 2020 1 commit
  9. 25 Jun, 2019 1 commit
  10. 09 Mar, 2019 1 commit
  11. 03 Jan, 2019 1 commit
  12. 12 Oct, 2018 1 commit
  13. 11 Sep, 2018 1 commit
  14. 19 Jun, 2018 1 commit
  15. 28 Jul, 2017 1 commit
  16. 07 Jun, 2016 4 commits
  17. 30 Apr, 2016 1 commit
  18. 04 Nov, 2015 8 commits
  19. 28 Apr, 2015 2 commits
  20. 13 Feb, 2015 8 commits
  21. 08 Jan, 2015 2 commits