# kernel panic with a 2nd 1GB RAM module  [SOLVED]

## MasterX

This is one thing that drives me crazy. I own a laptop with 1GB RAM ( at 533MHz), and I decided to install a second 1GB (533MHz) module. The Bios recognizes both modules and reports that I have 2048KB memory. Windows XP does the same thing. Memtest reports that my system has 2048KB memory RAM and there are free of errors.

I am running kernel 2.6.28-4, and I compiled the kernel with Highmem support. During boot, the system loads the modules and then I get an error about not being able to execute the /etc/init.d/module script. After that point is downhill and all the scripts fail to start. The good thing is that the system does not hang, and I get the command prompt. I run dmesg, and I see the same message over and over again. This message reports a kernel panic. Now, I have disable the highmem support, the system boots fine but the kernel reports only 1024KB memory RAM. I have tried booting the system with a single memory module, and it boots fine for both modules.

The memory modules two differ little bit. As I wrote above they both run at 533MHz, but they have a different number of chips on them. The old module has 16chips, and the new one has 8 chips.

I found on the Internet something about memory remapping, but the Bios does not have this option.

Besides compiling the kernel with Highmem support, what else should I do?

Thank you in advance!!Last edited by MasterX on Sun Oct 11, 2009 11:00 pm; edited 1 time in total

----------

## fangorn

Besides having half the number of chips, it is likely that the layout is different. So using the two modules together may or may not work. In your case I'd say "may not" is more likely. 

Have you run a multiple hour memory torture test with both modules installed? 

Did it survive multi-day runtime session in the other Operating systems?

With RAM it is a good idea to have exactly the same module for both modules. Else you have to select very carefully to get a stable system.

Memory remapping is important when having 4 GB of RAM. Because PCI bus gets mapped in the space below 4 GB, RAM between approx. 3.5 and 4 GB is not addressible otherwise. That is of no concern for machines below 3 GB.

----------

## MasterX

 *fangorn wrote:*   

> 
> 
> Have you run a multiple hour memory torture test with both modules installed? 
> 
> Did it survive multi-day runtime session in the other Operating systems?
> ...

 

Besides Memtest, is there any other program to test the memory. Last night, I let Memtest run, and it did not give any errors. I will try to configure Memtest to run a more "aggressive" test..

Stability is certainly an important issue, but here the problem is not stability. The system does not boot. I also tried swapping the position of the memory modules, but that did not help either.

I rarely boot into Windows, but just to check the memory I will watch a movie

----------

## fangorn

I am not aware of any limit between 1 and 2 GB RAM (in kernel versions younger than five years that is). My guess was, that the BIOS does not address them correctly.

I use machines between 4 and 12 GB RAM and never had to activate something to make it work. I had problems with the memory between 3 and 4 GB from time to time, but that was because of crappy BIOSes, not because of the linux kernel.

My tip still is: get two identical modules.

I'm sorry that I could not be of more help.

----------

## Ant P.

Try running them at 400MHz. Sometimes the mobo itself can only handle a single stick of RAM at full speed.

----------

## MasterX

 *Ant_P wrote:*   

> Try running them at 400MHz. Sometimes the mobo itself can only handle a single stick of RAM at full speed.

 

I have a Phoenix BIOs, and it does not allow me to configure many things. 

I boot in Windows XP ( which recognizes 2GB memory RAM) and I watch a movie over the internet. I had no problem. Then, I upgraded memtest86+ to 4.00 version, and I let it run over the night. I set it to check all the memory, and it did not find any problem. There is, however, a small problem with memtest86+. In the configuration menu, if I set the "sizing" ( or something like that) option to probe, the program will freeze. Does this say something about the modules?

----------

## Ant P.

That's probably a bug in memtest itself. Odd that it could run overnight without errors but Linux crashes, that sounds like a kernel problem to me. Have you tried using the 64GB highmem setting instead of the 4GB one? If nothing else works, you could try one of the kernel patchsets that let you use 2GB without highmem enabled...

----------

## eccerr0r

Are you compiling your own kernel?  Does it work with a precompiled kernel, say, the Gentoo livecd/livedvd?

Post your .config somewhere?

----------

## MasterX

 *eccerr0r wrote:*   

> Are you compiling your own kernel?  Does it work with a precompiled kernel, say, the Gentoo livecd/livedvd?
> 
> Post your .config somewhere?

 

Yes, I am. I found an installation CD for Ubuntu 5.04, and the kernel recognized only 1GB RAM memory. I have not posted the .config file, I can post it here, do you want me to post the entire .config file?

 *Ant_P wrote:*   

> Have you tried using the 64GB highmem setting instead of the 4GB one? If nothing else works, you could try one of the kernel patchsets that let you use 2GB without highmem enabled...

 

I will certainly give it a try. Which patches are you referring to?

One thing that I noticed when I compiled the kernel is that when I run "make install" the script did not check for lilo. The output of this command was a single line where it said that it copied vmlinuz to /boot. Could this be the problem?

EDIT: It does not work with the 64GB highmem setting.

----------

## energyman76b

forget using more than 1gb on a 32bit machine?

because even if you could use the full 2gb - the slowdown makes it a questionable choice at best.

----------

## MasterX

 *energyman76b wrote:*   

> forget using more than 1gb on a 32bit machine?
> 
> because even if you could use the full 2gb - the slowdown makes it a questionable choice at best.

 

I am not quite following you. How is it possible 2GB RAM memory to slow down the system? Moreover, all the pcs that are sold are 32bit, and they have more than 1GB RAM memory!!

----------

## energyman76b

yes, it is possible to use more than 2gb and yes and pcs are sold with more than 1gb.

That does not mean it is a smart choice. HP is selling pcs with 3gb - and dual channel memory controllers, it can't get more stupid like that.

If you want to access more than 1gb, you need highmem support. Highmem support means slowdown. That simple.

----------

## eccerr0r

 *MasterX wrote:*   

> Yes, I am. I found an installation CD for Ubuntu 5.04, and the kernel recognized only 1GB RAM memory. I have not posted the .config file, I can post it here, do you want me to post the entire .config file?
> 
> 

 

Try a later Ubuntu.  I thought latest was near 9.0 or something like that?  Or use a recent Gentoo livecd.

If the recent boot disks show 1GB when you have 2GB installed, that's very, very alarming and unusual.  If it shows 2G and you crash often, then that's also a data point.

Did you update to latest firmware?

 *energyman76b wrote:*   

> That does not mean it is a smart choice. HP is selling pcs with 3gb - and dual channel memory controllers, it can't get more stupid like that.
> 
> 

 

It actually was a smart choice given they are stuck between a rock and a hard place.

This is due to Windows having the same 4GB issue, with part of it allocated to I/O and Windows itself.  Rather than hearing complaints about why desktop Windows couldn't access all 4GB of RAM, they reduced ram to 3GB (probably 512Mx2+1Gx2 for dual channel).

This isn't HP's problem.  This is the enduser's problem (understanding why not all 4G can be used -- but try to explain that to someone who got mad when 1GB=953MiB), or actually...

WHY MICROSOFT DECIDED WINDOWS CAN ONLY HANDLE 3.5G IN THEIR "DESKTOP" VERSION?

In any case, highmem support does not decrease speed much at all, and supposedly it's all what's needed for 2GB of RAM.  For enabling full PAE support will, however, will reduce speed more as TLBs and/or caches need to be flushed to deal with the extra pages not mapped with the current process on context switch.  My 4G boxes with 64G PAE enabled actually does not feel noticeably slower; the speed of swapping is much slower...

----------

## MasterX

 *energyman76b wrote:*   

> yes, it is possible to use more than 2gb and yes and pcs are sold with more than 1gb.
> 
> That does not mean it is a smart choice. HP is selling pcs with 3gb - and dual channel memory controllers, it can't get more stupid like that.
> 
> If you want to access more than 1gb, you need highmem support. Highmem support means slowdown. That simple.

 

Well, if you need more than 1GB RAM memory, then you will enable highmem support. I do not know why one would use more than 1GB RAM. I do not know why Windows Vista require at least 2GB RAM memory to run... In my case, I need to read a 65MB XML file. Up to now, I am reading the file with only 1GB RAM memory, and I might say that I do not really need an extra 1GB module. But I believe my system will run smoothly enough with the extra 1GB module.

----------

## MasterX

Today, I decided to give a try to the latest vanilla source (2.6.32-rc3). 

During the kernel configuration I changed several things from the old configuration. Among them, I enabled:

```

Support for DMA Remapping Devices (EXPERIMENTAL) 

 Enable DMA Remapping Devices by default   

```

I do not know if this was enough or if there was a bug in the kernel that I was using, but now the kernel does not panic and I do have 2GB RAM memory. The only problem that I have now is with my wireless network card. Does anybody know what happened to the IPW2100 and IEEE8021 drivers?

I would like to thank you for your time and help

----------

## MasterX

 *eccerr0r wrote:*   

> 
> 
> In any case, highmem support does not decrease speed much at all, and supposedly it's all what's needed for 2GB of RAM.  For enabling full PAE support will, however, will reduce speed more as TLBs and/or caches need to be flushed to deal with the extra pages not mapped with the current process on context switch.  My 4G boxes with 64G PAE enabled actually does not feel noticeably slower; the speed of swapping is much slower...

 

Do you see any difference if you enable/disable PAE. From the above I realize that I should disable it....

----------

## eccerr0r

I cannot discern the slowdown with PAE enabled.  I need to have it enabled to access all 4GB of RAM on my two 32 bit installs.  (My ia64 box supports 4G directly and no need for PAE though I have a feeling it's emulated anyway for emulated x86 code.)

I've heard people see a 10% slowdown using PAE, but I don't recall what conditions these were.  The worst case would be where you have to bank swap every context swap.  I think it should be possible to code away from this, but if you must use a lot of memory with both processes (or go to kernel mode a lot, as in i/o, but i/o speeds tend to make PAE switch speeds seem fast), this would be the pathological case.

If PAE were as slow as ISA memory from years ago (which incurred a 70%+ penalty to access isa), it'd be noticeably slower... It's not at all that slow.

----------

