2002-08-08 16:01:14

by Bryan K. Walton

[permalink] [raw]
Subject: problems with 1gb ddr memory sticks on linux

I have a box running Debian 3.0 with a Via C3 800mhz processor
that slows to a crawl when I put in a 1GB stick of PC2100 DDR memory.

The board, a Gigabyte GA-6RX, supports this memory stick.
My 2.4.18 kernel is compiled with High Memory support and linux and the
bios see all of the memory. However, the box is VERY slow. It takes
about 5 minutes to install .deb binary. It took me 12 hours to compile
the 2.4.18 kernel!

Here is what I have done to rule things out . . .

1) The box runs FAST with M$ Windows 2000.
2) The box runs FAST when using identical kinds of memory but in
quantities of 512MB or less.
3) The box runs slow with other linux distos also. (I tried Redhat 7.2)

It seems to me that the problem has something to do with the linux
kernel and 1GB memory sticks. Am I off base?

Anyone have any ideas?

Thanks,
Bryan Walton


2002-08-08 16:15:56

by Kasper Dupont

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux

"Bryan K. Walton" wrote:
>
> I have a box running Debian 3.0 with a Via C3 800mhz processor
> that slows to a crawl when I put in a 1GB stick of PC2100 DDR memory.
>
> The board, a Gigabyte GA-6RX, supports this memory stick.

Could it be the case, that it really doesn't support that
memory eventhough it claims to?

> My 2.4.18 kernel is compiled with High Memory support and linux and the
> bios see all of the memory.

Did you try without High Memory support?

> However, the box is VERY slow. It takes
> about 5 minutes to install .deb binary. It took me 12 hours to compile
> the 2.4.18 kernel!
>
> Here is what I have done to rule things out . . .
>
> 1) The box runs FAST with M$ Windows 2000.
> 2) The box runs FAST when using identical kinds of memory but in
> quantities of 512MB or less.

Did you try with a total of 1024MB on two 512MB modules?

> 3) The box runs slow with other linux distos also. (I tried Redhat 7.2)
>
> It seems to me that the problem has something to do with the linux
> kernel and 1GB memory sticks. Am I off base?

Try the "slow" memory and use a mem= boot option to tell the
Linux kernel not to use all of it.

>
> Anyone have any ideas?

I wonder if it could be the case, that it for some reason doesn't
use cache for all the memory.

--
Kasper Dupont -- der bruger for meget tid p? usenet.
For sending spam use mailto:[email protected]
or mailto:[email protected]

2002-08-08 16:23:43

by Alan

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux

On Thu, 2002-08-08 at 17:04, Bryan K. Walton wrote:
> 1) The box runs FAST with M$ Windows 2000.
> 2) The box runs FAST when using identical kinds of memory but in
> quantities of 512MB or less.
> 3) The box runs slow with other linux distos also. (I tried Redhat 7.2)
>
> It seems to me that the problem has something to do with the linux
> kernel and 1GB memory sticks. Am I off base?

Almost certainly a BIOS problem. What typically happens when you see
this is that the BIOS misconfigured the MTRR registers. Linux starts
from top of ram windows seems to start from bottom so the effect shows
strongly in Linux.

Can you post your /proc/mtrr file please

2002-08-08 16:36:30

by Bryan K. Walton

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux

On Thu, Aug 08, 2002 at 06:47:20PM +0100, Alan Cox wrote:
>
> Almost certainly a BIOS problem. What typically happens when you see
> this is that the BIOS misconfigured the MTRR registers. Linux starts
> from top of ram windows seems to start from bottom so the effect shows
> strongly in Linux.
>
> Can you post your /proc/mtrr file please
>
Here you go . . .

Dimm slot 1 = 256MB DDR PC2100 and
Dimm slot 2 = 1024MB DDR PC2100

and the /proc/mtrr shows:

casa:~# cat /proc/mtrr
reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1

Thanks,
Bryan

2002-08-08 16:46:20

by Richard B. Johnson

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux

On Thu, 8 Aug 2002, Bryan K. Walton wrote:

> I have a box running Debian 3.0 with a Via C3 800mhz processor
> that slows to a crawl when I put in a 1GB stick of PC2100 DDR memory.
>
> The board, a Gigabyte GA-6RX, supports this memory stick.
> My 2.4.18 kernel is compiled with High Memory support and linux and the
> bios see all of the memory. However, the box is VERY slow. It takes
> about 5 minutes to install .deb binary. It took me 12 hours to compile
> the 2.4.18 kernel!
>
> Here is what I have done to rule things out . . .
>
> 1) The box runs FAST with M$ Windows 2000.
> 2) The box runs FAST when using identical kinds of memory but in
> quantities of 512MB or less.
> 3) The box runs slow with other linux distos also. (I tried Redhat 7.2)
>
> It seems to me that the problem has something to do with the linux
> kernel and 1GB memory sticks. Am I off base?
>
> Anyone have any ideas?

Maybe, just maybe, you have a PCI-based disk-drive controller and,
maybe, just maybe, you are running out of address-space when you
install all that RAM, so the disk driver falls-back to PIO?

Try just one, 1GB stick. See if it works okay, then try two, etc.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).
The US military has given us many words, FUBAR, SNAFU, now ENRON.
Yes, top management were graduates of West Point and Annapolis.

2002-08-08 17:47:08

by Mike Dresser

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux


> I have a box running Debian 3.0 with a Via C3 800mhz processor
> that slows to a crawl when I put in a 1GB stick of PC2100 DDR memory.

What are the specs on the 1 gb stick?

(density, chipcount)

2002-08-08 18:06:22

by H. Peter Anvin

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux

Followup to: <[email protected]>
By author: "Bryan K. Walton" <[email protected]>
In newsgroup: linux.dev.kernel
>
> On Thu, Aug 08, 2002 at 06:47:20PM +0100, Alan Cox wrote:
> >
> > Almost certainly a BIOS problem. What typically happens when you see
> > this is that the BIOS misconfigured the MTRR registers. Linux starts
> > from top of ram windows seems to start from bottom so the effect shows
> > strongly in Linux.
> >
> > Can you post your /proc/mtrr file please
> >
> Here you go . . .
>
> Dimm slot 1 = 256MB DDR PC2100 and
> Dimm slot 2 = 1024MB DDR PC2100
>
> and the /proc/mtrr shows:
>
> casa:~# cat /proc/mtrr
> reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1
>

Your BIOS didn't mark the second memory chunk as cacheable, so you're
running it uncached. No wonder it sucks.

-hpa
--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt <[email protected]>

2002-08-08 18:23:16

by Alan

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux

On Thu, 2002-08-08 at 17:39, Bryan K. Walton wrote:
> Dimm slot 1 = 256MB DDR PC2100 and
> Dimm slot 2 = 1024MB DDR PC2100
>
> and the /proc/mtrr shows:
>
> casa:~# cat /proc/mtrr
> reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1

Your BIOS misconfigured the memory control registers. You may find
swapping the DIMMs over fixes that or a BIOS update. If you don't want
to update your BIOS then doing

echo "base=0x00000000 size=0x60000000 type=write-back" >/proc/mtrr

should override the BIOS setting and make your machine speed up.

2002-08-08 19:53:26

by Bryan K. Walton

[permalink] [raw]
Subject: Re: problems with 1gb ddr memory sticks on linux

Many thanks to Alan, Mark, and everyone else who offered advice on fixing my
problem with my bios and large memory sticks. I rewrote the /proc/mtrr
and everything is speedy now!

Thank you!
Bryan

On Thu, 2002-08-08 at 19:40, Mark Hahn wrote:
> > echo "base=0x00000000 size=0x60000000 type=write-back" >/proc/mtrr

> >
> > should override the BIOS setting and make your machine speed up.
>
> don't mtrrs still have to be a power of two in size?
> ie, he'd need two for 1024+256...

You are correct he should add one starting at 0 for 1Gb and one at 1Gb
for 256Mb - my error.