LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Peter Staubach <staubach@redhat.com>
To: Rik van Riel <riel@redhat.com>
Cc: Valdis.Kletnieks@vt.edu,
	Anton Salikhmetov <salikhmetov@gmail.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH][RFC][BUG] updating the ctime and mtime time stamps in msync()
Date: Wed, 09 Jan 2008 17:19:20 -0500	[thread overview]
Message-ID: <47854868.60604@redhat.com> (raw)
In-Reply-To: <20080109170633.292644dc@cuia.boston.redhat.com>

Rik van Riel wrote:
> On Wed, 09 Jan 2008 16:06:17 -0500
> Valdis.Kletnieks@vt.edu wrote:
>   
>> On Wed, 09 Jan 2008 15:50:15 EST, Rik van Riel said:
>>
>>     
>>> Could you explain (using short words and simple sentences) what the
>>> exact problem is?
>>>       
>> It's like this:
>>
>> Monday  9:04AM:  System boots, database server starts up, mmaps file
>> Monday  9:06AM:  Database server writes to mmap area, updates mtime/ctime
>> Monday <many times> Database server writes to mmap area, no further update..
>> Monday 11:45PM:  Backup sees "file modified 9:06AM, let's back it up"
>> Tuesday 9:00AM-5:00PM: Database server touches it another 5,398 times, no mtime
>> Tuesday 11:45PM: Backup sees "file modified back on Monday, we backed this up..
>> Wed  9:00AM-5:00PM: More updates, more not touching the mtime
>> Wed  11:45PM: *yawn* It hasn't been touched in 2 days, no sense in backing it up..
>>
>> Lather, rinse, repeat....
>>     
>
> On the other hand, updating the mtime and ctime whenever a page is dirtied
> also does not work right.  Apparently that can break mutt.
>
>   

Could you elaborate on why that would break mutt?  I am assuming
that the pages being modified are mmap'd, but if they are not, then
it is very clear why mutt (and anything else) would break.

> Calling msync() every once in a while with Anton's patch does not look like a
> fool proof method to me either, because the VM can write all the dirty pages
> to disk by itself, leaving nothing for msync() to detect.  (I think...)
>
> Can we get by with simply updating the ctime and mtime every time msync()
> is called, regardless of whether or not the mmaped pages were still dirty
> by the time we called msync() ?

As long as we can keep track of that information and then remember
it for an munmap so that eventually the file times do get updated,
then this should work.

It would seem that a better solution would be to update the file
times whenever the inode gets cleaned, ie. modified pages written
out and the inode synchronized to the disk.  That way, long running
programs would not have to msync occasionally in order to have
the data file properly backed up.

    Thanx...

       ps

       ps

  reply	other threads:[~2008-01-09 22:19 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-07 17:54 Anton Salikhmetov
2008-01-09 11:32 ` Anton Salikhmetov
2008-01-09 11:47   ` Jakob Oestergaard
2008-01-09 12:22   ` Jakob Oestergaard
2008-01-09 14:41   ` Jesper Juhl
2008-01-09 15:31     ` Anton Salikhmetov
2008-01-09 21:28   ` Peter Staubach
2008-01-09 20:50 ` Rik van Riel
2008-01-09 21:01   ` Klaus S. Madsen
2008-01-09 21:06   ` Valdis.Kletnieks
2008-01-09 22:06     ` Rik van Riel
2008-01-09 22:19       ` Peter Staubach [this message]
2008-01-09 22:33       ` Jakob Oestergaard
2008-01-09 23:41         ` Rik van Riel
2008-01-10  0:03           ` Anton Salikhmetov
2008-01-10  8:51             ` Jakob Oestergaard
2008-01-10 10:53               ` Anton Salikhmetov
2008-01-10 15:45                 ` Rik van Riel
2008-01-10 15:56                   ` Anton Salikhmetov
2008-01-10 16:07                     ` Rik van Riel
2008-01-10 16:40                       ` Anton Salikhmetov
2008-01-10 16:52                         ` Peter Staubach
2008-01-10 16:46                       ` Peter Staubach
2008-01-10 20:48           ` Valdis.Kletnieks
2008-01-10  0:48       ` Anton Salikhmetov
2008-01-10  0:40   ` Anton Salikhmetov
2008-01-09 21:18 ` Peter Staubach

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47854868.60604@redhat.com \
    --to=staubach@redhat.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=riel@redhat.com \
    --cc=salikhmetov@gmail.com \
    --subject='Re: [PATCH][RFC][BUG] updating the ctime and mtime time stamps in msync()' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).