From: Paul Mundt <lethal@linux-sh.org>
To: Andy Whitcroft <apw@shadowen.org>
Cc: linux-mm@kvack.org, linux-arch@vger.kernel.org,
Nick Piggin <npiggin@suse.de>,
Christoph Lameter <clameter@sgi.com>, Mel Gorman <mel@csn.ul.ie>
Subject: Re: [PATCH 0/7] Sparsemem Virtual Memmap V5
Date: Thu, 26 Jul 2007 17:05:20 +0900 [thread overview]
Message-ID: <20070726080520.GA26394@linux-sh.org> (raw)
In-Reply-To: <exportbomb.1184333503@pinky>
On Fri, Jul 13, 2007 at 02:34:37PM +0100, Andy Whitcroft wrote:
> However, if there is enough virtual space available and the arch
> already maps its 1-1 kernel space using TLBs (f.e. true of IA64
> and x86_64) then this technique makes SPARSEMEM lookups even more
> efficient than CONFIG_FLATMEM. FLATMEM needs to read the contents
> of the mem_map variable to get the start of the memmap and then add
> the offset to the required entry. vmemmap is a constant to which
> we can simply add the offset.
>
This is something I've been debating how to make use of on SH, but I
haven't come to any good conclusions yet, so I think a brain-dump is in
order (MIPS will have the same concerns I suppose).
SH has lowmem (512M) directly accessible with physical/virtual and
cached/uncached simply being a matter of flipping high bits, there are no
TLBs for this space, as it's not really a translatable space in the
strictest sense of the word (we only end up taking page faults for user
addresses, special memory windows, and various other memory blocks --
include/asm-sh/io.h:__ioremap_mode() might serve as a good example). For
contiguous system memory it would be possible just to wrap the vmemmap
base to the beginning of P1 space and not worry about any of this.
However, for memories that exist outside of this space (whether it be
highmem or other nodes built on memories in different part of the address
space completely), it's still necessary to map with TLBs. Building a
vmemmap for lowmem would seem to be a waste of space, and it doesn't
really buy us anything that I can see. On the other hand, this is
something that's desirable for the other nodes or anything translatable
(ie, memories outside of the lowmem range) as it gives us the ability to
construct the memmap using large TLBs.
This is something that's fairly trivial to hack up with out-of-line
__page_to_pfn()/__pfn_to_page() as we can simply reference the vmemmap
for memory that is not in the low 512M and do the high bit mangling
otherwise (assuming we've populated it in a similar fashion), but I
wonder if that's the best way to approach this?
--
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:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2007-07-26 8:05 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-13 13:34 Andy Whitcroft
2007-07-13 13:35 ` [PATCH 1/7] sparsemem: clean up spelling error in comments Andy Whitcroft
2007-07-13 13:35 ` [PATCH 2/7] sparsemem: record when a section has a valid mem_map Andy Whitcroft
2007-07-13 14:24 ` [PATCH] Bah, hoisted by my own petard. Below is an updated version Andy Whitcroft
2007-07-13 13:36 ` [PATCH 3/7] Generic Virtual Memmap support for SPARSEMEM Andy Whitcroft
2007-07-13 14:51 ` KAMEZAWA Hiroyuki
2007-07-13 22:42 ` Christoph Lameter
2007-07-13 23:12 ` KAMEZAWA Hiroyuki
2007-07-13 23:17 ` Christoph Lameter
2007-07-13 23:25 ` KAMEZAWA Hiroyuki
2007-07-14 15:20 ` Christoph Hellwig
2007-07-14 16:06 ` Christoph Lameter
2007-07-14 16:33 ` Christoph Hellwig
2007-07-23 19:36 ` Christoph Lameter
2007-07-30 14:39 ` Andy Whitcroft
2007-07-30 18:35 ` Christoph Lameter
2007-07-13 13:36 ` [PATCH 4/7] x86_64: SPARSEMEM_VMEMMAP 2M page size support Andy Whitcroft
2007-07-19 23:25 ` Andrew Morton
2007-07-13 13:37 ` [PATCH 5/7] IA64: SPARSEMEM_VMEMMAP 16K " Andy Whitcroft
2007-07-13 13:37 ` [PATCH 6/7] SPARC64: SPARSEMEM_VMEMMAP support Andy Whitcroft
2007-07-13 17:00 ` Christoph Lameter
2007-07-13 13:38 ` [PATCH 7/7] ppc64: " Andy Whitcroft
2007-07-13 17:04 ` [PATCH 0/7] Sparsemem Virtual Memmap V5 Christoph Lameter
2007-07-13 17:40 ` Andrew Morton
2007-07-13 18:23 ` Christoph Lameter
2007-07-14 8:57 ` Russell King
2007-07-14 15:10 ` Christoph Lameter
2007-07-14 17:16 ` Russell King
2007-07-13 20:08 ` Roman Zippel
2007-07-13 22:02 ` Luck, Tony
2007-07-13 22:21 ` Christoph Lameter
2007-07-13 22:37 ` Luck, Tony
2007-07-13 22:54 ` Christoph Lameter
2007-07-13 23:27 ` KAMEZAWA Hiroyuki
2007-07-13 23:28 ` Christoph Lameter
2007-07-14 8:49 ` Nick Piggin
2007-07-14 15:07 ` Christoph Lameter
2007-07-13 22:43 ` David Miller, Andrew Morton
2007-07-26 8:05 ` Paul Mundt [this message]
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=20070726080520.GA26394@linux-sh.org \
--to=lethal@linux-sh.org \
--cc=apw@shadowen.org \
--cc=clameter@sgi.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=npiggin@suse.de \
/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