Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Mar 2010 04:24:19 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/ia64/ia64 pmap.c
Message-ID:  <201003220424.o2M4OdC2046125@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help

marcel      2010-03-22 04:24:19 UTC

  FreeBSD src repository

  Modified files:
    sys/ia64/ia64        pmap.c 
  Log:
  SVN rev 205435 on 2010-03-22 04:24:19Z by marcel
  
  Drop the pmap argument to pmap_invalidate_page(). It's not used other
  than in a KASSERT. The KASSERT is broken in that it's done outside the
  critical section and as such isn't protected against CPU migration.
  Improve pmap_invalidate_page() as follows:
  o   calculate vhpt_ofs inside the critical region for exactly the same
      reason.
  o   calculate the tag outside the FOREACH loop, as it's loop-invariant.
      This is more efficient.
  o   Replace the test and set with an atomic cmpset operation because we
      are changing other CPU's VHPT tables and this avoids invalidating
      after the entry got modified. Not necessarily a problem, but better
      safe than sorry.
  
  Revision  Changes    Path
  1.212     +17 -19    src/sys/ia64/ia64/pmap.c



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