Subject: Re: System crash with too much memory
To: Greg A. Woods <woods@weird.com>
From: D'Arcy J.M. Cain <darcy@NetBSD.org>
List: tech-kern
Date: 04/23/2003 17:14:53
On Wednesday 23 April 2003 14:29, Greg A. Woods wrote:
> [ On Wednesday, April 23, 2003 at 13:33:10 (-0400), D'Arcy J.M. Cain wrot=
e:=20
]
> > Now when I boot with 4GB it boots but when I check the number of buffers
> > it is still 6144.  It seems that it is failing in some intermediate step
>
> When you say you "check the number of buffers", what exactly do you mean
> by that?

=46rom dmesg:

using 6144 buffers containing 198 MB of memory

As I said, I think that that code is doing the right thing as long as what=
=20
gets there to work with is valid.  I base that on the fact that after=20
clamping it to 8000, the system winds up using 6144, the same that it does=
=20
when it has 2GB.  I added another printf to check this:

Original nbuf: 50810

If you multiply that by MAXBSIZE (65536) you get 3329884160 which looks=20
negative as a signed so the test fails.  By clamping to 8000 the result loo=
ks=20
positive (524288000) and thus the test succeeds and it is reduced.

Anyone know why we need the #ifdef VM_MAX_KERNEL_BUF?  Is it safe to test n=
buf=20
before going into this block?  I checked and the block is definitely compil=
ed=20
on my i386 system.

=2D-=20
D'Arcy J.M. Cain <darcy@netbsd.org>
http://www.NetBSD.org/