From: Jamie Lokier <lk@tantalophile.demon.co.uk>
To: Linus Torvalds <torvalds@transmeta.com>,
"H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: /proc/<n>/maps getting _VERY_ long
Date: Mon, 6 Aug 2001 19:41:20 +0100 [thread overview]
Message-ID: <20010806194120.A5803@thefinal.cern.ch> (raw)
In-Reply-To: <20010805171202.A20716@weta.f00f.org> <20010805204143.A18899@alcove.wittsend.com> <9kkq9k$829$1@penguin.transmeta.com> <9kkr7r$mov$1@cesium.transmeta.com> <9kl6aa$87l$1@penguin.transmeta.com>
In-Reply-To: <9kl6aa$87l$1@penguin.transmeta.com>; from torvalds@transmeta.com on Mon, Aug 06, 2001 at 04:26:50AM +0000
Linus Torvalds wrote:
> >Do you count applications which selectively mprotect()'s memory (to
> >trap SIGSEGV and maintain coherency with on-disk data structures) as
> >"broken applications"?
> >
> >Such applications *can* use large amounts of mprotect()'s.
>
> Note that such applications tend to not get any advantage from merging -
> it does in fact only slow things down (because then the next mprotect
> just has to split the thing again).
>
> No, they aren't broken, but they should know that the use of lots of
> small memory segments (even if it is a design goal) can and will slow
> down page faulting, and use more memory for MM management for example.
>
> Linux does have a log(n) vma lookup, so the slowdown isn't huge.
There are garbage collectors that use mprotect() and SEGV trapping per
page. It would be nice if there was a way to change the protections per
page without requiring a VMA for each one.
Btw, Linux has pretty fast SIGSEGV handling (the fastest of any
OS/machine combination that I measured), so it's a good platform for
this sort of thing. I measured 7.75 microseconds per page for SEGV
trapping followed by mprotect() in the handler, on a particular test on
a 600MHz Pentium III.
-- Jamie
next prev parent reply other threads:[~2001-08-10 21:31 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-04 15:43 /proc/<n>/maps getting _VERY_ long Chris Wedgwood
2001-08-05 2:17 ` Rik van Riel
2001-08-05 5:12 ` Chris Wedgwood
2001-08-05 13:06 ` Alan Cox
2001-08-05 13:18 ` Chris Wedgwood
2001-08-05 23:07 ` Jakob Østergaard
2001-08-05 23:41 ` Linus Torvalds
2001-08-06 0:41 ` Michael H. Warfield
2001-08-06 1:01 ` Linus Torvalds
2001-08-06 1:17 ` H. Peter Anvin
2001-08-06 4:26 ` Linus Torvalds
2001-08-06 6:30 ` H. Peter Anvin
2001-08-06 18:41 ` Jamie Lokier [this message]
2001-08-10 21:55 ` Linus Torvalds
2001-08-10 22:00 ` H. Peter Anvin
2001-08-10 23:03 ` Nicolas Pitre
2001-08-10 23:26 ` Linus Torvalds
2001-08-10 23:55 ` Rik van Riel
2001-08-11 1:04 ` Pavel Machek
2001-08-06 11:52 ` Alan Cox
2001-08-06 12:23 ` Chris Wedgwood
2001-08-06 13:17 ` Alan Cox
2001-08-06 13:55 ` Chris Wedgwood
2001-08-06 9:43 ` [LONGish] Brief analysis of VMAs (was: /proc/<n>/maps getting _VERY_ long) Chris Wedgwood
-- strict thread matches above, loose matches on Subject: below --
2001-08-05 6:44 /proc/<n>/maps getting _VERY_ long David Luyer
2001-08-05 7:21 ` Anders Eriksson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010806194120.A5803@thefinal.cern.ch \
--to=lk@tantalophile.demon.co.uk \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.