sendfile_swapin() loop works this way: - Find first invalid page in the request. - Do vm_pager_has_page() and get count of pages, that can be taken in single I/O. - Trim valid pages from the end of the request. - Cycle through the request and substitute to bogus_page all valid pages that are in the middle of the request. - After I/O launched (pager copies array of pages into buf(9), it is important to restore proper page pointers with help vm_page_lookup(). Count bogus pages used and report them in sendfile stats. |
||
---|---|---|
.. | ||
bpf.c | ||
flowtable.c | ||
if.c | ||
inet6.c | ||
inet.c | ||
ipsec.c | ||
main.c | ||
Makefile | ||
Makefile.depend | ||
mbuf.c | ||
mroute6.c | ||
mroute.c | ||
netgraph.c | ||
netisr.c | ||
netstat.1 | ||
netstat.h | ||
nlist_symbols | ||
pfkey.c | ||
route.c | ||
sctp.c | ||
unix.c |