summaryrefslogtreecommitdiffstats
path: root/sys/net/ieee8023ad_lacp.h
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2007-12-31 00:59:16 +0000
committerjasone <jasone@FreeBSD.org>2007-12-31 00:59:16 +0000
commit1f55b95c0b8bf827067cd8af2a8bb21479ae5efb (patch)
treee1fc0c128b2fba90785c69d2cc80d74e542f6295 /sys/net/ieee8023ad_lacp.h
parent08cba53c9431076582cbec250bf6bf63a8570aa2 (diff)
downloadFreeBSD-src-1f55b95c0b8bf827067cd8af2a8bb21479ae5efb.zip
FreeBSD-src-1f55b95c0b8bf827067cd8af2a8bb21479ae5efb.tar.gz
Fix a bug related to sbrk() calls that could cause address space leaks.
This is a long-standing bug, but until recent changes it was difficult to trigger, and even then its impact was non-catastrophic, with the exception of revision 1.157. Optimize chunk_alloc_mmap() to avoid the need for unmapping pages in the common case. Thanks go to Kris Kennaway for a patch that inspired this change. Do not maintain a record of previously mmap'ed chunk address ranges. The original intent was to avoid the extra system call overhead in chunk_alloc_mmap(), which is no longer a concern. This also allows some simplifications for the tree of unused DSS chunks. Introduce huge_mtx and dss_chunks_mtx to replace chunks_mtx. There was no compelling reason to use the same mutex for these disjoint purposes. Avoid memset() for huge allocations when possible. Maintain two trees instead of one for tracking unused DSS address ranges. This allows scalable allocation of multi-chunk huge objects in the DSS. Previously, multi-chunk huge allocation requests failed if the DSS could not be extended.
Diffstat (limited to 'sys/net/ieee8023ad_lacp.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud