[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

2.4 / 2.5 VM plans



Hi,

since I've heard some rumours of you folks having come
up with nice VM ideas at USENIX and since I've been
working on various VM things (and experimental 2.5 things)
for the last months, maybe it's a good idea to see which
of your ideas have already been put into code and to see
which ideas fit together or are mutually exclusive.  :)

To start the discussion, here's my flameba^Wlist of ideas:

2.4:

1) re-introduce page aging, my small and simple experiments
   seem to indicate that page aging takes *less* cpu time
   than copying pages to/from highmem all the time (let alone
   making your applications wait for disk because we replaced
   the wrong page last time)

2) fix the latency problems of applications calling shrink_mmap
   and flushing infinite amounts of pages  (mostly fixed)

3) separate page replacement (page aging) and page flushing,
   currently we'll happily free a referenced clean page just
   because the unreferenced pages haven't been flushed to disk
   yet ...   this is very bad since the unreferenced pages often
   turn out to be things like executable code

   we could achieve this by augmenting the current MM subsystem
   with an inactive and scavenge list, in the process splitting
   shrink_mmap() into three better readable functions ... I have
   this mostly done

4) fix balance_dirty() to include inactive pages and have kflushd
   help kswapd by proactively flushing some of the inactive pages
   _before_ we run into trouble

5) implement some form of write throttling for VMAs so it'll be
   impossible for big mmap()s, etc, to competely fill memory
   with dirty pages

regards,

Rik
--
The Internet is not a network of computers. It is a network
of people. That is its real strength.

Wanna talk about the kernel?  irc.openprojects.net / #kernelnewbies
http://www.conectiva.com/		http://www.surriel.com/

--
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/