Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jun 2006 20:52:11 +0000 (UTC)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/amd64/amd64 pmap.c src/sys/i386/i386 pmap.c
Message-ID:  <200606202052.k5KKqBCc071633@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
alc         2006-06-20 20:52:11 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      pmap.c 
    sys/i386/i386        pmap.c 
  Log:
  Change get_pv_entry() such that the call to vm_page_alloc() specifies
  VM_ALLOC_NORMAL instead of VM_ALLOC_SYSTEM when try is TRUE.  In other
  words, when get_pv_entry() is permitted to fail, it no longer tries as
  hard to allocate a page.
  
  Change pmap_enter_quick_locked() to fail rather than wait if it is
  unable to allocate a page table page.  This prevents a race between
  pmap_enter_object() and the page daemon.  Specifically, an inactive
  page that is a successor to the page that was given to
  pmap_enter_quick_locked() might become a cache page while
  pmap_enter_quick_locked() waits and later pmap_enter_object() maps
  the cache page violating the invariant that cache pages are never
  mapped.  Similarly, change
  pmap_enter_quick_locked() to call pmap_try_insert_pv_entry() rather
  than pmap_insert_entry().  Generally speaking,
  pmap_enter_quick_locked() is used to create speculative mappings.  So,
  it should not try hard to allocate memory if free memory is scarce.
  
  Add an assertion that the object containing m_start is locked in
  pmap_enter_object().  Remove a similar assertion from
  pmap_enter_quick_locked() because that function no longer accesses the
  containing object.
  
  Remove a stale comment.
  
  Reviewed by: ups@
  
  Revision  Changes    Path
  1.558     +15 -21    src/sys/amd64/amd64/pmap.c
  1.562     +15 -21    src/sys/i386/i386/pmap.c



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