2002-02-28 19:16:31

by Steven Cole

[permalink] [raw]
Subject: [PATCH] 2.5.5-dj2, modify arch/i386/Config.help for highpte options.

This patch modifies the help text for the CONFIG_NOHIGHMEM option in
arch/i386/Config.help to explain the two new options;
CONFIG_HIGHMEM4G_HIGHPTE and CONFIG_HIGHMEM64G_HIGHPTE.

Since this is a choice selection, the help text for the first option,
CONFIG_NOHIGHMEM is the only one which is visible using the current
configurators.

Here is a snippet from arch/i386/config.in both 2.5.5-dj2 and 2.5.6-pre1:

choice 'High Memory Support' \
"off CONFIG_NOHIGHMEM \
4GB CONFIG_HIGHMEM4G \
4GB-highpte CONFIG_HIGHMEM4G_HIGHPTE \
64GB CONFIG_HIGHMEM64G \
64GB-highpte CONFIG_HIGHMEM64G_HIGHPTE" off

If the notes for the highpte options are incorrect, feel free to provide
a better explanation.

Steven

--- linux-2.5.5-dj2/arch/i386/Config.help.orig Thu Feb 28 10:58:01 2002
+++ linux-2.5.5-dj2/arch/i386/Config.help Thu Feb 28 11:52:43 2002
@@ -111,13 +111,21 @@
possible.

If the machine has between 1 and 4 Gigabytes physical RAM, then
- answer "4GB" here.
+ answer "4GB" or "4GB-highpte" here. The "4GB-highpte" option
+ will put user-space page table entries into high memory.
+
+ If the machine has more than 4 Gigabytes physical RAM, then
+ answer "64GB" or "64GB-highpte" here. The "64GB-highpte" option
+ will put user-space page table entries into high memory.
+
+ Selecting either "64GB" or "64GB-highpte" turns Intel PAE
+ (Physical Address Extension) mode on.

- If more than 4 Gigabytes is used then answer "64GB" here. This
- selection turns Intel PAE (Physical Address Extension) mode on.
PAE implements 3-level paging on IA32 processors. PAE is fully
supported by Linux, PAE mode is implemented on all recent Intel
- processors (Pentium Pro and better). NOTE: If you say "64GB" here,
+ processors (Pentium Pro and better).
+
+ NOTE: If you say "64GB" or "64GB-highpte" here,
then the kernel will not boot on CPUs that don't support PAE!

The actual amount of total physical memory will either be




2002-02-28 21:04:04

by Dave Jones

[permalink] [raw]
Subject: Re: [PATCH] 2.5.5-dj2, modify arch/i386/Config.help for highpte options.

On Thu, Feb 28, 2002 at 12:12:51PM -0700, Steven Cole wrote:
> Here is a snippet from arch/i386/config.in both 2.5.5-dj2 and 2.5.6-pre1:
> choice 'High Memory Support' \
> "off CONFIG_NOHIGHMEM \
> 4GB CONFIG_HIGHMEM4G \
> 4GB-highpte CONFIG_HIGHMEM4G_HIGHPTE \
> 64GB CONFIG_HIGHMEM64G \
> 64GB-highpte CONFIG_HIGHMEM64G_HIGHPTE" off

Would this not be better done using a "use highpte" bool in
the !CONFIG_NOHIGHMEM case ?

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2002-02-28 22:41:10

by Steven Cole

[permalink] [raw]
Subject: Re: [PATCH] 2.5.5-dj2, modify arch/i386/Config.help for highpte options.

On Thursday 28 February 2002 02:01 pm, Dave Jones wrote:
> On Thu, Feb 28, 2002 at 12:12:51PM -0700, Steven Cole wrote:
> > Here is a snippet from arch/i386/config.in both 2.5.5-dj2 and
> > 2.5.6-pre1: choice 'High Memory Support' \
> > "off CONFIG_NOHIGHMEM \
> > 4GB CONFIG_HIGHMEM4G \
> > 4GB-highpte CONFIG_HIGHMEM4G_HIGHPTE \
> > 64GB CONFIG_HIGHMEM64G \
> > 64GB-highpte CONFIG_HIGHMEM64G_HIGHPTE" off
>
> Would this not be better done using a "use highpte" bool in
> the !CONFIG_NOHIGHMEM case ?

Maybe. Here is a patch to arch/i386/config.in to try it that way.

Ingo, is this OK?

After the first patch, is another small patch to arch/i386/Config.help which
provides some explanation of CONFIG_HIGHPTE, which I hope is not
too inaccurate. This supercedes the original change to arch/i386/Config.help.

Steven

--- linux-2.5.5-dj2/arch/i386/config.in.orig Thu Feb 28 14:33:48 2002
+++ linux-2.5.5-dj2/arch/i386/config.in Thu Feb 28 15:20:18 2002
@@ -161,25 +161,20 @@
choice 'High Memory Support' \
"off CONFIG_NOHIGHMEM \
4GB CONFIG_HIGHMEM4G \
- 4GB-highpte CONFIG_HIGHMEM4G_HIGHPTE \
- 64GB CONFIG_HIGHMEM64G \
- 64GB-highpte CONFIG_HIGHMEM64G_HIGHPTE" off
-if [ "$CONFIG_HIGHMEM4G" = "y" ]; then
- define_bool CONFIG_HIGHMEM y
+ 64GB CONFIG_HIGHMEM64G" off
+
+if [ "$CONFIG_HIGHMEM4G" = "y" -o "$CONFIG_HIGHMEM64G" = "y" ]; then
+ bool 'Use high memory pte support' CONFIG_HIGHPTE
fi
-if [ "$CONFIG_HIGHMEM4G_HIGHPTE" = "y" ]; then
+
+if [ "$CONFIG_HIGHMEM4G" = "y" ]; then
define_bool CONFIG_HIGHMEM y
- define_bool CONFIG_HIGHPTE y
fi
+
if [ "$CONFIG_HIGHMEM64G" = "y" ]; then
define_bool CONFIG_HIGHMEM y
define_bool CONFIG_X86_PAE y
fi
-if [ "$CONFIG_HIGHMEM64G_HIGHPTE" = "y" ]; then
- define_bool CONFIG_HIGHMEM y
- define_bool CONFIG_HIGHPTE y
- define_bool CONFIG_X86_PAE y
-fi

bool 'Math emulation' CONFIG_MATH_EMULATION
bool 'MTRR (Memory Type Range Register) support' CONFIG_MTRR

--- linux-2.5.5-dj2/arch/i386/Config.help.orig Thu Feb 28 10:58:01 2002
+++ linux-2.5.5-dj2/arch/i386/Config.help Thu Feb 28 15:07:42 2002
@@ -128,6 +128,12 @@

If unsure, say "off".

+CONFIG_HIGHPTE
+ The VM uses one page table entry for each page of physical memory.
+ For systems with a lot of RAM, this can be wasteful of precious
+ low memory. Setting this option will put user-space page table
+ entries in high memory.
+
CONFIG_HIGHMEM4G
Select this if you have a 32-bit processor and between 1 and 4
gigabytes of physical RAM.