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