I'm porting a C application to an AIX (6.1) system, and have bumped into the limits AIX imposes on memory allocation, namely the default limit of 256MB for a process. I'm aware of the compilation flag that allows an application to gain access to up to 8 memory segments (each 256MB, for a total of 2GB) ... but that seems like an unnecessary restriction on a computer that offers more RAM than that.
A toy example I'm using is given here
Compiling this without increasing segment count results in the malloc call returning a null pointer:
but adding the correct compile flag (for xlc) makes it work:
(note, malloc returns a null pointer even with this flag if I try to allocate 2200000000 bytes)
But I'm unable to figure out how to allow my program to use more memory than that. My impression is that in 64-bit mode, none of these memory restrictions should even be present, e.g.
Quote:
The default value of maxdata (-bmaxdata:0 or not included in the load command) for 32-bit applications is 256 MB. The maximum allowed for 32-bit applications is 2 GB. For 64-bit applications, the maxdata default value is unlimited.
(link omitted because I'm too new to this group ... but google will find it for you)
Which suggests to me that the first compilation above should've worked. Am I in 64-bit mode? I believe so:
that's not what I see if I explicitly go for a 32-bit compile:
So ... what incredibly naive thing am I doing wrong? Any guidance is greatly appreciated.
(side note: I'm using xlc because it's required for the project. gcc isn't a viable option)
Thanks for taking the time to reply. I failed to mention: I've compiled with -q64, resulting in no change to outcome.
I'll also observe that the manual you pointed me to says:
"Compiler mode is set according to the last-found instance of the -q32 or -q64
compiler options. If neither of these compiler options is set, the compiler mode
is set by the value of the OBJECT_MODE environment variable."
As mentioned in my original post, I set that with
Is there something else I'm supposed to get from the manual?
It may ignore you if your platform or the specified target platform is not 64 bit address capable. However, it says it would warn.
The pdf says '=' after -bmaxdata, not ':'.
Does -qmaxmem= apply?
Are 64 bit libs in use/in dynamic search path?
Cute: setting compiler optimization space too big may exhaust swap!
Did you know that if you create a nominally huge ufs file with seek and write, only 1 block is used? Then, mmap6() allows you to do sparse array in 64 bit space, where missing entries are nulls for free (use RAM but no disk).
(Some sleazy money grubbers leave out options unless you buy a more premium compiler, so try gcc/g++ 64 bit and see if it works when this does not!)
Hi all !
I'm new in this site, so sorry if this question is into wrong place.
How can I limit cpu/core and memory usage by user?
System: RedHat Ent. Linux. 6.4
Tks, (4 Replies)
i have to shared a variable between two different c programs with shared memory and i do these:
int main() {
int a=5,b=7;
int buffer;
int *point;
int shmid;
shmid=shmget(IPC_PRIVATE , sizeof(buffer),0666);
point=(int *)shmat(shmid,NULL,0);
point=a;
... (21 Replies)
Hi, I have .sh script running php script with "php". When I run php script from web browser, it is running without errors. When I run it from .sh script, I am getting "memory exhausted". It seems to me that running php from .sh does not respect php.ini or have its own setting. So, how can I set... (0 Replies)
Is there an input file memory limit for awk?
I have a 38Mb text file that I am trying to print out certatin lines and add a string to the end of that line.
When I excute the script on the 38Mb file the string I am adding is put on a new line. If I do the same with a smaller file the... (3 Replies)
I have a Java program. I want to measure the total memory used by the program, especially the peak memory. Is there a way to do it?
I have tried utilities like time (which returns 0) and top (which is not very useful) as the program does not run for long.
Can anyone suggest a way to do this?... (5 Replies)
I have a customer with an HP DL380 G4 server running Redhat 2.1 AS that has 4GB memory installed. They want to upgrade in the server to the maximum of 12GB using (6) 2GB DIMMs. I can do this for them, but I read somewhere that Redhat 2.1 has an upper memory limit. Or you need a kernel patch to use... (2 Replies)
Hellp all,
if there is 3G memory in my Unix server I want to know if all the 3G space can be used by ong sigle process. As i know, in Windows, one process can only access at most 1G memory despite there is probably more than 1G memory is equipped. (1 Reply)
I need some advise.
I have an application server running several applications. When I try and start a particular application when the others are running I receive the following. This is appearing in the core file that is created.
... (1 Reply)