linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Syncing the page cache
@ 2000-08-12 18:42 Daniel Phillips
  0 siblings, 0 replies; only message in thread
From: Daniel Phillips @ 2000-08-12 18:42 UTC (permalink / raw)
  To: linux-mm

Hi, this is my first appearance on this list.  I was spelunking through the VFS and 
I came up against something that was a problem before (in 2.2.13) and it seems
to be even more of a problem now.  In short, it seems like sync doesn't, and 
even if it did, it wouldn't be doing the right thing.  Here's a (edited) log from 
#kernelnewbies that states the problem as clearly as anything I could write 
from scratch:

<surf>	riel, question: I'm a filesystem, and I need a mm call that forces all dirty pages currently 
	mapped to my files (by file_write) through to my blocks - is there something like that now?  
<riel>	surf: I guess so ... otherwise you couldn't unmount filesystems ;) 
<surf>	riel, good observation, I just have to make sure it can be called without the unmount 
<cesarb>	surf: I think it's the same one as the one sync(1) uses... 
<surf>	cesarb, that one was really screwed up when I tried to use it back in 2.2.13 
<surf>	ok, cesarb, I'll check it 
<surf>	riel, ok, it's still as I feared - this is still all done by sync_buffers which just doesn't know
	what to do.
<surf>	riel, this is the same problem as the ->flush you're working on, it's the flip side of it

<surf>	ok, anyone who's interested, the problem with sync_buffers is that it
	trys to guess  which pages need synching just by looking at the buffer lists. 
	It can't possibly know from  that - it's *going* to do the wrong thing
<surf>	worse: file_fsync syncs all the buffers of a file but does not sync pages that may be 
	mapped to them - somebody tell me how this is ever going to work
<surf>	ak, I'm beginning to suspect that sync is no sync at all.  Unless I've really missed 
	something...

<surf>	riel, the sync code in VFS looks braindamaged - doesn't seem to do anything to the page 
	cache at all
<riel> 	surf: that's true
<riel> 	surf: until now all dirty pages are in the buffer lists
<surf> 	well, what about dirty pages?
<riel> 	surf: we need to change that and have a dirty page list
<surf> 	yes
<surf> 	please allow me to have some input :-)
<surf> 	because, I need to have some pretty specifc control, of the type I mentioned  before...  
<riel> 	surf: subscribe to linux-mm@kvack.org, if you haven't already done so ;)   
<surf> 	riel, ok

OK, there's the problem.  At least, I think it's a problem.  I'm not proposing any 
specific solution yet, and truthfully, I haven't thought enough about what the ideal
solution would be.  I thought I'd start by stating the problem...

-- 
Daniel
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2000-08-12 18:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-08-12 18:42 Syncing the page cache Daniel Phillips

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox