From owner-doc-jp@jp.freebsd.org  Mon Feb 22 01:36:43 1999
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) id BAA11904;
	Mon, 22 Feb 1999 01:36:43 +0900 (JST)
	(envelope-from owner-doc-jp@jp.FreeBSD.org)
Received: from mail.geocities.co.jp (mail.geocities.co.jp [210.153.89.137])
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) with ESMTP id BAA11888
	for <doc-jp@jp.freebsd.org>; Mon, 22 Feb 1999 01:36:41 +0900 (JST)
	(envelope-from hrs@geocities.co.jp)
Received: from geocities.co.jp (sutnmax1-ppp12.ed.noda.sut.ac.jp [133.31.173.22]) by mail.geocities.co.jp (1.3G-GeocitiesJ-1.3) with ESMTP id BAA00351 for <doc-jp@jp.freebsd.org>; Mon, 22 Feb 1999 01:36:39 +0900 (JST)
Message-ID: <36D0343A.2A4D1F53@geocities.co.jp>
Date: Mon, 22 Feb 1999 01:28:42 +0900
From: Hiroki Sato <hrs@geocities.co.jp>
Organization: Science University of Tokyo, JAPAN
X-Mailer: Mozilla 4.5 [en] (Win98; I)
X-Accept-Language: ja,en
MIME-Version: 1.0
To: FreeBSD-doc-jp <doc-jp@jp.freebsd.org>
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Reply-To: doc-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+981115
X-Sequence: doc-jp 6035
Subject: [doc-jp 6035] VM page coloring
Errors-To: owner-doc-jp@jp.freebsd.org
Sender: owner-doc-jp@jp.freebsd.org
X-Originator: hrs@geocities.co.jp

$B:4F#!wEl5~M}2JBg3X$G$9(B.
$B$"$^$j(B doc-jp $B$C$]$/$J$$FbMF$G$9$,(B...

In Message-Id: <199902161348.WAA05136@toto.noc.titech.ac.jp>
IIJIMA Akihiro wrote:
> $B$H$+$$$&<jK!$NOC$G$O(B $B$J$$$N$+$J!#(B

 /usr/src/sys/vm/* $B$r$6$C$HDI$C$F$_$^$7$?(B. $B;29M$K$7$?$N$O(B
 $B8=:_;HMQCf$N(B 2.2.7R $B$J$N$G(B, $B:#$G$O2~NI$5$l$F$$$kItJ,$b$"$k$G$7$g$&(B.

 $B%Z!<%8%+%i!<$O(B, $BNc$($P(B 64KB L2 cache $B$G(B 16 $B?'(B(4KB $BC10L(B)$B$K(B
 $B?'J,$1$5$l$F$$$F(B, vm_page.h $B$N(B #define $B$GDj5A$5$l$?Dj?t(B---

: #define PQ_NONE 0
: #define PQ_FREE 1
: #define PQ_ZERO (1 + PQ_L2_SIZE)
: #define PQ_INACTIVE (1 + 2*PQ_L2_SIZE)
: #define PQ_ACTIVE (2 + 2*PQ_L2_SIZE)
: #define PQ_CACHE (3 + 2*PQ_L2_SIZE)
: #define PQ_COUNT (3 + 3*PQ_L2_SIZE)
:
: #define PQ_L2_MASK (PQ_L2_SIZE - 1)

 ---$B$K$h$C$F(B, 

:   m->queue = PQ_FREE + m->pc
                           ^
                           +--- $B$3$l$,%Z!<%8%+%i!<(B.
                                $BDj5A$O(B ($BJ*M}%"%I%l%9(B>>PAGE_SHIFT)&PQ_L2_MASK

 $B$H$$$&%7!<%1%s%9$G;H$o$l$^$9(B.
 m->queue $B$,(B, $B>e5-Dj?t$H0lCW$7$?;~$K$=$N>uBV$XA+0\$7$^$9!#(BPAGE_SHIFT $B$O(B,
 ($B%Z!<%8%5%$%:(B) = 2**(PAGE_SHIFT) $B$H$$$&Dj?t(B, PQ_L2_SIZE = ($B?'?t(B) $B$G$9(B.

 $B$D$^$j(B, $BJ*M}%"%I%l%9$r%Z!<%8MFNL$G3d$C$F(B,
 $B$$$o$f$k%Z!<%8%$%s%G%/%9HV9f$K$7(B, PQ_L2_MASK $B$G%^%9%/$r$+$1$k$3$H$G(B,
 L2 cache $BFb$N%9%m%C%H(B($BC10LNN0h(B)$B$K%^%C%T%s%0$9$k:n6H$r(B
 $B$7$F$$$k$3$H$K$J$j$^$9(B. $B$3$l$r8+$k8B$j(B, direct mapping $B$r(B
 $B$7$F$$$k$h$&$G$9(B.

 $B$3$N(B m->pc(L2 cache $B$N%9%m%C%HHV9f(B) $B$r(B PQ_FREE $B$KB-$7$F(B, 
 $B>uBV$,A+0\$9$k$+$I$&$+$r?GCG$7$^$9(B.
 $B%+%i!<%j%s%0$rL58z$K$9$k$H!"(BPQ_L2_SIZE=1 $B$H$J$j(B,
 m->queue $B$O>o$K(B PQ_FREE $B$H$J$j$^$9(B.
 $B7k6I(B, $B$3$N%Z!<%8A+0\=hM}$O(B, wired($B$D$^$j;H$C$F$k$d$D(B)$B>uBV$N%Z!<%8$r(B
 $B$J$k$Y$/>/$J$/$9$k$H$$$&86B'$K$J$C$F$$$k85!9$N(B VM $B$KBP$7$F(B,  
 $B!V(Bcache $B$KF~$k2DG=@-$N9b$$%Z!<%8!W$O(B, $B$9$0$K(B free $B$7$J$$$G(B
 $B;D$7$F$*$3$&$H$7$^$9(B.

 # free $B$X;}$C$F9T$3$&$H$9$k%Z!<%8$NG[J,K!$O(B,
 # $B!V(BUNIX $B%+!<%M%k$NKbK!!W(B(SysV $B$G$9$,(B) $B$K>\$7$/:\$C$F$$$k$_$?$$(B
 # $B$G$7$?(B. $BN)$AFI$_$G$5$i$C$HD/$a$?$@$1$G$9$,(B, $B%(%$%8%s%0=hM}(B
 # $B0J30$O$[$\F10l$G$9(B.
 ## $B$"$C$A$K%Z!<%8%s%0$,F3F~$5$l$?$N$O(B BSD $B$h$j8e$G$9$h$M(B? $B3N$+(B...

 VM $B8GM-$N35G0$H$$$&$h$j(B, $B:GE,2=$N$?$a$N(B ad hoc $B$J(B hack $B$NN`$@$H(B
 $B;W$$$^$9(B. "queue" $B$H$+=q$$$F$"$k$/$;$K(B, $B$3$N<jK!$rF3F~$9$k$H(B
 $B%-%e!<$N=PF~$j$O(B FIFO $B$K$J$j$^$;$s(B.

 $B$3$N$*$+$2$G!"(Bfree $B$H(B cache($B$3$l$O(B VM $B%7%9%F%`$,;}$C$F$$$k(B cache $B$N$3$H(B)$B$N(B
 $B%-%e!<$O(B, $B=hM}$,62$m$7$/J#;($G$9(B. multiple queue $B$r!VB?=E%-%e!<!W$C$F(B
 $BLu$7$F$$$^$9$,(B, $B%-%e!<$H8F$s$GNI$$$b$N$d$i(B. $B>/$J$/$H$bB?=E$G$O(B
 $B$J$$$G$9(B.

 # $B;d$O>pJs$,@lLg$G$O$J$$$N$G@53N$JDj5A$K<+?.$,$J$$$N$G$9$,(B,
 # "queue" $B$C$FC<E@$NMWAG0J30$r%"%/%;%9$9$k;H$$J}$,$"$C$?$j$7$^$9(B?
 
 -hackers $B$r8!:w$7$?$H$3$m(B, <199711210423.XAA01323@dyson.iquest.net> $B$K(B
 John Dyson $B;a$N%3%a%s%H$,$"$j$^$7$?(B.

 direct mapping $BJ}<0$N(B cache $B$KBP$9$k(B page placement algorithm $B$H$7$F(B,
 "page coloring" $B$H$$$&$N$,(B($B$=$N6Z$NO@J8$G(B)$B$"$C$F(B, FreeBSD $B$N<BAu$O(B

> The algorithm is my invention, so there are no explicit references.

 $B$@$=$&$G$9(B. 

 x86 $B7O$N%O!<%I%&%'%"$O(B cache $BJ}<0$,(B n-way set associative $B$J$N$G(B,
 $B$=$NJU$GB-$r0z$CD%$k$3$H$N$J$$$h$&$K:Y9)$,$7$F$"$k$_$?$$$G$9$,(B,
 $B>\$7$/$ONI$/J,$+$j$^$;$s(B :-p

 $BHs(B Intel $B$N8_49%A%C%W$GF0$+$7$?$j!"(BCPU $B$N(B cache $B%5%$%:$,(B
 $B$A$c$s$H<hF@$G$-$J$$$H5U$KCY$/$J$kMW0x$K$J$jF@$k$H;W$$$^$9(B. 

 # PQ_NOOPT $B$r;XDj$7$FB.EY$rHf3S$7$F$_$k$N$bLLGr$$$+$bCN$l$^$;$s$M(B.

 ------------------------------------------------------------------------
  written by Hiroki Sato/HRS   |                email:hrs@geocities.co.jp
  Science University of Tokyo  |
  Faculty of Science and Technology, Department of Electrical Engineering
 ------------------------------------------------------------------------

