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>
