Re: 2.1.xxx makes Electric Fence 22x slower

Bruno Haible (haible@ilog.fr)
Sun, 30 Aug 1998 18:24:06 +0200 (MET DST)


Linus wrote:

> 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