summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib/system.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2004-06-07 23:51:20 +0000
committerpeter <peter@FreeBSD.org>2004-06-07 23:51:20 +0000
commit33636f4f34b2e849337b44239c4b5322deb3294a (patch)
tree8140801e52c2e9c6ca292c619e8c6c184ce06fce /lib/libc/stdlib/system.c
parent101e49d30a1e4cbd79816722ec7edb2b1ab9288e (diff)
downloadFreeBSD-src-33636f4f34b2e849337b44239c4b5322deb3294a.zip
FreeBSD-src-33636f4f34b2e849337b44239c4b5322deb3294a.tar.gz
Fix a serious problem that manifested during swap, and a few other times.
pmap_remove() would be called with a huge range and we'd stride across it in only 2MB chunks. This would manifest as massive cpu time and a largely unresponsive system during hard swap. Instead, check the higher page directories which means we can run pmap_remove() in just a few hundred loop iterations instead of millions since we can process address space in chunks of 512GB and 1GB as well as 2MB. Eternal thanks to: tmm
Diffstat (limited to 'lib/libc/stdlib/system.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud