malloc (was: making a request to IBM)

Mark Brown mbrown at testsys.austin.ibm.com
Sat Apr 13 08:55:08 AEST 1991


| The problem:  as you all remember,  malloc()  returns  NULL  only
| when the process exceeds its datasize limit.  If malloc returns a
| non-null pointer, the memory  may  turn  out  to  be  exceedingly
| virtual:   there  won't  be any paging space behind it.  AIX runs
| out of paging space when the process actually  uses  the  memory.
| Various  processes  die.   In Info, see `List of Books', `General
| Concepts  and  Procedures',  scroll  ~1/3  down,  `Paging   Space
| Overview'.  See also psmalloc.c in /usr/lpp/bos/samples.  Etc etc
| etc.
| 
| Personally, I think it's a bug.  If  there  is  no  memory  left,
| malloc  should  return  a  NULL.  IBM says it's a feature,  catch
| SIGDANGER if you don't like it.

Yeah, I've heard complaints (and roses) on this one.
The Rationale: Rather than panic the machine, we'd like for it to keep
running as long as possible. Hence, we try to keep running at all costs,
including doing things like this. So, when we do get close to the limit,
we send a warning, than as we go over we start killing the biggest memory
users. (Warning - this processes involved have been overly simplified).

The Idea was to make the machine 'more reliable'. Our research led us
to believe that many processes allocated more memory than actually used in
page space (I think) and we used this knowledge. Understandably, many
UNIX users either a) want the machine to panic, "like UNIX does"; or
b) hate our algorithm for killing jobs. I also think we don't advertise/
document the process involved enough to make it useful to users.

So, do we go back to blowing up processes that allocate too much memory,
even though that memory may actually be there by the time the process
actually uses it? Do we go back to 'panic' when page space fills? There are
reasonable arguments for doing this...


Mark Brown    IBM PSP Austin, TX.     (512) 823-3741   VNET: MBROWN at AUSVMQ
MAIL: mbrown at testsys.austin.ibm.com OR uunet!testsys.austin.ibm.com!mbrown
		Which came first: The Chicken or the Legba?
      DISCLAIMER: Any personal opinions stated here are just that.



More information about the Comp.unix.aix mailing list