Date: Tue, 28 Mar 2006 09:07:14 +0300 From: Vasil Dimov <vd@FreeBSD.org> To: John Baldwin <jhb@freebsd.org> Cc: Robert Watson <rwatson@freebsd.org>, Jason Evans <jasone@freebsd.org>, freebsd-arch@freebsd.org Subject: Re: Proposed addition of malloc_size_np() Message-ID: <20060328060714.GB97222@qlovarnika.bg.datamax> In-Reply-To: <200603271520.11381.jhb@freebsd.org> References: <44247DF1.8000002@FreeBSD.org> <200603271110.02917.jhb@freebsd.org> <44281421.3060401@FreeBSD.org> <200603271520.11381.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--GID0FwUMdk1T2AWN Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Mar 27, 2006 at 03:20:08PM -0500, John Baldwin wrote: > On Monday 27 March 2006 11:34, Jason Evans wrote: [...] > > 4) Porting code from Linux. Case in point: Xara Xtreme, currently bein= g=20 > > ported by Vasil Dimov. At the moment, he has to use dlmalloc. >=20 > Does it contain a G/C of its own or some such? >=20 Here is what malloc_usable_size() is used for in Xara Xtreme: * They keep track of how much (heap) memory is available. Maybe they support an option like "do not use more that N MiB". This is achieved by a wrappers to realloc() and free() which manipulate a global? variable AvailableRAM - the realloc() wrapper decreases AvailableRAM with (newsize - oldsize) where oldsize is retrieved with malloc_usable_size(). The free() wrapper increases AvailableRAM with what is returned by malloc_usable_size(). * Debugging purposes like keeping track of how much memory they allocated, the filename and linenumber of the allocation * They use a function similar to realloc(), but which receives the number of bytes they need to increment the buffer with, rather than the new size, so they call realloc(p,increment+malloc_usable_size(p)) * A lot of other miscellaneous purposes where they should really keep track of how many bytes they requested from malloc() rather than calling malloc_usable_size(). --=20 Vasil Dimov gro.DSBeerF@dv Testing can show the presence of bugs, but not their absence. -- Edsger W. Dijkstra --GID0FwUMdk1T2AWN Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- iD8DBQFEKNKSFw6SP/bBpCARApOSAJ91DRTph0Jb5ynCUDFnT8Yx+e8gogCeNcuS nQCPJsUyC/K/Mi6EbEkvyH0= =VfHa -----END PGP SIGNATURE----- --GID0FwUMdk1T2AWN--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060328060714.GB97222>