> The avl code didn't have any replacement, but was removed because it no
> longer mattered for the common case (which was verify_area() - now
> thankfully gone).
Applications which need a lot of page-sized VMAs are:
* object-oriented databases,
* generational garbage collection (Java, Lisp),
* debugging tools (ElectricFence, software watchpoints).
When we put the AVL code in, it was because these applications spent a lot
of time in merge_segments(). verify_area() was not the point.
> I would try a one-entry cache, that's probably fine for all common uses.
For the first two classes of applications, such a cache won't help,
because when mprotect() is called on a page, it is usually far away
from the last page on which mprotect() was called.
"Common" or not, these applications have a lot of VMAs and do a lot
of mmap() and mprotect().
Bruno
-
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.altern.org/andrebalsa/doc/lkml-faq.html