From: Russell King <rmk@arm.linux.org.uk>
To: Paul Mackerras <paulus@samba.org>
Cc: Andrew Morton <akpm@zip.com.au>,
torvalds@transmeta.com, linux-kernel@vger.kernel.org
Subject: Re: page table page->index
Date: Tue, 30 Jul 2002 13:11:42 +0100 [thread overview]
Message-ID: <20020730131142.A6809@flint.arm.linux.org.uk> (raw)
In-Reply-To: <15684.52231.710183.242098@argo.ozlabs.ibm.com>; from paulus@samba.org on Mon, Jul 29, 2002 at 03:00:55PM +1000
On Mon, Jul 29, 2002 at 03:00:55PM +1000, Paul Mackerras wrote:
> Is this a problem in practice? On i386, ppc, and the 64-bit
> architectures it isn't since user addresses can't go anywhere near
> ~0UL, but what about arm or m68k for instance?
Ok, let me provide a description of the virtual address space we have for
Linux on ARM CPUs:
+----------------------+ <=== 4GB
| "remapped" stuff [2] |
+----------------------+ <=== 4GB - 64K
| static mapped MMIO |
+----------------------+ <=== (sub-architecture defined limit [3])
| ioremap, |
| modules, |
| pci_alloc_consistent |
| heap |
+----------------------+
| kernel direct mapped |
| ram & kernel |
+----------------------+ <=== (normally 3GB, may be as low as 1GB)
| |
/ User /
/ /
| |
+----------------------+ <=== 4K
| CPU vectors [1] |
+----------------------+ <=== 0K
[1] CPU vectors are fixed at virtual address 0 on many CPUs. However,
later CPUs support an alternative virtual address of 4GB-64K
[2] This area is split into two areas; the top 32K is available for
CPU implementation specific optimisations (eg, remapping pages
for copy_user_page, clear_user_page). The lower 32K is for
alternate CPU vectors, and "generic" ARM kernel use (maybe
remapping page tables for uncached access.)
[3] This is normally around 3.5GB or 3.75GB.
As far as Linux 2.5 is concerned, a pgd entry maps 2MB (the hardware
PGD maps 1MB, but to make rmap and 2nd level page table stuff simple,
we group two hardware pgd entries together to make one Linux pgd entry.)
So, to answer your question, remap_page_range shouldn't go anywhere
near the top-most PGD entry, so wrap around shouldn't be a problem
on ARM.
--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html
prev parent reply other threads:[~2002-07-30 12:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-29 5:00 page table page->index Paul Mackerras
2002-07-30 12:11 ` Russell King [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=20020730131142.A6809@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=akpm@zip.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=paulus@samba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox