It seems to me that, rather than having the kernel maintain a timer (or
multiple timers, one per mount) itself, it would make sense to have
entries in /sys which, when written to, cause the file system layer to
flush all atime data to the mounted volume.
Something like
/sys
/sys/atime
/sys/atime/all
/sys/atime/<mountpoint id>/flush
where <mountpoint id> would be the name of the file system
(e.g. /sys/atime/usr/flush).
The only sticky part would be how to describe "/" in such a system.
(Better still would be a /sys/ system for each file system with the
various parameters (e.g. uid, journal) as entries + an entry for
flushing atime, but that is beyond the scope of this discussion.)
That would truly let userspace set policy, while the kernel provides
mechanism. Thus, a script that depends upon atime being accurate could
simply tickle the sysfs entries as needed before running.
--