summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib/malloc.c
Commit message (Collapse)AuthorAgeFilesLines
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* _thread_kern_sig_unblock takes an integer, not a reference.alex1996-12-291-2/+2
| | | | Submitted by: John Birrell <jb@cimlogic.com.au>
* If you run with option Z and malloc fails, memset gets calledphk1996-10-291-4/+6
| | | | | | | with a NULL pointer (archie) Explain that minsize is also the smallest alignment. Submitted by: Archie Cobbs <archie@whistle.com>
* Various cosmeticsphk1996-10-261-48/+28
| | | | | | Improve chances of troublefree 64bit operation. [imp] Noticed by: Warner Losh <imp@village.org>
* malloc_pages should be static.phk1996-10-201-187/+103
| | | | | | | | | | | | | | | | Add progname to warning/error message layout. (joerg) Remove inline assembler, no speed impact, not need for the obfuscation (bde) Remove on the fly calculation of parameters, no longer critical. Make D & U flags valid even if we don't support them. Don't call imalloc until we're done initializing. Zap contents on free() if we have "Junk" set. [*] Various nitpicking. [*] As a sideeffect of this change, if you are worried about sensitive data lingering in memory, you can use the 'Junk' option now to make sure phkmalloc zaps memory when it is returned. add char * malloc_options = "J"; to your source. Obviously there is a performance impact.
* Fix a typo.sos1996-09-251-2/+2
| | | | Reviewed by: phk
* A number of minor bogons and portability things from jdp.phk1996-09-251-28/+37
| | | | Submitted by: jdp
* phkmalloc/3phk1996-09-231-189/+232
| | | | | | | | Various neat features added. More documentation in the manpage. If your machine has very little RAM, I guess that would be < 16M these days :-(, you may want to try this: ln -fs 'H<' /etc/malloc.conf check the manpage.
* Fix a very rare error condition: The code to free VM back to the kernelphk1996-09-171-3/+4
| | | | | | | as done after a quasi-recursive call to free() had modified what we thought we knew about the last chunk of pages. This bug manifested itself when I did a "make obj" from src/usr.sbin/lpr, then make would coredump in the lpd directory.
* Isolated all the crap for thread-safe so I can see what goes on again...phk1996-07-031-61/+48
|
* Reviewed by: julian and (hsu?)julian1996-01-221-3/+66
| | | | | | Submitted by: John Birrel(L?) changes for threadsafe operations
* Fix a fencepost error.phk1996-01-051-4/+4
| | | | Found by: Lars Fredriksen <fredriks@mcs.com>
* Preallocate a small structure, so we can sbrk(2) further back.phk1995-12-181-2/+8
| | | | | Reviewed by: phk Submitted by: Kaleb Keithly <kaleb@x.org>
* Change phkmalloc so that the page directory is now floating and allocatedpeter1995-12-111-29/+47
| | | | | | | | | | | | | | | | | | | | | via mmap() up around the shared library area. Previously the directory was allocated from space from it's own memory pool. Because of the way it was being extended on processes with large malloced data segments (ie: inn) once the page directory was extended for some reason, it was not possible to lower the heap size any more to return pages to the OS. (If my understanding is correct, page directory expansion occurs at 4MB, 12MB, 20MB, 28MB, etc.) I was seeing INN allocate a large amount of short term memory, pushing it over the 28MB mark, and once it's transient demands hit 28MB, it never freed it's pages and swap space again.) I've been running this in my libc for about a month... Also, seperate MALLOC_STATS from EXTRA_SANITY.. I found it useful to call malloc_dump() from within INN from a ctlinnd command to see where the hell all the memory was going.. :-) I've left MALLOC_STATS enabled, as it has no run-time or data storage cost. Reviewed by: phk
* Remove EXTRA_SANITY, fix a unused var.phk1995-10-221-4/+8
|
* phkmalloc/2phk1995-10-081-291/+353
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "zero' and 'junk' options to help find and diagnose malloc abuse. EXTRA_SANITY defaults "junk" to on. Don't dump the internal state, unless EXTRA_SANITY. General code cleanup. Error messages cleaned up a bit, more checking earlier. EXTRA_SANITY is default at this time (just in case). Performance (without EXTRA_SANITY) is better, beats gnumalloc in both time & space most of the time: # In-memory test. ./malloc 50000000 2000 8192 159.2u 1.5s 2:41.85 99.3% 5+7742k 0+0io 0pf+0w ./gnumalloc 50000000 2000 8192 272.6u 0.4s 4:35.01 99.3% 5+8533k 0+0io 0pf+0w # Swap-space test. ./malloc 500000 14000 8192 6.5u 4.1s 4:08.87 4.3% 5+49209k 0+0io 9772pf+0w ./gnumalloc 500000 14000 8192 16.2u 14.5s 15:36.14 3.2% 5+54100k 0+0io 47651pf+0w # Small items test. ./malloc 20000000 20000 2048 67.0u 0.3s 1:07.83 99.2% 5+18199k 0+0io 4pf+0w ./gnumalloc 20000000 20000 2048 66.2u 0.3s 1:07.03 99.3% 5+18107k 0+0io 0pf+0w SANITY is not an option anymore. (!!)
* A buglet when dumping and a stylistic point from Mike.phk1995-09-221-8/+8
| | | | Submitted by: Mike Pritchard <mpp@mpp.minn.net>
* ``phkmalloc''phk1995-09-161-361/+1006
| | | | | | | Performance is comparable to gnumalloc if you have sufficient RAM, and it screams around it if you don't. Compiled with "EXTRA_SANITY" until further notice. see malloc.3 for more details.
* Remove trailing whitespace.rgrimes1995-05-301-6/+6
|
* BSD 4.4 Lite Lib Sourcesrgrimes1994-05-271-0/+420
OpenPOWER on IntegriCloud