* SMP not using all 4GB Mem
@ 2001-04-20 20:36 Dave
0 siblings, 0 replies; only message in thread
From: Dave @ 2001-04-20 20:36 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 96 bytes --]
I have attached a question concerning using 4GB of memory on an SMP.
Thanks for the time,
Dave
[-- Attachment #2: MEMQUESTION.txt --]
[-- Type: text/plain, Size: 2921 bytes --]
SMP Not using all 4GB Ram Question:
---------------------------------------------------------------------
I am using a Compaq Proliant 8500 SMP with 8 550 Mhz processors and 4GB of RAM.
Using Kernel 2.4.3 and Redhat 6.2
I have the (4GB) High Memory Support enabled.
I seem not to be able to use more that 1GB of memory.
The Following is my /proc/meminfo file
----------------------------------------------------------------------
total: used: free: shared: buffers: cached:
Mem: 3952427008 339447808 3612979200 0 256139264 25030656
Swap: 1048633344 0 1048633344
MemTotal: 3859792 kB
MemFree: 3528300 kB
MemShared: 0 kB
Buffers: 250136 kB
Cached: 24444 kB
Active: 16628 kB
Inact_dirty: 257952 kB
Inact_clean: 0 kB
Inact_target: 172 kB
HighTotal: 3014624 kB
HighFree: 2978372 kB
LowTotal: 845168 kB
LowFree: 549928 kB
SwapTotal: 1024056 kB
SwapFree: 1024056 kB
--------------------------------------------------------------
I wrote the following program that simply allocates 100M of memory
and then write to it.
#include <stdio.h>
int main (void)
{
char *p;
unsigned int i;
p = malloc (100000000);
while (1)
{
for (i=0;i<100000000;i++)
*(p+i) = 5;
sleep (1);
for (i=0;i<100000000;i++)
*(p+i) = 6;
sleep(1);
}
}
I can run 9 copies of this program to take up 900M of memory. When
I attempt to start the 10th process, the whole world goes nuts. The
X-window that it was started in closes and I continue to get a
signal 11 interrupt whenever I run a shell command or attempt to compile.
I have another program that will allocate ~2GB of memory and then write data to
it. It attempts to read the data back and fails around the 850-900M mark.
#include <stdio.h>
#include <string.h>
#include <sys/mman.h>
int main (void)
{
int done = 0;
unsigned int i = 0x7feee800;
char *p;
char *p2;
unsigned int x;
p = malloc(i);
sleep (1);
for (x=0;x<i;x++)
{
*(p+x) = 5;
if (*(p+x) !=5)
{
printf("first Error %x %x Address = %x \n", p, x, p+x);
free(p);
return (0);
}
}
for (x=0;x<i;x++)
if (*(p+x) !=5)
{
printf("5 Error %x %x Address = %x Value = %x \n", p, x, p+x, *(p+x));
free(p);
return (0);
sleep(1);
}
memset(p, 10, i);
for (x=0;x<(i-1);x++)
if (p[x] !=10)
{
printf("A Error %i %x\n", p[x], x);
/* free(p);
return (0);*/
}
printf("Done\n");
free(p);
return (0);
}
--------------------------
Example Run Result:
5 Error 4010f008 32650ff8 Address = 72760000 Value 67
------------------------
The failing address is always a multiple of 0x10000.
Could you give me some info on what I am doing wrong?
Thanks for your time,
Dave
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2001-04-20 20:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-04-20 20:36 SMP not using all 4GB Mem Dave
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.