1 |
62 |
marcus.erl |
There are several classic problems related to memory on Linux
|
2 |
|
|
systems.
|
3 |
|
|
|
4 |
|
|
1) There are some buggy motherboards which cannot properly
|
5 |
|
|
deal with the memory above 16MB. Consider exchanging
|
6 |
|
|
your motherboard.
|
7 |
|
|
|
8 |
|
|
2) You cannot do DMA on the ISA bus to addresses above
|
9 |
|
|
16M. Most device drivers under Linux allow the use
|
10 |
|
|
of bounce buffers which work around this problem. Drivers
|
11 |
|
|
that don't use bounce buffers will be unstable with
|
12 |
|
|
more than 16M installed. Drivers that use bounce buffers
|
13 |
|
|
will be OK, but may have slightly higher overhead.
|
14 |
|
|
|
15 |
|
|
3) There are some motherboards that will not cache above
|
16 |
|
|
a certain quantity of memory. If you have one of these
|
17 |
|
|
motherboards, your system will be SLOWER, not faster
|
18 |
|
|
as you add more memory. Consider exchanging your
|
19 |
|
|
motherboard.
|
20 |
|
|
|
21 |
|
|
All of these problems can be addressed with the "mem=XXXM" boot option
|
22 |
|
|
(where XXX is the size of RAM to use in megabytes).
|
23 |
|
|
It can also tell Linux to use less memory than is actually installed.
|
24 |
|
|
If you use "mem=" on a machine with PCI, consider using "memmap=" to avoid
|
25 |
|
|
physical address space collisions.
|
26 |
|
|
|
27 |
|
|
See the documentation of your boot loader (LILO, loadlin, etc.) about
|
28 |
|
|
how to pass options to the kernel.
|
29 |
|
|
|
30 |
|
|
There are other memory problems which Linux cannot deal with. Random
|
31 |
|
|
corruption of memory is usually a sign of serious hardware trouble.
|
32 |
|
|
Try:
|
33 |
|
|
|
34 |
|
|
* Reducing memory settings in the BIOS to the most conservative
|
35 |
|
|
timings.
|
36 |
|
|
|
37 |
|
|
* Adding a cooling fan.
|
38 |
|
|
|
39 |
|
|
* Not overclocking your CPU.
|
40 |
|
|
|
41 |
|
|
* Having the memory tested in a memory tester or exchanged
|
42 |
|
|
with the vendor. Consider testing it with memtest86 yourself.
|
43 |
|
|
|
44 |
|
|
* Exchanging your CPU, cache, or motherboard for one that works.
|
45 |
|
|
|
46 |
|
|
* Disabling the cache from the BIOS.
|
47 |
|
|
|
48 |
|
|
* Try passing the "mem=4M" option to the kernel to limit
|
49 |
|
|
Linux to using a very small amount of memory. Use "memmap="-option
|
50 |
|
|
together with "mem=" on systems with PCI to avoid physical address
|
51 |
|
|
space collisions.
|
52 |
|
|
|
53 |
|
|
|
54 |
|
|
Other tricks:
|
55 |
|
|
|
56 |
|
|
* Try passing the "no-387" option to the kernel to ignore
|
57 |
|
|
a buggy FPU.
|
58 |
|
|
|
59 |
|
|
* Try passing the "no-hlt" option to disable the potentially
|
60 |
|
|
buggy HLT instruction in your CPU.
|