Messages in this thread | | | From | "Buddy Lumpkin" <> | Subject | RE: why swap at all? | Date | Wed, 26 May 2004 05:55:50 -0700 |
| |
> Executables and shared libraries live in the filesystem > cache. Evicting those from memory - because swapping is > disabled and "the VM should remove something from cache > instead" - will feel exactly the same as swapping ...
I totally agree, you can't get away from evicting pages from memory to disk if your doing file system I/O because you eventually fill up memory. Any additional file system I/O requires evictions, period.
Trying to preference executables and shared libraries is difficult because they are backed by named files, hence they also pagecache. (kind of reminds me of that little white speck on chicken poop. If it came out of the chicken, it's chicken poop too :)
But there is the case where massive amounts of file system I/O (consider several fibre cards connecting to SAN attached storage that saturates the centerplane on some insanely large system) will force pages from running executables to be evicted, only to be faulted back a few milliseconds later. It's this thrashing effect that a separation eliminates if you have the ability to distinguish between executables (not just files mapped in executable but actual running processes) and non-executable pages.
Consider how silly it would be for a system running a single process that consumes only 100k that generates so much filesystem I/O that the process is constantly paged out. When it needs to wake up again, becomes runnable and the program counter starts to access pages within the process address space, it gets faulted back in.
Lather, Rinse, Repeat ...
--Buddy
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |