From: William Lee Irwin III <wli@holomorphy.com>
To: Andrew Morton <akpm@zip.com.au>
Cc: Rik van Riel <riel@conectiva.com.br>,
"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: how not to write a search algorithm
Date: Sun, 4 Aug 2002 13:38:04 -0700 [thread overview]
Message-ID: <20020804203804.GD4010@holomorphy.com> (raw)
In-Reply-To: <3D4D87CE.25198C28@zip.com.au>
Rik van Riel wrote:
>> Good to hear that you found this one ;)
On Sun, Aug 04, 2002 at 01:00:14PM -0700, Andrew Morton wrote:
> The same test panics Alan's kernel with pte_chain oom, so I can't
> check whether/how well it fixes it :(
> 2.5 is no better off wrt pte_chain oom, and I expect it'll oops
> with this test when per-zone-LRUs are implemented.
> Is there a proposed way of recovering from pte_chain oom?
Yes. I'll outline my strategy here.
(1) alter pte-highmem semantics to sleep holding pagetable kmaps
(A) reserve some virtual address space for mm-local mappings
(B) shove pagetable mappings for "self" and "other" into it
(2) separate pte_chain allocation from insertion operations
(A) provide a hook to preallocate batches outside the locks
(B) convert the allocation to sleeping allocations
(C) rearrange pagetable modifications for error recovery and
to call preallocation hooks and pass in reserved state
(3) recovery from pte_chain proliferation by unmapping things on demand
(A) per-mm and per-vma accounting of pte_chain space consumption
(B) pte_chain memory recovery routine run on-demand
(C) budget-based allocation and mm-local pte_chain recycling
(4) recovery from pagetable proliferation by unmapping files on demand
(A) per-mm and per-vma accounting of pagetable space consumption
(B) per 3rd-level pagetable accounting of occupancy
(C) budget-based pagetable allocation and mm-local recycling
(D) pagetable memory recovery routine run on-demand
(5) recovery from pagetable proliferation by swapping anonymous pagetables
(A) per-mm and per-vma accounting of anonymous pagetable space
(B) per 3rd-level pagetable accounting of occupancy
(C) fault handling for non-present pmd's
(D) swap I/O for pagetable pages
(E) recovery of anonymous pagetable memory run on-demand
(6) Assign a global hard limit on the amount of space permissible to
allocate for pagetables & pte_chains and enforce it with (1)-(5).
Cheers,
Bill
--
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 prev parent reply other threads:[~2002-08-04 20:38 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-04 8:35 Andrew Morton
2002-08-04 13:16 ` Rik van Riel
2002-08-04 20:00 ` Andrew Morton
2002-08-04 19:54 ` Rik van Riel
2002-08-04 20:38 ` William Lee Irwin III [this message]
2002-08-04 21:09 ` Andrew Morton
2002-08-04 22:02 ` William Lee Irwin III
2002-08-04 22:43 ` Andrew Morton
2002-08-04 22:47 ` William Lee Irwin III
2002-08-05 3:00 ` Andrew Morton
2002-08-05 2:55 ` Rik van Riel
2002-08-05 7:40 ` William Lee Irwin III
2002-08-05 8:44 ` Andrew Morton
2002-08-05 10:50 ` William Lee Irwin III
2002-08-04 22:45 ` Daniel Phillips
2002-08-04 23:03 ` Andrew Morton
2002-08-04 23:00 ` William Lee Irwin III
2002-08-04 23:02 ` Daniel Phillips
2002-08-04 23:21 ` Andrew Morton
2002-08-05 0:03 ` Daniel Phillips
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=20020804203804.GD4010@holomorphy.com \
--to=wli@holomorphy.com \
--cc=akpm@zip.com.au \
--cc=linux-mm@kvack.org \
--cc=riel@conectiva.com.br \
/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