Message-ID: <3E721051.645AA67D@yahoo.com> Date: Fri, 14 Mar 2003 12:24:33 -0500 From: CBFalconer Organization: Ched Research X-Mailer: Mozilla 4.75 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Martin Stromberg , djgpp-workers Subject: Re: nmalloc revisited References: <200303141601 DOT RAA26911 AT lws256 DOT lu DOT erisoft DOT se> Content-Type: multipart/mixed; boundary="------------934BF7B56324F54FCD3F25C7" 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: > . > > > 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. 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--