Re: SLOW machine when HIGHMEM enabled (1gb memory, kernel 2.4.22)

From: Mikael Pettersson
Date: Sun Sep 21 2003 - 16:43:45 EST


Matt Hahnfeld writes:
> Mikael --
>
> Thanks for the help!
>
> I have posted my /proc/mtrr and /proc/meminfo to
> http://www.layover.com/matt/kernel/ .

Hmm, I wanted the list to seem them because I'm not myself
very good at decoding memory maps and mtrrs.

Anyway, Matt's E820 map is

BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003f730000 (usable)
BIOS-e820: 000000003f730000 - 000000003f740000 (ACPI data)
BIOS-e820: 000000003f740000 - 000000003f7f0000 (ACPI NVS)
BIOS-e820: 000000003f7f0000 - 000000003f800000 (reserved)
BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
119MB HIGHMEM available.
896MB LOWMEM available.

while his /proc/mtrr is

reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1
reg01: base=0x20000000 ( 512MB), size= 256MB: write-back, count=1
reg02: base=0x30000000 ( 768MB), size= 128MB: write-back, count=1
reg03: base=0x38000000 ( 896MB), size= 64MB: write-back, count=1
reg04: base=0x3c000000 ( 960MB), size= 32MB: write-back, count=1
reg05: base=0x3e000000 ( 992MB), size= 16MB: write-back, count=1

Hmm, it looks like your mtrr mappings end just before 0x3f000000,
but your E820 map marked 0x3f000000 to 0x3f730000 as "usable".

This probably means that some piece of memory the kernel is using
isn't cached. No wonders your performance sucks.

The BIOS seems to have done a poor job here. I guess the safest
workaround is to pass a mem= parameter to the kernel, causing
it to skip that problematic uncached portion.

mem=1008M perhaps?

/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/