<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
>

  <channel rdf:about="http://lwn.net/headlines/244829/">
    <title>LWN: Comments on "Once upon atime"</title>
    <link>http://lwn.net/Articles/244829/</link>
    <description>
This is a special feed containing comments posted
to the individual LWN article titled &quot;Once upon atime&quot;.

    </description>

    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>2</syn:updateFrequency>
    <items>
      <rdf:Seq>
	<rdf:li resource="http://lwn.net/Articles/245913/rss" />
	<rdf:li resource="http://lwn.net/Articles/245188/rss" />
	<rdf:li resource="http://lwn.net/Articles/245097/rss" />
	<rdf:li resource="http://lwn.net/Articles/245085/rss" />
	<rdf:li resource="http://lwn.net/Articles/245052/rss" />
	<rdf:li resource="http://lwn.net/Articles/245009/rss" />
	<rdf:li resource="http://lwn.net/Articles/245002/rss" />
	<rdf:li resource="http://lwn.net/Articles/244942/rss" />
	<rdf:li resource="http://lwn.net/Articles/244941/rss" />
	<rdf:li resource="http://lwn.net/Articles/244915/rss" />
	<rdf:li resource="http://lwn.net/Articles/244904/rss" />
	<rdf:li resource="http://lwn.net/Articles/244879/rss" />
      
      </rdf:Seq>
    </items>

  </channel>
    <item rdf:about="http://lwn.net/Articles/245913/rss">
      <title>Popularity contest</title>
      <link>http://lwn.net/Articles/245913/rss</link>
      <dc:date>2007-08-17T15:19:00+00:00</dc:date>
      <dc:creator>endecotp</dc:creator>
      <description>
      The only program that I run that benefits from atime is Debian's &quot;popcon&quot;, which records which packages are installed and which of those has been used recently.  This would work well with the &quot;update atime when &amp;gt; 1 day&quot; approach suggested by Linus.&lt;br&gt;
&lt;p&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/245188/rss">
      <title>Once upon atime</title>
      <link>http://lwn.net/Articles/245188/rss</link>
      <dc:date>2007-08-11T01:12:02+00:00</dc:date>
      <dc:creator>xkahn</dc:creator>
      <description>
      Interestingly, Microsoft seems to have looked at this issue in the past.  From MSDN:  &lt;br&gt;
&lt;p&gt;
&lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/ms724290.aspx&quot;&gt;http://msdn2.microsoft.com/en-us/library/ms724290.aspx&lt;/a&gt;&lt;br&gt;
Not all file systems can record creation and last access time and not&lt;br&gt;
all file systems record them in the same manner. For example, on NT&lt;br&gt;
FAT, create time has a resolution of 10 milliseconds, write time has a&lt;br&gt;
resolution of 2 seconds, and access time has a resolution of 1 day&lt;br&gt;
(really, the access date). On NTFS, access time has a resolution of 1&lt;br&gt;
hour.&lt;br&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/245097/rss">
      <title>Does noatime imply nodiratime?</title>
      <link>http://lwn.net/Articles/245097/rss</link>
      <dc:date>2007-08-10T14:26:25+00:00</dc:date>
      <dc:creator>jzbiciak</dc:creator>
      <description>
      Actually, Andrew Morton actually corrected Ingo on this point: 
&lt;PRE&gt;
From: Andrew Morton 
To:	Ingo Molnar 
Subject: Re: [PATCH 00/23] per device dirty throttling -v8
Date:	Sun, 5 Aug 2007 00:29:34 -0700

On Sun, 5 Aug 2007 09:21:41 +0200 Ingo Molnar [email blocked] wrote:

&gt; even on a noatime,nodiratime filesystem

noatime is a superset of nodiratime, btw.
&lt;/PRE&gt;
I trust Andrew on this point.  :-)
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/245085/rss">
      <title>Once upon atime</title>
      <link>http://lwn.net/Articles/245085/rss</link>
      <dc:date>2007-08-10T12:39:23+00:00</dc:date>
      <dc:creator>liljencrantz</dc:creator>
      <description>
      One other possibility is to keep atime updates in memory and only write them out to disk if the page was to be flushed to disk anyway. That would mean storing atimes in memory in a separate structure outside of the regular page.&lt;br&gt;
&lt;p&gt;
The additional memory requirements should be relatively small, but the extra time needed to perform atime lookup might not be.&lt;br&gt;
&lt;p&gt;
It would also mean that after a crash atimes will be wrong.&lt;br&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/245052/rss">
      <title>Does noatime imply nodiratime?</title>
      <link>http://lwn.net/Articles/245052/rss</link>
      <dc:date>2007-08-10T06:41:24+00:00</dc:date>
      <dc:creator>tarvin</dc:creator>
      <description>
      OK. I've been using noatime systematically for years. And then I read about a prominent kernel developer like Molnar using both noatime and nodiratime, making me worried: Have I been missing out on I/O-performance for years?&lt;br&gt;
&lt;p&gt;
- But your definite statement is comforting, thanks. I'll keep using just &quot;noatime&quot;.&lt;br&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/245009/rss">
      <title>Does noatime imply nodiratime?</title>
      <link>http://lwn.net/Articles/245009/rss</link>
      <dc:date>2007-08-09T20:39:13+00:00</dc:date>
      <dc:creator>corbet</dc:creator>
      <description>
      Yep, I'm sure.  When in doubt, use the source.  From &lt;tt&gt;touch_atime()&lt;/tt&gt; in &lt;tt&gt;fs/inode.c&lt;/tt&gt;:
&lt;p&gt;
&lt;pre&gt;
void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
{
        /* ... */
        if (inode-&amp;gt;i_flags &amp;amp; S_NOATIME)
                return;
        if (IS_NOATIME(inode))
                return;
        if ((inode-&amp;gt;i_sb-&amp;gt;s_flags &amp;amp; MS_NODIRATIME) &amp;amp;&amp;amp; S_ISDIR(inode-&gt;i_mode))
                return;
&lt;/pre&gt;
&lt;p&gt;
So if NOATIME is set, the NODIRATIME flag is never even checked.
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/245002/rss">
      <title>Does noatime imply nodiratime?</title>
      <link>http://lwn.net/Articles/245002/rss</link>
      <dc:date>2007-08-09T20:17:21+00:00</dc:date>
      <dc:creator>tarvin</dc:creator>
      <description>
      &lt;p&gt;Are you sure about noatime implying nodiratime?&lt;/p&gt;

&lt;p&gt;mount(8) states:&lt;br /&gt;&lt;code&gt;
&amp;nbsp;&amp;nbsp;noatime&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do not update inode access times on this file system[...]&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;nodiratime&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do not update directory inode access times on this filesystem.
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;while mount(2) puts it this way:&lt;br /&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;MS_NOATIME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do not update access times for (all types of) files on this file system.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;MS_NODIRATIME&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do not update access times for directories on this file system.
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I wonder how to interpret mount(2)'s &lt;em&gt;(all types of) files&lt;/em&gt; for noatime: Is a directory considered a file in this context?&lt;/p&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/244942/rss">
      <title>nodiratime</title>
      <link>http://lwn.net/Articles/244942/rss</link>
      <dc:date>2007-08-09T16:17:59+00:00</dc:date>
      <dc:creator>corbet</dc:creator>
      <description>
      noatime implies nodiratime - it's a superset.  You can use nodiratime by itself to turn off the updates on directories only.  As you note, it does not seem to be widely used.
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/244941/rss">
      <title>nodiratime</title>
      <link>http://lwn.net/Articles/244941/rss</link>
      <dc:date>2007-08-09T16:12:40+00:00</dc:date>
      <dc:creator>elanthis</dc:creator>
      <description>
      Everyone knows about noatime, but it seems almost nobody uses nodiratime.&lt;br&gt;
&lt;p&gt;
The thread this discussion was in notes that the kernel devs like Linus explicitly not only noatime, but also nodiratime.  I ASSume that noatime only affects files and that directories need nodiratime.&lt;br&gt;
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/244915/rss">
      <title>Once upon atime</title>
      <link>http://lwn.net/Articles/244915/rss</link>
      <dc:date>2007-08-09T14:52:28+00:00</dc:date>
      <dc:creator>davecb</dc:creator>
      <description>
      The article notes: &lt;I&gt; It was suggested that, whenever a file's inode is to be written to disk anyway, the kernel might as well update atime as well. Alan Cox objected that this change might make the overall behavior less predictable, which might not be desirable. &lt;/I&gt;

&lt;P&gt;Solaris has a &quot;defer atime&quot; mount option that does the atime update
only when other disk I/O is scheduled, which gives a fairly fine-grained
update, and makes the behavior less prefictable, but &lt;I&gt;closer
to what happens when atime is turned on&lt;/I&gt;.  This approach has
been in place for a number of years (five or six, at least) and
doesn't confuse programs or unsuspecting users.

&lt;P&gt;--dave
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/244904/rss">
      <title>noatime and mail programs</title>
      <link>http://lwn.net/Articles/244904/rss</link>
      <dc:date>2007-08-09T12:26:22+00:00</dc:date>
      <dc:creator>rfunk</dc:creator>
      <description>
      I'm pretty sure the noatime incompatibility with mail programs shows up 
only when using a single-file mailbox format (usually &lt;a 
href=&quot;http://en.wikipedia.org/wiki/Mbox&quot;&gt;mbox&lt;/a&gt;).  Yet another reason to 
use &lt;a href=&quot;http://en.wikipedia.org/wiki/Maildir&quot;&gt;maildir&lt;/a&gt; instead.
      
      </description>
    </item>
    <item rdf:about="http://lwn.net/Articles/244879/rss">
      <title>Defer updates</title>
      <link>http://lwn.net/Articles/244879/rss</link>
      <dc:date>2007-08-09T09:09:39+00:00</dc:date>
      <dc:creator>addw</dc:creator>
      <description>
      Part of the reason that atime causes disk traffic is that if a file is read many times (each read satisfied from cache) an atime update will be generated for each time the file is read. So you get multiple disk writes to same the inodes over and over.&lt;br&gt;
&lt;p&gt;
Why not defer the inode updates, then you might get one set of disk writes either when the file system is unmounted or when it becomes idle or at scheduled intervals (eg every 1/2 hour). In practice many systems do not open large numbers of files, but repeatedly access a subset time and again. The usual exception to this is the backup program.&lt;br&gt;
&lt;p&gt;
From my point of view: if the system dies before it writes the atime out then not a lot is lost; maybe a spurious ''you have mail'' when I login again.&lt;br&gt;
&lt;p&gt;
Memory usage is the primary cost as the in-memory inode needs to be kept longer than it normally would be. This could be ameliorated by having a new strucut (device, inode#, atime) to store this info if we trash the in-memory inode.&lt;br&gt;
      
      </description>
    </item>
</rdf:RDF>

