From: Nick Piggin <nickpiggin@yahoo.com.au>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: Andi Kleen <ak@suse.de>,
Linux Memory Management <linux-mm@kvack.org>,
Hugh Dickins <hugh@veritas.com>,
Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH 4/10] alternate 4-level page tables patches
Date: Sun, 19 Dec 2004 11:05:22 +1100 [thread overview]
Message-ID: <41C4C5C2.5000607@yahoo.com.au> (raw)
In-Reply-To: <20041218124635.GL771@holomorphy.com>
William Lee Irwin III wrote:
> William Lee Irwin III wrote:
>
>>>If clear_page_tables() implemented perfect GC.
>
>
> On Sat, Dec 18, 2004 at 10:55:58PM +1100, Nick Piggin wrote:
>
>>Oh... well it does perfectly free memory in the context of what ranges
>>have been previously cleared with clear_page_tables. So that doesn't
>>free you from the requirement of calling clear_page_tables at some
>>point.
>>I suspect though, you are referring to refcounting, in which case yes,
>>GC could probably be performed at unmap time, and clear_page_tables
>>could disappear. I still think it would be too costly to refcount down
>>to the pte_t level, especially SMP-wise.... but I'm just basing that
>>on a few minutes of thought, so - I don't really know.
>
>
> vmas are unmapped one-by-one during process destruction.
>
Yeah but clear_page_tables isn't called for each vma that is unmapped
at exit time. Rather, one big one is called at the end - I suspect
this is usually more efficient.
>
> William Lee Irwin III wrote:
>
>>>Counterexamples would be illustrative.
>
>
> On Sat, Dec 18, 2004 at 10:55:58PM +1100, Nick Piggin wrote:
>
>>Oh, just workloads where memory is fairly dense in virtual space, and
>>not shared (much). Non-oracle workloads, perhaps? :)
>>Seriously? On my typical desktop, I have 250MB used, of which 1MB is
>>page tables, I suspect this is a pretty typical ratio on desktops,
>>but I have less experience with high end database servers and that type
>>of stuff.
>>I was hoping you could provide an example rather than me a counter ;)
>
>
> Page replacement is largely irrelevant to databases. Administrators
> etc. rather go through pains to avoid page replacement and at some
> cost. They rather reclaim when page replacement occurs. More beneficial
> for databases would be increasing the multiprogramming level a system
> can maintain without page replacement or background data structure
> reclamation. This is, of course, not to say that databases can
> tolerate leaks or effective leaks of kernel memory or data structures.
>
OK. Well with the simple patch I've shown, we no longer 'leak' pagetables
(although the unmap-time cost may require moving to a partially refcounted
approach).
Does anyone know of workloads that have significant clear_page_tables
cost?
> Effective eviction of process data is far more pertinent to laptops and
> desktops, where every wasted pagetable page is another page of
> userspace program data that has to be swapped out and another write to
> a disk spun by a battery with a limited lifetime (though the timer is
> probably a larger concern wrt. battery life). Idle processes are likely
> to be the largest concern there. The kernel's memory footprint
> is always pure overhead, and pagetables are a very large part of it.
>
> (a) idle bloatzilla
> (b) idle mutt
> (c) idle shells
> (d) numerous daemons started up by initscripts and rarely ever invoked
>
Oh sure, but in those cases, the pagetables aren't such a big waste
of space, because memory access isn't too sparse, and you don't have
a huge amount of sharing (even executables, shared libraries - there
just aren't that many processes running to make page tables a large
fraction of resident memory).
So I'm not saying there are no savings to be had at all, but just that
maybe they aren't worth it (I don't know - maybe it is possible to do
a full refcounting implementation without adding fastpath overhead).
I mean, I've got 250MB used and only 1/250th of that is in pagetables.
--
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/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>
next prev parent reply other threads:[~2004-12-19 0:05 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-18 6:55 [RFC][PATCH 0/10] alternate 4-level page tables patches Nick Piggin
2004-12-18 6:55 ` [PATCH 1/10] " Nick Piggin
2004-12-18 6:56 ` [PATCH 2/10] " Nick Piggin
2004-12-18 6:56 ` [PATCH 3/10] " Nick Piggin
2004-12-18 6:57 ` [PATCH 4/10] " Nick Piggin
2004-12-18 6:58 ` [PATCH 5/10] " Nick Piggin
2004-12-18 6:58 ` [PATCH 6/10] " Nick Piggin
2004-12-18 6:59 ` [PATCH 7/10] " Nick Piggin
2004-12-18 7:00 ` [PATCH 8/10] " Nick Piggin
2004-12-18 7:00 ` [PATCH 9/10] " Nick Piggin
2004-12-18 7:01 ` [PATCH 10/10] " Nick Piggin
2004-12-18 7:31 ` Andi Kleen
2004-12-18 7:46 ` Nick Piggin
2004-12-18 8:08 ` Andrew Morton
2004-12-18 9:48 ` Andi Kleen
2004-12-18 19:06 ` Linus Torvalds
2004-12-20 17:43 ` Andi Kleen
2004-12-20 17:47 ` Randy.Dunlap
2004-12-20 18:08 ` Linus Torvalds
2004-12-20 18:15 ` Linus Torvalds
2004-12-20 18:19 ` Andi Kleen
2004-12-20 18:47 ` Linus Torvalds
2004-12-20 18:52 ` Linus Torvalds
2004-12-20 18:59 ` Andi Kleen
2004-12-20 18:57 ` Randy.Dunlap
2004-12-18 9:05 ` [PATCH 4/10] " Nick Piggin
2004-12-18 9:50 ` Andi Kleen
2004-12-18 10:06 ` Nick Piggin
2004-12-18 10:11 ` Andi Kleen
2004-12-18 10:22 ` Nick Piggin
2004-12-18 10:29 ` Nick Piggin
2004-12-18 11:06 ` William Lee Irwin III
2004-12-18 11:17 ` Nick Piggin
2004-12-18 11:32 ` William Lee Irwin III
2004-12-18 11:55 ` Nick Piggin
2004-12-18 12:46 ` William Lee Irwin III
2004-12-18 12:48 ` William Lee Irwin III
2004-12-19 0:05 ` Nick Piggin [this message]
2004-12-19 0:20 ` William Lee Irwin III
2004-12-19 0:38 ` Nick Piggin
2004-12-19 1:01 ` William Lee Irwin III
2004-12-19 1:31 ` Linus Torvalds
2004-12-19 2:08 ` William Lee Irwin III
2004-12-19 2:26 ` Nick Piggin
2004-12-19 5:23 ` Linus Torvalds
2004-12-19 6:02 ` William Lee Irwin III
2004-12-19 18:17 ` Linus Torvalds
2004-12-20 1:00 ` William Lee Irwin III
2004-12-18 10:45 ` William Lee Irwin III
2004-12-18 10:58 ` Nick Piggin
2004-12-19 0:07 ` [RFC][PATCH 0/10] " Hugh Dickins
2004-12-19 0:33 ` Nick Piggin
2004-12-20 18:04 ` Andi Kleen
2004-12-20 18:40 ` Linus Torvalds
2004-12-20 18:53 ` Andi Kleen
2004-12-21 0:04 ` Linus Torvalds
2004-12-21 0:22 ` Andi Kleen
2004-12-21 0:43 ` Linus Torvalds
2004-12-21 0:47 ` Nick Piggin
2004-12-21 2:55 ` Hugh Dickins
2004-12-21 3:21 ` Nick Piggin
2004-12-21 3:47 ` Linus Torvalds
2004-12-21 3:56 ` Linus Torvalds
2004-12-21 4:04 ` Nick Piggin
2004-12-21 4:08 ` Nick Piggin
2004-12-21 9:36 ` Andi Kleen
2004-12-21 10:13 ` Hugh Dickins
2004-12-21 10:59 ` Nick Piggin
2004-12-21 17:36 ` Linus Torvalds
2004-12-21 20:19 ` Andi Kleen
2004-12-21 23:49 ` Nick Piggin
2004-12-22 10:38 ` Andi Kleen
2004-12-22 11:19 ` Nick Piggin
2004-12-22 11:23 ` Nick Piggin
2004-12-22 18:07 ` Andi Kleen
2004-12-30 21:24 ` Nick Piggin
2004-12-21 10:52 ` Nick Piggin
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=41C4C5C2.5000607@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=hugh@veritas.com \
--cc=linux-mm@kvack.org \
--cc=torvalds@osdl.org \
--cc=wli@holomorphy.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.