kernel_optimize_test/Documentation/memory.txt
Linus Torvalds 1da177e4c3 Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!
2005-04-16 15:20:36 -07:00

61 lines
2.1 KiB
Plaintext

There are several classic problems related to memory on Linux
systems.
1) There are some buggy motherboards which cannot properly
deal with the memory above 16MB. Consider exchanging
your motherboard.
2) You cannot do DMA on the ISA bus to addresses above
16M. Most device drivers under Linux allow the use
of bounce buffers which work around this problem. Drivers
that don't use bounce buffers will be unstable with
more than 16M installed. Drivers that use bounce buffers
will be OK, but may have slightly higher overhead.
3) There are some motherboards that will not cache above
a certain quantity of memory. If you have one of these
motherboards, your system will be SLOWER, not faster
as you add more memory. Consider exchanging your
motherboard.
All of these problems can be addressed with the "mem=XXXM" boot option
(where XXX is the size of RAM to use in megabytes).
It can also tell Linux to use less memory than is actually installed.
If you use "mem=" on a machine with PCI, consider using "memmap=" to avoid
physical address space collisions.
See the documentation of your boot loader (LILO, loadlin, etc.) about
how to pass options to the kernel.
There are other memory problems which Linux cannot deal with. Random
corruption of memory is usually a sign of serious hardware trouble.
Try:
* Reducing memory settings in the BIOS to the most conservative
timings.
* Adding a cooling fan.
* Not overclocking your CPU.
* Having the memory tested in a memory tester or exchanged
with the vendor. Consider testing it with memtest86 yourself.
* Exchanging your CPU, cache, or motherboard for one that works.
* Disabling the cache from the BIOS.
* Try passing the "mem=4M" option to the kernel to limit
Linux to using a very small amount of memory. Use "memmap="-option
together with "mem=" on systems with PCI to avoid physical address
space collisions.
Other tricks:
* Try passing the "no-387" option to the kernel to ignore
a buggy FPU.
* Try passing the "no-hlt" option to disable the potentially
buggy HLT instruction in your CPU.