d3f54e81dd
* User allocates ZFOD region, but does not actually touch the buffer to fault in the pages. * In a loop, user writes this buffer to a network socket, triggering sosend_loan(). * uvm_loan() calls uvm_loanzero() once for each page in the loaned region (since the pages have not yet faulted in). This causes a page to be allocated and zero'd. The result is the kernel spends a lot of time allocating and zero'ing pages. This fixes creates a special object which owns a single zero'd page. This single zero'd page is used to satisfy all loans of non-resident ZFOD mappings. Thanks to Allen Briggs for discovering the problem and for providing an initial patch. |
||
---|---|---|
bin | ||
crypto | ||
dist | ||
distrib | ||
doc | ||
etc | ||
games | ||
gnu | ||
include | ||
lib | ||
libexec | ||
regress | ||
rescue | ||
sbin | ||
share | ||
sys | ||
tools | ||
usr.bin | ||
usr.sbin | ||
build.sh | ||
BUILDING | ||
Makefile | ||
Makefile.inc | ||
UPDATING |