Messages in this thread | | | Subject | Re: [PATCH -v6 2/2] Updating ctime and mtime for memory-mapped files | From | Miklos Szeredi <> | Date | Fri, 18 Jan 2008 12:36:08 +0100 |
| |
> Possibly, I didn't see a quick way to break that iteration. > >From a quick glance at prio_tree.c the iterator isn't valid anymore > after releasing i_mmap_lock. Fixing that would be,.. 'fun'.
Maybe i_mmap_lock isn't needed at all, since msync holds mmap_sem, which protects the prio tree as well, no?
> I also realized I forgot to copy/paste the prio_tree_iter declaration > and ought to make all these functions static. > > But for a quick draft it conveys the idea pretty well, I guess :-)
Yes :)
There could also be nasty performance corner cases, like having a huge file mapped thousands of times, and having only a couple of pages dirtied between MS_ASYNC invocations. Then most of that page table walking would be just unnecessary overhead.
There's something to be said for walking only the dirty pages, and doing page_mkclean on them, even if in some cases that would be slower.
But I have a strong feeling of deja vu, and last time it ended with Andrew not liking the whole thing...
Miklos
| |