From: Rik van Riel <riel@conectiva.com.br>
To: k42@watson.ibm.com
Cc: linux-mm@kvack.org
Subject: object based reverse mapping, fundamental problem
Date: Fri, 9 Aug 2002 13:11:20 -0300 (BRT) [thread overview]
Message-ID: <Pine.LNX.4.44L.0208091302570.23404-100000@imladris.surriel.com> (raw)
Hi,
Ben LaHaise pointed me at a fundamental problem with object
based reverse mappings, something which isn't relevant for
Linux yet but is certainly an interesting problem the k42
people could have fun with ;)
The problem scenario is as follows:
- a large file (say a database) is being mmap()d by
multiple processes, say 100 processes
- each process maps multiple windows of that file,
say 100 windows each
The result is that there are 10000 mappings of that file!
Now imagine the pageout code wanting to evict a few pages
from this file and having to track down the page tables
that map a certain physical page.
Having to walk all 10000 mappings is just not acceptable,
if we did that any user could effectively DoS the machine,
even with reasonable resource limits on the user.
How could we efficiently find all (start, length) mappings
of the file that have our particular (file, offset) page
covered ?
Do the K42 people have some efficient datastructure to fix
this potential DoS or is this something we still have to
find a solution for ?
Note that page table entry based reverse mappings don't suffer
from this problem, but of course those have a per-page overhead
on fork+exec, which may not be good for other purposes.
kind regards,
Rik
--
Bravely reimplemented by the knights who say "NIH".
http://www.surriel.com/ http://distro.conectiva.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-mm.org/
next reply other threads:[~2002-08-09 16:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-09 16:11 Rik van Riel [this message]
2002-10-04 8:03 ` William Lee Irwin III
2002-08-16 21:04 Orran Y Krieger
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=Pine.LNX.4.44L.0208091302570.23404-100000@imladris.surriel.com \
--to=riel@conectiva.com.br \
--cc=k42@watson.ibm.com \
--cc=linux-mm@kvack.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox