summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Provide a dummy compression-layer skip function which just reads data andcperciva2007-03-313-34/+44
| | | | | | | | | | discards it, for use when the compression layer code doesn't know how to skip data (e.g., everything other than the "none" compressor). This makes format level code simpler because that code can now assume that the compression layer always knows how to skip and will always skip exactly the requested number of bytes. Discussed with: kientzle (3 months ago)
* Back out my previous commit to this area, there are differences betweentrhodes2007-03-302-363/+0
| | | | | | our implementation and OpenBSD's. Requested by: des
* Use size_t instead of unsigned for pagesize-related values, in order tojasone2007-03-291-4/+8
| | | | | | | | | avoid downcasting issues. In particular, this change fixes posix_memalign(3) for alignments greater than 2^31 on LP64 systems. Make sure that NDEBUG is always set to be compatible with MALLOC_DEBUG. [1] Reported by: [1] Lee Hyo geol <hyogeollee@gmail.com>
* Remove the run promotion/demotion machinery. Replace it with red-blackjasone2007-03-281-430/+219
| | | | | | | | | | | | | | | | | | | | | | | trees that track all non-full runs for each bin. Use the red-black trees to be able to guarantee that each new allocation is placed in the lowest address available in any non-full run. This change completes the transition to allocating from low addresses in order to reduce the retention of sparsely used chunks. If the run in current use by a bin becomes empty, deallocate the run rather than retaining it for later use. The previous behavior had the tendency to spread empty runs across multiple chunks, thus preventing the release of chunks that were completely unused. Generalize base_chunk_alloc() (and rename it to base_pages_alloc()) to handle allocation sizes larger than the chunk size, so that it is possible to support chunk sizes that are smaller than an arena object. Reduce the minimum chunk size from 64kB to 8kB. Optimize tracking of addresses for deleted chunks. Fix a statistics bug for huge allocations.
* Change macro in order to refer to FreeBSD 7.0 instead of 7.0BSD.jasone2007-03-281-2/+2
| | | | Reported by: Michal Mertl <mime@traveller.cz>
* Update the IMPLEMENTATION NOTES section to reflect recent mallocjasone2007-03-281-13/+30
| | | | enhancements.
* Remove some stray roff formatting that caused incorrect rendering.jasone2007-03-281-1/+0
|
* Add a HISTORY section.jasone2007-03-281-0/+5
|
* In account management, verify whether the account has been lockedyar2007-03-272-3/+22
| | | | | | | | | | | | | | with `pw lock', so that it's impossible to log into a locked account using an alternative authentication mechanism, such as an ssh key. This change affects only accounts locked with pw(8), i.e., having a `*LOCKED*' prefix in their password hash field, so people still can use a different pattern to disable password authentication only. Mention all account management criteria in the manpage. Approved by: maintainer (timeout) PR: bin/71147 MFC after: 1 month
* Describe the contents of the "ar_name" and "ar_rawname" fields ofjkoshy2007-03-271-6/+6
| | | | Elf_Arhdr structures better.
* Bug fixes to ar(1) archive handling:jkoshy2007-03-271-13/+31
| | | | | | | | | - Correctly retrieve the initial (special) members of an archive after an archive descriptor is rewound using elf_rand(SARMAG). - Do not strip trailing white space from the 'raw' names retrieved using elf_getarhdr(). Reported by: "Hyo geol, Lee" <hyogeollee at gmail dot com>
* Clarify memory management rules for pmc_cpuinfo().jkoshy2007-03-261-1/+4
| | | | Suggested by: "Harald Servat" <redcrash at gmail dot com>
* Document the return type of elf_rand(3) correctly.jkoshy2007-03-261-1/+1
|
* Fix some subtle bugs for posix_memalign() having to do with integerjasone2007-03-241-18/+43
| | | | | | | | rounding and overflow. Carefully document what the various overflow tests actually detect. The bugs mostly canceled out, such that the worst possible failure cases resulted in non-fatal over-allocations.
* Notice when mkdir() fails.kientzle2007-03-243-11/+73
| | | | | | | | Don't change permissions on an existing dir unless _EXTRACT_PERM is requested. In particular, bsdtar -x should not edit mode of existing dirs now; bsdtar -xp will.
* Fix compile error when libbz2 is unavailable.kientzle2007-03-241-1/+1
|
* Fix posix_memalign() for large objects. Now that runs are extents ratherjasone2007-03-231-151/+297
| | | | | | | | than binary buddies, the alignment guarantees are weaker, which requires a more complex aligned allocation algorithm, similar to that used for alignment greater than the chunk size. Reported by: matteo
* Use extents rather than binary buddies to track free pages withinjasone2007-03-231-323/+332
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | chunks. This allows runs to be any multiple of the page size. The primary advantage is that large objects are no longer constrained to be 2^n pages, which can dramatically decrease internal fragmentation for large objects. This also allows the sizes for runs that back small objects to be more finely tuned. Free runs are searched for linearly using the chunk page map (with the help of some heuristic optimizations). This changes the allocation policy from "first best fit" to "first fit". A prototype red-black tree implementation for tracking free runs that implemented "first best fit" did not cause a measurable speed or memory usage difference for realistic chunk sizes (though of course it is possible to construct benchmarks that favor one allocation policy over another). Refine the handling of fullness constraints for small runs to be more tunable. Restructure the per chunk page map to contain only two fields per entry, rather than four. Also, increase each entry from 4 to 8 bytes, since it allows for 32-bit integers, without increasing the number of chunk header pages. Relax the maximum chunk size constraint. This is of no practical interest; it is merely fallout from the chunk page map restructuring. Revamp statistics gathering and reporting to be faster, clearer and more informative. Statistics gathering is fast enough now to have little to no impact on application speed, but it still requires approximately two extra pages of memory per arena (per process). This memory overhead may be acceptable for most systems, but we still need to leave statistics gathering disabled by default in RELENG branches. Rename NO_MALLOC_EXTRAS to MALLOC_PRODUCTION in order to make its intent clearer (i.e. it should be defined in RELENG branches).
* Let people in on the magic of INET[6]_ADDRSTRLEN which comes quite handy inmlaier2007-03-211-1/+6
| | | | | | combination with inet_ntop(). Reviewed by: trhodes "works for me"
* Avoid using vsnprintf(3) unless MALLOC_STATS is defined, in order tojasone2007-03-201-152/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | avoid substantial potential bloat for static binaries that do not otherwise use any printf(3)-family functions. [1] Rearrange arena_run_t so that the region bitmask can be minimally sized according to constraints related to each bin's size class. Previously, the region bitmask was the same size for all run headers, which wasted a measurable amount of memory. Rather than making runs for small objects as large as possible, make runs as small as possible such that header overhead stays below a certain bound. There are two exceptions that override the header overhead bound: 1) If the bound is impossible to honor, it is relaxed on a per-size-class basis. Since there is one bit of header overhead per object (plus a constant), it is impossible to achieve a header overhead less than or equal to 1/(# of bits per object). For the current setting of maximum 0.5% header overhead, this relaxation comes into play for {2, 4, 8, 16}-byte objects, for which header overhead is (on 64-bit systems) {7.1, 4.3, 2.2, 1.2}%, respectively. 2) There is still a cap on small run size, still set to 64kB. This comes into play for {1024, 2048}-byte objects, for which header overhead is {1.6, 3.1}%, respectively. In practice, this reduces the run sizes, which makes worst case low-water memory usage due to fragmentation less bad. It also reduces worst case high-water run fragmentation due to non-full runs, but this is only a constant improvement (most important to small short-lived processes). Reduce the default chunk size from 2MB to 1MB. Benchmarks indicate that the external fragmentation reduction makes 1MB the new sweet spot (as small as possible without adversely affecting performance). Reported by: [1] kientzle
* Correct a typo.jkoshy2007-03-191-3/+3
| | | | Submitted by: Kai Wang <kaiw27 at gmail dot com>
* Don't forget to increment the raw_position (bytes written) counter, evencperciva2007-03-171-0/+1
| | | | | | | when operating in non-buffered mode. Pointy hat to: cperciva MFC after: 3 days
* o Add ENVIRONMENT section and mention there that TMPDIR is ignoredmaxim2007-03-161-1/+14
| | | | | | | | when issetugid(3) is true. PR: docs/108346 Obtained from: OpenBSD MFC after: 1 week
* The ufs_disk_fillout(3) can take special device name (with or without /dev/pjd2007-03-161-7/+36
| | | | | | | | | | | | | | | | | | | | | | | prefix) as an argument and mount point path. At the end it has to find device name file system is stored on, which means when mount point path is given, it tries to look into /etc/fstab and find special device corresponding to the given mount point. This is not perfect, because it doesn't handle the case when file system is mounted by hand and mount point is given as an argument. I found this problem while trying to use snapinfo(8), which passes mount points to the ufs_disk_fillout(3) function, but I had file system mounted manually, so snapinfo(8) was exiting with the error below: ufs_disk_fillout: No such file or directory I modified libufs(3) to handle those arguments (the order is important): 1. special device with /dev/ prefix 2. special device without /dev/ prefix 3. mount point listed in /etc/fstab, directory exists 4. mount point listed in /etc/fstab, directory doesn't exist 5. mount point of a file system mounted by hand
* - Sysctl's move to seperate filerrs2007-03-151-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | - moved away from ifn/ifa access to sctp_ifa/sctp_ifn built and managed by the add-ip code. - cleaned up add-ip code to use the iterator - made iterator be a thread, which enables auto-asconf now. - rewrote and cleaned up source address selection (also made it use new structures). - Fixed a couple of memory leaks. - DACK now settable as to how many packets to delay as well as time. - connectx() to latest socket API, new associd arg. - Fixed issue with revoking and loosing potential to send when we inflate the flight size. We now inflate the cwnd too and deflate it later when the revoked chunk is sent or acked. - Got rid of some temp debug code - src addr selection moved to a common file (sctp_output.c) - Support for simple VRF's (we have support for multi-vfr via compile switch that is scrubbed from BSD but we won't need multi-vrf until we first get VRF :-D) - Rest of mib work for address information now done - Limit number of addresses in INIT/INIT-ACK to a #def (30). Reviewed by: gnn
* Fix a comment in memstat.h: errors are associated with memory type lists,rwatson2007-03-151-1/+1
| | | | | | | not individual types. Submitted by: Bryan Venteicher <bryanv at daemoninthecloset dot org> MFC after: 3 days
* When ARCHIVE_EXTRACT_UNLINK is requested:kientzle2007-03-132-5/+11
| | | | | | | | * Only try to remove the existing item if we're not restoring a directory. * If unlink fails, try rmdir next. This should fix the broken --unlink option in bsdtar. Thanks again to: Kris Kennaway, for beating up bsdtar on pointyhat.
* Merge the following changes from NetBSD:stefanf2007-03-114-16/+37
| | | | | | | | | | | | | history.c 1.32: # Fix memory leak found by valgrind (Julien Torres) map.c 1.24: # fix debugging printf format. read.c 1.40: # Fix bug with multiple pending el_pushes. Reported by Julien Torres. tty.c 1.24: # Coverity CID 1216: Prevent negative index use. MFC after: 3 weeks
* Merge the following changes from NetBSD:stefanf2007-03-119-95/+144
| | | | | | | | | | | | | | | | | chared.h 1.17, common.c 1.19, emacs.c 1.21, key.c 1.18, key.h 1.9, map.c 1.23, term.c 1.42, term.h 1.17, vi.c 1.25: # Print the actual eofc, instead of ^D\b\b. # Change internal character decoding to prevent buffer oveflows. key.c 1.19, key.h 1.10: # move declaration to header file. term.c 1.43: # Coverity CID 806: Prevent NULL deref term.c 1.44: # Coverity CID 1668: Plug memory leak. term.c 1.45: # Fix compilation. MFC after: 3 weeks
* Libarchive 2.0.23:kientzle2007-03-117-157/+145
| | | | | | | | | | | | * The ACL formatter was mis-formatting entries which had a user/group ID but no name. Make the parser tolerant of these, so that old archives can be correctly restored; fix the formatter to generate correct entries. * Fix overwrite detection by introducing a new "FAILED" return code that indicates the current entry cannot be continued but the archive as a whole is still sound. * Header cleanup: Remove some unused headers, add some that are required with new Linux systems.
* Merge changes to the NetBSD copyright (advertising clause removal).stefanf2007-03-113-18/+6
|
* Wordsmithery.bms2007-03-091-1/+1
| | | | Pointed out by: ru
* Enable ncurses wide character supportrafan2007-03-0911-24/+195
| | | | | Approved by: delphij (mentor) Tested by: kris on pointyhat (early version), current@
* - style.Makefile(9) fixrafan2007-03-096-936/+934
| | | | | | | | | | | | | | | - first line is $FreeBSD$ - Reorder special variables: DPADD, LPADD, CFLAGS - Use = instead of += for variables that are initially empty - Use space instead of tab after : - Use one tab after = - Use .SUFFIXES for section 3 manual page which simplifies Makefile a lot - Use SHAREDIR instead of /usr/share - Remove SRCDIR in INCS since we set .PATH properly - Use plural in variable name when it stands for more that one source file Reviewed by: ru Approved by: delphij (mentor)
* Document SO_ACCEPTCONN.bms2007-03-081-1/+9
| | | | | Submitted by: Vlad GALU (with changes) MFC after: 3 days
* New tests for system-independent ACL support.kientzle2007-03-083-0/+744
| | | | | | | | These tests verify that archive_entry objects can store and return ACL data and that pax format archives can read and write ACL information. These do not (yet) test that ACL data is read or written to disk correctly. (And hence would not have caught the recent snafu about ACL read-from-disk being turned off.)
* Distinguish between the end of ACL data and an error in pullingkientzle2007-03-081-1/+1
| | | | | | | ACL data from the archive entry. This doesn't impact archive_read_extract or archive_write_disk since they only check for != ARCHIVE_OK when calling this function. (Though they should be more careful.)
* Add GELF_* accessor macros.jkoshy2007-03-081-0/+16
| | | | Prodded by: Sam Arun Raj <samarunraj at gmail dot com>
* Fix license. Clause 4 is still required (UCB materiel).bms2007-03-071-6/+5
| | | | | Submitted by: rwatson Pointy hat to: bms
* use 2-clause BSD license as per hoskins strike-off july 22 1999.bms2007-03-071-4/+6
| | | | use wording of FreeBSD License.
* Only reject file descriptors higher than FD_SETSIZE if we are not usingjhb2007-03-051-7/+5
| | | | | | | | | | | | | poll(2) or kqueue(2). Previously we rejected fd's higher than FD_SETSIZE for kevent(2), and larger than sysconf(_SC_OPEN_MAX) for poll(2). However, the check for poll(2) wasn't really needed. open(2) and socket(2) won't return an fd you can't pass to either poll(2) or kevent(2). This fixes a but where gethostbyname() would fail if you had more than 1023 files open in a process. MFC after: 1 week Reviewed by: ume Found by: ps
* Oops, fix a typo in the last commit :-/brian2007-03-052-2/+2
|
* In the NOTYET code path when a process forks, the remainingbrian2007-03-052-14/+8
| | | | | | | | | | | child thread goes back to system scope rather than process scope. This allows an ensuing exec() to actually work. This change was made a year ago here, but I "forgot" to commit it :( Approved by: deischen MFC after: 3 weeks
* Apply my patch properly.ru2007-03-051-1/+1
|
* Fix markup.bms2007-03-051-22/+36
| | | | | Submitted by: ru MFC after: 2 days
* .Xr nit.bms2007-03-051-2/+2
| | | | Submitted by: brueffer
* Update shutdown() manual page to reflect actual behaviour of code.bms2007-03-051-10/+82
| | | | | | | | Add IMPLEMENTATION NOTES section explaining in detail the effect this system call has in common use cases involving PF_INET and PF_INET6 sockets. PR: kern/84761 MFC after: 2 days
* Test cases for back references.delphij2007-03-051-0/+24
| | | | Obtained from: OpenBSD
* Only stop evaluation of a back reference if the match length isdelphij2007-03-051-15/+17
| | | | | | zero and the recursion level is too deep. Obtained from: OpenBSD
* Avoid infinite recursion on:delphij2007-03-051-0/+2
| | | | | | echo "foo foo bar bar bar baz" | sed 's/\([^ ]*\)\( *\1\)*/\1/g' Obtained from: OpenBSD via NetBSD (rev. 1.18)
OpenPOWER on IntegriCloud