0

Can anyway tell me where is the document for "AccuracySec=0" of systemd-timer? The most closed document I found is "AccuracySec=1us". I know the meaning of AccuracySec but just want to be sure that AccuracySec=0 means most accurate.

1 Answer 1

1

It's in man systemd.timer

AccuracySec=

Specify the accuracy the timer shall elapse with. Defaults to 1min. The timer is scheduled to elapse within a time window starting with the time specified in OnCalendar=, OnActiveSec=, OnBootSec=, OnStartupSec=, OnUnitActiveSec= or OnUnitInactiveSec= and ending the time configured with AccuracySec= later. Within this time window, the expiry time will be placed at a host-specific, randomized, but stable position that is synchronized between all local timer units. This is done in order to optimize power consumption to suppress unnecessary CPU wake-ups. To get best accuracy, set this option to 1us. Note that the timer is still subject to the timer slack configured via systemd-system.conf(5)'s TimerSlackNSec= setting. See prctl(2) for details. To optimize power consumption, make sure to set this value as high as possible and as low as necessary. ...

It doesn't define 0us, so that behaviour isn't defined. I don't think you can assume it means "best accuracy. 1us does mean "best accuracy" according to the man page.

3
  • thank you, I suspect that 'AccuracySec=0' is just programs' assumptions, maybe it works but that just because lucky.
    – osexp2000
    Apr 19, 2021 at 10:23
  • If no one can find the document of "AccuracySec=0" in several days, I will close this ticket.
    – osexp2000
    Apr 19, 2021 at 10:23
  • Yep, I think so... It does make sense that "0" would be an alias for "best accuracy". If we get better accuracy in the future, then applications which depend on 1us will need to make changes to make use of the new behaviour.
    – Stewart
    Apr 19, 2021 at 10:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .