freebsd-skq/lib
will ea532c48b8 libkvm: Improve physical address lookup scaling.
Instead of using a hash table to convert physical page addresses to offsets
in the sparse page array, cache the number of bits set for each 4MB chunk of
physical pages.  Upon lookup, find the nearest cached population count, then
add/subtract the number of bits from that point to the page's PTE bit.
Then multiply by page size and add to the sparse page map's base offset.

This replaces O(n) worst-case lookup with O(1) (plus a small number of bits
to scan in the bitmap).  Also, for a 128GB system, a typical kernel core of
about 8GB will now only require ~4.5MB of RAM for this approach instead of
~48MB as with the hash table.

More concretely, /usr/sbin/crashinfo against the same core improves from a
max RSS of 188MB and wall time of 43.72s (33.25 user 2.94 sys) to 135MB and
9.43s (2.58 user 1.47 sys).  Running "thread apply all bt" in kgdb has a
similar RSS improvement, and wall time drops from 4.44s to 1.93s.

Reviewed by:	jhb
Sponsored by:	Backtrace I/O
2016-07-18 01:55:25 +00:00
..
atf Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
clang Bump FREEBSD_CC_VERSION in lib/clang/freebsd_cc_version.h 2016-07-08 01:47:01 +00:00
csu Stop dereferencing _end in crt1.c. This was only needed for brk/sbrk so is 2016-05-22 08:20:30 +00:00
lib80211
libalias
libarchive MFV r302003,r302037,r302038,r302056: 2016-06-22 07:49:59 +00:00
libauditd
libbegemot
libblacklist DIRDEPS_BUILD: Connect new directories and update dependencies. 2016-06-03 19:25:30 +00:00
libblocksruntime
libbluetooth Improve performance and functionality of the bitstring(3) api 2016-05-04 22:34:11 +00:00
libbsdstat Fix off by one error in index limit calculation 2016-05-16 15:42:59 +00:00
libbsm
libbsnmp Remove NO_WERROR from libbsnmp/Makefile.inc 2016-05-13 21:17:49 +00:00
libbz2
libc Reflect pathnames sorting in collation order. 2016-07-17 13:10:57 +00:00
libc_nonshared
libc++ GCC External: Revert r300886, r300904, r300917, r300918 2016-05-29 06:20:15 +00:00
libcalendar
libcam Fix multiple Coverity Out-of-bounds access false postive issues in CAM 2016-05-24 00:57:11 +00:00
libcasper Don't close fd if it's lower then stderr, otherwise we can close 2016-06-13 00:03:55 +00:00
libclang_rt DIRDEPS_BUILD: Update dependencies 2016-06-14 16:55:05 +00:00
libcom_err
libcompat Fix Coverity CID 978183 Resource leak in rexec(). 2016-05-25 07:26:22 +00:00
libcompiler_rt Make armv6 hard float abi by default. Kill armv6hf. 2016-05-18 06:01:18 +00:00
libcrypt Skein was not meant to be connected to libcrypto 2016-06-01 20:55:25 +00:00
libcuse libcuse: make more use of the howmany() macro when available. 2016-04-26 01:20:16 +00:00
libcxxrt libcxxrt: correct mangled "typeinfo name" symbols in Version.map 2016-06-29 11:48:42 +00:00
libdevctl Add 'devctl delete' that calls device_delete_child(). 2016-04-27 16:33:17 +00:00
libdevdctl DIRDEPS_BUILD: Connect new directories and update dependencies. 2016-06-03 19:25:30 +00:00
libdevinfo MFH 2016-04-04 23:55:32 +00:00
libdevstat
libdpv MFH 2016-03-02 16:14:46 +00:00
libdwarf elftoolchain: Use ${SRCTOP} for the top of the FreeBSD tree 2016-04-21 12:58:29 +00:00
libedit lib: minor spelling fixes in comments. 2016-05-01 19:37:33 +00:00
libefi
libelf elftoolchain: Use ${SRCTOP} for the top of the FreeBSD tree 2016-04-21 12:58:29 +00:00
libelftc Use the in-tree sys/elf_common.h to build libelftc. 2016-06-05 23:05:14 +00:00
libevent
libexecinfo
libexpat
libfetch r169386 (PR 112515) was incomplete: it treated 307 as an error except 2016-05-31 08:27:39 +00:00
libfigpar MFH 2016-03-02 16:14:46 +00:00
libgeom
libgpio Use GPIOTOGGLE to toggle the pin state instead of read, modify and write. 2016-04-19 15:18:31 +00:00
libgssapi lib: minor spelling fixes in comments. 2016-05-01 19:37:33 +00:00
libiconv_modules
libipsec libipsec: use NULL instead of zero for pointers. 2016-04-18 15:08:31 +00:00
libjail
libkiconv lib: minor spelling fixes in comments. 2016-05-01 19:37:33 +00:00
libkvm libkvm: Improve physical address lookup scaling. 2016-07-18 01:55:25 +00:00
libldns
liblzma
libmagic Fix build: explicitly reference the generated magic.h as dependency 2016-06-27 06:41:11 +00:00
libmd Import the skein hashing algorithm, based on the threefish block cipher 2016-05-29 01:15:36 +00:00
libmemstat MFH 2016-02-10 04:20:39 +00:00
libmilter MFH 2016-03-02 16:14:46 +00:00
libmp libmp: Fix trivial buffer overrun 2016-05-12 03:53:20 +00:00
libmt Add the density code for LTO-7 to libmt and the mt(1) man page. 2016-05-20 19:30:52 +00:00
libnandfs
libnetbsd
libnetgraph
libngatm
libnv Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
libopenbsd
libopie
libpam DIRDEPS_BUILD: Update dependencies 2016-06-14 16:55:05 +00:00
libpcap MFH 2016-03-02 16:14:46 +00:00
libpe DIRDEPS_BUILD: Update dependencies. 2016-02-16 02:14:30 +00:00
libpjdlog MFH 2016-03-02 16:14:46 +00:00
libpmc lib: minor spelling fixes in comments. 2016-05-01 19:37:33 +00:00
libproc Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
libprocstat
libradius The NAS-Identifier attribute is a string, not an integer. 2016-05-24 11:44:43 +00:00
librpcsec_gss librpcsec_gss: remove redundant code. 2016-05-11 14:37:33 +00:00
librpcsvc MFH 2016-03-02 16:14:46 +00:00
librt Fix aio system call wrappers in librt. 2016-07-14 23:28:53 +00:00
librtld_db
libsbuf
libsdp lib: minor spelling fixes in comments. 2016-05-01 19:37:33 +00:00
libsm MFH 2016-03-02 16:14:46 +00:00
libsmb
libsmdb MFH 2016-03-02 16:14:46 +00:00
libsmutil MFH 2016-03-02 16:14:46 +00:00
libsqlite3
libstand Fix a bug in the parsing code: always use the len and not 8. 2016-05-20 05:33:26 +00:00
libstdbuf
libstdthreads
libsysdecode MFH 2016-04-04 23:55:32 +00:00
libtacplus
libtelnet
libthr Revert r302194, there are issues with some applications after changing 2016-06-25 20:20:24 +00:00
libthread_db
libucl Import libucl snapshot 20160604 2016-06-04 14:57:25 +00:00
libufs libufs: Simplify generation number calculation. 2016-05-18 19:59:05 +00:00
libugidfw
libulog
libunbound MFH 2016-03-14 18:54:29 +00:00
libusb Resolve issue with libusb C++ header file inclusion. 2016-06-24 10:55:14 +00:00
libusbhid MFH 2016-04-11 15:24:59 +00:00
libutil libutil: minor spelling fixes. 2016-05-18 15:25:45 +00:00
libvgl MFH 2016-04-13 16:19:50 +00:00
libvmmapi lib: minor spelling fixes in comments. 2016-05-01 19:37:33 +00:00
libwrap
libxo Submitted by: phil 2016-05-29 01:43:28 +00:00
liby
libypclnt MFH 2016-04-16 02:32:12 +00:00
libz MFH 2016-04-04 23:55:32 +00:00
msun Fix frexpl() declaration to not include the field name. 2016-06-09 20:49:26 +00:00
ncurses DIRDEPS_BUILD: Run the staged bootstrap-tools version of build-tools. 2016-05-09 22:21:09 +00:00
tests Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
Makefile Separate BLACKLIST vs BLACKLIST_SUPPORT properly 2016-06-07 16:31:03 +00:00
Makefile.inc