cvs commit: src/sys/kern kern_subr.c
Alan Cox
alc at FreeBSD.org
Sun Dec 12 22:24:15 PST 2004
alc 2004-12-13 06:24:14 UTC
FreeBSD src repository
Modified files:
sys/kern kern_subr.c
Log:
Correct the handling of two unusual cases by the zero-copy receive path,
specifically, vm_pgmoveco():
1. If vm_pgmoveco() sleeps on a busy page, it must redo the look up
because the page may have been freed.
2. If the receive buffer is copy-on-write due to, for example, a fork,
then although the first vm object in the shadow chain may not contain
a page there may still be one from a backing object that is mapped.
Thus, a pmap_remove() is required for the new page rather than the
backing object's page to been seen by the application.
Also, add some comments to vm_pgmoveco() and update some assertions.
Tested by: ken@
Revision Changes Path
1.95 +26 -16 src/sys/kern/kern_subr.c
More information about the cvs-all
mailing list