Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Aug 2003 11:01:19 -0700 (PDT)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern sys_process.c
Message-ID:  <200308091801.h79I1JHC036853@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
alc         2003/08/09 11:01:19 PDT

  FreeBSD src repository

  Modified files:
    sys/kern             sys_process.c 
  Log:
  Background: When proc_rwmem() wired and mapped a page, it also added
  a reference to the containing object.  The purpose of the reference
  being to prevent the destruction of the object and an attempt to free
  the wired page.  (Wired pages can't be freed.)  Unfortunately, this
  approach does not work.  Some operations, like fork(2) that call
  vm_object_split(), can move the wired page to a difference object,
  thereby making the reference pointless and opening the possibility
  of the wired page being freed.
  
  A solution is to use vm_page_hold() in place of vm_page_wire().  Held
  pages can be freed.  They are moved to a special hold queue until the
  hold is released.
  
  Submitted by:   tegge
  
  Revision  Changes    Path
  1.112     +5 -30     src/sys/kern/sys_process.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200308091801.h79I1JHC036853>