IIRC, there once was a RedHat-only patch that made this configurable in RedHat kernels.
Ingo Molnar proposed something similar in 2007, but his patch wasn't merged.
Current kernels use a fixed one-day interval, introduced by commit 11ff6f05f1e836a6a02369a4c4b64757e484adc1 in March 2009.
Excerpt from fs/inode.c:
* With relative atime, only update atime if the previous atime is
* earlier than either the ctime or mtime or if at least a day has
* passed since the last atime update.
static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
struct timespec now)
if (!(mnt->mnt_flags & MNT_RELATIME))
* Is mtime younger than atime? If yes, update atime:
if (timespec_compare(&inode->i_mtime, &inode->i_atime) >= 0)
* Is ctime younger than atime? If yes, update atime:
if (timespec_compare(&inode->i_ctime, &inode->i_atime) >= 0)
* Is the previous atime value older than a day? If yes,
* update atime:
if ((long)(now.tv_sec - inode->i_atime.tv_sec) >= 24*60*60)
* Good, we can skip the atime update:
I'm not entirely sure if this also depends on the filesystem used. According to