delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/03/14/12:28:38

Message-ID: <3E721051.645AA67D@yahoo.com>
Date: Fri, 14 Mar 2003 12:24:33 -0500
From: CBFalconer <cbfalconer AT yahoo DOT com>
Organization: Ched Research
X-Mailer: Mozilla 4.75 [en] (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Martin Stromberg <Martin DOT Stromberg AT epl DOT ericsson DOT se>,
djgpp-workers <djgpp-workers AT delorie DOT com>
Subject: Re: nmalloc revisited
References: <200303141601 DOT RAA26911 AT lws256 DOT lu DOT erisoft DOT se>
Reply-To: djgpp-workers AT delorie DOT com

This is a multi-part message in MIME format.
--------------934BF7B56324F54FCD3F25C7
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Martin Stromberg wrote:
> CBFalconer said:
> > Martin Stromberg wrote:
> > > CBFalconer said:
>
> > > > BTW the nmalloc.c code has not been altered since June 2002, and
> > > > the overall package is unaltered since November 2002 (some
> > > > documentation changes and testing).  It remains available at:
> > >
> > > So it remains incompatible with the debugging machinery already
> > > present in DJGPP?
> > >
> > > I'll back out my local incorporation of it as it seems it never will
> > > be (and some DJGPP test case(s?) won't build).
> >
> > What won't build?  I have never found any specification for the
> 
> Some test case in djgpp/test. I don't remember exactly where but
> tests/libc/ansi/stdlib/ is not impossible. It tried to use the
> malloc debug hooks.
> 
> > debugging systems, but the debug interface remains in nmalloc,
> 
> You can't be using up-to-date information. It's checked in in CVS.
> You can get a current version of malloc.txh here:
> <http://www.ludd.luth.se/~ams/djgpp/cvs/djgpp/src/libc/ansi/stdlib/>.
> 
> > You can see the dramatic effects by trying evilalgo.c, or by
> > executing test 4 of the hashlib package for something like 40000
> > allocations.  nmalloc cuts the running time of that test by about
> > a factor of 60, all spent in the free routine.
> 
> I agree that the current implementation has some problems. I think
> all on this list do so too and have for a long time.
> 
> Your implementation has worked well for me (except for that test case
> above, which currently can't work). But I've mostly been rebuilding
> libc and the other DJGPP specific programs so I'm not sure that my
> environment is sufficiently stressful.
> 
> Somebody needs to either rework your code into what's in the
> documentation or vice versa. That somebody doesn't exist. It's
> unlikely he'll appear. It's been like this a year or so.
> 
> Hence, we will probably just patch up the current malloc implemention
> to avoid that evilalgo problem (not perfectly but workingly).

Is everybody talking about what I have attached (a zipped htm
file).  If so, I think mallinfo and mallocmap can be trivially
implemented without changing nmalloc.  mallocmap can thus ignore
the level parameter.  malloc_debug is harder, and probably needs
the malloc hooks, which are not trivially implemented without
changes, unless a different malloc package is linked using the
alternative names and an interception package is loaded.

Actually, without NDEBUG set, the internal names are redefined to
be malloc, free, and realloc at compilation time.  By changing
this one definition to redefine as _malloc, _free, and _realloc
there can be a 10 line generalized package, holding:

   void *malloc(size_t sz) {return _malloc(sz);}

etc. and it might cost nothing if defined as inline.  That would
make inserting the hooks trivial, and nothing existing need be
changed.  The magic numbers in the malloc-hooks documentation
would have to go - they are returned by the existing (in nmalloc)
_sysquery call.  Also nmalloc does not record a duplicate copy of
block size - I had similar provisions earlier but they adversely
affect the overhead for 8 byte alignment and people were worried
about that when I started this project.

Will somebody please fix the reply-to field on delivered messages.

-- 
Chuck F (cbfalconer AT yahoo DOT com) (cbfalconer AT worldnet DOT att DOT net)
   Available for consulting/temporary embedded and systems.
   <http://cbfalconer.home.att.net>  USE worldnet address!
--------------934BF7B56324F54FCD3F25C7
Content-Type: application/x-zip-compressed;
 name="malldbg.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="malldbg.zip"

UEsDBBQAAAAIAENbbi4eBUrrZBEAAEU2AAALABEAbWFsbGRiZy5odG1VVA0AB54Ccj7QYXE+
/wFyPs1bbW8kt5H+LkD/gVYQe8aZlWR7PxxWWgG210k28e4Zt7sxDjhgwenmzPDUbyG7R5oE
+e/3VBXJ7p5uSdkY8CUIrJlpNlmsl6eeKnKvd21ZqEJX25dnpjq7OT253hmd09/WtoW5+VDx
3/z6Qr7jQWlarXZt2zwzf+3s/uXZ93XVmqp99v7QmDOVybeXZ625by9o/rP0VqVL8zI3PnO2
aW1d9YPjOkdjt6YyTre160eW+tbYalOr5+eXPLqw1a3aObN5eUZSvbi4wMo04rx224sz5UzR
z/NsV5e8i4uwT3xc1/mBfmpurncOH97WuXlxHSTAekVRZ2c38vf6Qt+sMAR7oyE0d4XPYf3f
lKas3QGD+S8Npvkdr/PoCiSvrEGffsEq17tvbt4dqlbfY4vfyE+NMze/sVVWdLlRnxftlW/z
wq7Pd59v2ysa4VvXZa2Ky6cPi31t8+UVqYvmiPO/6i04WOTm/c56temqjE3rTNu5yiuax5Wa
f9PrusMujG6Ub3RmVOf11pwr9bpV1p+eWLJxbnLV1mpNT/ERb6vcrLvt1lZblR+gM5sp2bpi
m4S5K7zmdHaLYacnvEac/f3OqOsMOr852uj1Bf+q5OfOGUiBxTa2wsLrA3YV3hJ1xeEa26yx
8p1/kfSrjnX499MTpbD7VmlnKn2VvtYuXxe3vv/Bl+Pvu+nXXd5/747Hb45/6CZLbCa/3BrT
ZLUn+6t/jC3c3Nztam9Ix2vjPMkv+8wLcrS8vRG18L6CTuj3/IYU3datLpQu6472uhFDr7Am
FNoav1I7zSZeH6JN1u42arato85juPEX2PBt3WLunW7xHxgJ/69q+myURxCRSfrZFpfL8OJK
efi9SYYcLBVcx/joS5Cw0G5rVLbrqlsvDrUzlfLdOrd7C9yi7+XpCT1ptPfhB/LWGaFJJkcQ
6UxOLl7hHdfarMMqK5bcGd8V7ekJtDQnvCrtdtdSIJRdthPhHOmg4renRggWg9Z7z5319zva
Fs3x6qc3rxWM3c6p4/SkqqtnBLx229Ud7WaLSPNqsdNNY/ABYffm3bOfbZUjFpbngqbupneR
4HYTJ6m6IKg6wxBbaSy4hgC3/uwFCyZe1A+L4uVkltOTjTMmvIDNwZ91CNk5Q8zIJRHzmFie
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
AACeEQAAAAA=

--------------934BF7B56324F54FCD3F25C7--


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019