Re: Streaming disk I/O kills file buffering and makes Linux unusable

Andrea Arcangeli (andrea@suse.de)
Mon, 23 Aug 1999 21:13:17 +0200 (CEST)


On 23 Aug 1999, Miquel van Smoorenburg wrote:

>things like readahead. You do want to be able to say that, once read,
>you don't need the data ever again. Simply put the page at the start
>of the LRU chain. Easy for read(), hard for mmap(), but for mmap you

Currently there is no one LRU in the VM so you have _no-way_.

The LRU in the buffer code are only for syncing dirty buffers (and btw
they are a bit messy since at least the BUF_LOCKED is not needed and
kflushd shouldn't ever look at it and waste time refiling clean buffers).

The LRU you want doesn't exists since it should be a page-map lru.

With my lru-page code infact you could easily add a new VM lru list and
always shrunk it when we are low on memory before going into the default
lru list. If it's empty or not freeable we'll go as usual.

Then you could put all page-cache pages belonging to an inode to such lru
list. You could also put all page-cache pages and in this case also the
buffers loaded by a special process in such fast-LRU-list.

We could add a flag to the inode and a flag to the task struct. The one in
the task-struct can be set via prctl. The one in the inode with a VFS
ioctl.

Currently the page-LRU patch is minimal (there are not these features) to
give it a way to be included.

ftp://ftp.suse.com/pub/people/andrea/kernel-patches/pending-2.3.x/page_lru-2.3.12-K

Andrea

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/