[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <E1JHg4a-0002ep-Et@pomaz-ex.szeredi.hu>
Date: Wed, 23 Jan 2008 14:55:24 +0100
From: Miklos Szeredi <miklos@...redi.hu>
To: salikhmetov@...il.com
CC: miklos@...redi.hu, linux-mm@...ck.org, jakob@...hought.net,
linux-kernel@...r.kernel.org, valdis.kletnieks@...edu,
riel@...hat.com, ksm@...dk, staubach@...hat.com,
jesper.juhl@...il.com, torvalds@...ux-foundation.org,
a.p.zijlstra@...llo.nl, akpm@...ux-foundation.org,
protasnb@...il.com, r.e.wolff@...wizard.nl,
hidave.darkstar@...il.com, hch@...radead.org
Subject: Re: [PATCH -v8 4/4] The design document for memory-mapped file times update
>
> Miklos, thanks for your program. Its output is given below.
>
> debian:~/miklos# mount | grep mnt
> tmpfs on /mnt type tmpfs (rw)
> debian:~/miklos# ./miklos /mnt/file
> begin 1201089989 1201089989 1201085868
> write 1201089990 1201089990 1201085868
> mmap 1201089990 1201089990 1201089991
> store b 1201089992 1201089992 1201089991
> msync 1201089992 1201089992 1201089991
> store c 1201089994 1201089994 1201089991
> msync 1201089994 1201089994 1201089991
> store d 1201089996 1201089996 1201089991
> munmap 1201089996 1201089996 1201089991
> close 1201089996 1201089996 1201089991
> sync 1201089996 1201089996 1201089991
> debian:~/miklos# ./miklos /mnt/file -r
> begin 1201090025 1201090025 1201089991
> write 1201090026 1201090026 1201089991
> mmap 1201090026 1201090026 1201090027
> fetch x 1201090026 1201090026 1201090027
> store b 1201090026 1201090026 1201090027
> msync 1201090026 1201090026 1201090027
> fetch y 1201090026 1201090026 1201090027
> store c 1201090032 1201090032 1201090027
> msync 1201090032 1201090032 1201090027
> fetch z 1201090032 1201090032 1201090027
> store d 1201090036 1201090036 1201090027
> munmap 1201090036 1201090036 1201090027
> close 1201090036 1201090036 1201090027
> sync 1201090036 1201090036 1201090027
> debian:~/miklos#
>
> I think that after the patches applied the msync() system call does
> everything, which it is expected to do. The issue you're now talking
> about is one belonging to do_fsync() and the design of the tmpfs
> driver itself, I believe.
Right. My problem is that msync() does _too_much_ for ram-backed
mappings. It shouldn't write protect pages in this case, because it
has a high cost and dubious value.
Similar argument probably holds for file_update_time() from the fault
handlers. They should examine, if it's a ram-backed fs (with
mapping_cap_account_dirty()) and not update the times for those.
It's better to consistently not update the times, than to randomly do
so, which could lead to false expectations, and hard to track down
bugs.
Miklos
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists