Subject: Re: Page daemon behavior part N
To: None <thorpej@zembu.com>
From: Sean Doran <smd@ebone.net>
List: tech-kern
Date: 01/25/2001 19:27:03
jthorpe writes
| > We should be able to fix that by puting UBC pages directly on to the
| > inactive list as soon as current UBC operation is complete. As far
| > as I'm concerned there's no reason UBC pages should ever be `active'
| > unless they are mmapp()ed into some process' address space.
|
| I agree completely.
Uh, just checking: are we are going to give better performance to
processes which mmap in a file and then sparsely look at / touch
pages, compared to a process that uses open/lseek/read/write to
look at / modify the same file in a sparse manner?
| However, still is the case that pages could be not cleaned quickly enough.
| Maybe we need to have more aggressive cleaning of pages recently involved
| in a UBC write operation?
This is probably smart for sequential bulk file writing, probably
not so great for directory blocks that were written out, or any
kind of "too-small" block-size... imagine "process | dd of=foo bs=512"
under heavy loads leading to the same block being zorched from the
cache multiple times, while something LRU is staying in core.
I'm kinda leery of a one-size-fits-all pageout policy: NetBSD
wants to run on vastly different systems in terms of amount of memory
and secondary storage cost, and NetBSD users are a pretty diverse
bunch in terms of system utilization.
Sean.