Subject: Re: port-alpha/25599
To: None <port-alpha-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: Jason Thorpe <thorpej@shagadelic.org>
List: netbsd-bugs
Date: 07/21/2005 15:30:02
The following reply was made to PR port-alpha/25599; it has been noted by GNATS.
From: Jason Thorpe <thorpej@shagadelic.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: port-alpha/25599
Date: Thu, 21 Jul 2005 08:29:46 -0700
--Apple-Mail-7--228818181
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
delsp=yes;
format=flowed
The attached patch should address the problem. This is what it does:
1. Disables the lazy allocation of lev1map in pmap_enter(), instead
doing it in pmap_create(), and freeing the lev1map in pmap_destroy
(). This means that pm_lev1map is consistent for the life of the pmap.
2. pmap_extract() is changed to use vtophys() for the kernel pmap.
This avoids locking the kernel pmap (kernel PT pages are never freed).
3. Because of (1), pmap_asn_alloc() no longer needs to operate on a
locked pmap (pm_lev1map will never change over the life of a pmap,
and all other access to the pmap is done in per-CPU fields or with
atomic operations).
4. Because of (3), pmap_activate() no longer needs to lock the pmap
to do its work, thus eliminating the deadlock with sched_lock. This
is safe, because we are guaranteed that the pmap is still alive,
since by definition an LWP that uses it is about to run.
The patch has been posted to port-alpha for testing.
-- thorpej
--Apple-Mail-7--228818181
Content-Transfer-Encoding: 7bit
Content-Type: application/octet-stream;
x-unix-mode=0644;
name="pmap-no-lazy-lev1map-patch.txt.uu"
Content-Disposition: attachment;
filename=pmap-no-lazy-lev1map-patch.txt.uu
begin 755 pmap-no-lazy-lev1map-patch.txt
M26YD97@Z('!M87`N8PH]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F:6QE
M.B`O8W9S<F]O="]S<F,O<WES+V%R8V@O86QP:&$O86QP:&$O<&UA<"YC+'8*
M<F5T<FEE=FEN9R!R979I<VEO;B`Q+C(Q,`ID:69F("UU("UP("UR,2XR,3`@
M<&UA<"YC"BTM+2!P;6%P+F,),2!*=6X@,C`P-2`Q-CHP.3HT-2`M,#`P,`DQ
M+C(Q,`HK*RL@<&UA<"YC"3(Q($IU;"`R,#`U(#`V.C(Q.C4W("TP,#`P"D!`
M("TU,C4L-B`K-3(U+#$W($!`(&EN=`EP;6%P7W!H>7-P86=E7V%D9')E9BAV
M;VED("HI.PH@:6YT"7!M87!?<&AY<W!A9V5?9&5L<F5F*'9O:60@*BD["B`*
M("\J"BL@*B!$969I;F4@4$U!4%].3U],05I97TQ%5C%-05`@:6X@;W)D97(@
M=&\@:&%V92!A(&QE=C%M87`@86QL;V-A=&5D"BL@*B!I;B!P;6%P7V-R96%T
M92@I+"!R871H97(@=&AA;B!W:&5N('1H92!F:7)S="!M87!P:6YG(&ES(&5N
M=&5R960N"BL@*B!4:&ES(&-A=7-E<R!P;6%P<R!T;R!U<V4@86X@97AT<F$@
M<&%G92!O9B!M96UO<GD@:68@;F\@;6%P<&EN9W,**R`J(&%R92!E;G1E<F5D
M(&EN('1H96TL(&)U="!I;B!P<F%C=&EC92!T:&ES(&ES('!R;V)A8FQY(&YO
M="!G;VEN9PHK("H@=&\@8F4@82!P<F]B;&5M+"!A;F0@:70@86QL;W=S('5S
M('1O(&%V;VED(&QO8VMI;F<@<&UA<',@:6X**R`J('!M87!?86-T:79A=&4H
M*2P@=VAI8V@@:6X@='5R;B!A;&QO=W,@=7,@=&\@879O:60@82!D96%D;&]C
M:R!W:71H"BL@*B!S8VAE9%]L;V-K('9I82!C<'5?<W=I=&-H*"DN"BL@*B\*
M*R-D969I;F4)4$U!4%].3U],05I97TQ%5C%-05`**PHK+RH*("`J(%!-05!?
M25-!0U1)5D5[+%]415-4?3H*("`J"B`@*@E#:&5C:R!T;R!S964@:68@82!P
M;6%P(&ES(&%C=&EV92!O;B!T:&4@8W5R<F5N="!P<F]C97-S;W(N"D!`("TQ
M,C`W+#8@*S$R,3@L,3$@0$`@<&UA<%]C<F5A=&4H=F]I9"D*(`E404E,45])
M3E-%4E1?5$%)3"@F<&UA<%]A;&Q?<&UA<',L('!M87`L('!M7VQI<W0I.PH@
M"7-I;7!L95]U;FQO8VLH)G!M87!?86QL7W!M87!S7W-L;V-K*3L*(`HK(VEF
M9&5F(%!-05!?3D]?3$%:65],158Q34%0"BL):2`]('!M87!?;&5V,6UA<%]C
M<F5A=&4H<&UA<"P@8W!U7VYU;6)E<B@I*3L**PE+05-315)4*&D@/3T@,"D[
M"BLC96YD:68**PH@"7)E='5R;B`H<&UA<"D["B!]"B`*0$`@+3$R-#`L,30@
M*S$R-38L,38@0$`@<&UA<%]D97-T<F]Y*'!M87!?="!P;6%P*0H@"51!24Q1
M7U)%34]612@F<&UA<%]A;&Q?<&UA<',L('!M87`L('!M7VQI<W0I.PH@"7-I
M;7!L95]U;FQO8VLH)G!M87!?86QL7W!M87!S7W-L;V-K*3L*(`HM(VEF9&5F
M($1)04=.3U-424,**R-I9F1E9B!034%07TY/7TQ!6EE?3$56,4U!4`HK"7!M
M87!?;&5V,6UA<%]D97-T<F]Y*'!M87`L(&-P=5]N=6UB97(H*2D["BLC96YD
M:68**PH@"2\J"B`)("H@4VEN8V4@=&AE('!M87`@:7,@<W5P<&]S960@=&\@
M8V]N=&%I;B!N;R!V86QI9`HM"2`J(&UA<'!I;F=S(&%T('1H:7,@<&]I;G0L
M('1H:7,@<VAO=6QD(&YE=F5R(&AA<'!E;BX**PD@*B!M87!P:6YG<R!A="!T
M:&ES('!O:6YT+"!W92!S:&]U;&0@86QW87ES('-E90HK"2`J(&ME<FYE;%]L
M978Q;6%P(&AE<F4N"B`)("HO"BT):68@*'!M87`M/G!M7VQE=C%M87`@(3T@
M:V5R;F5L7VQE=C%M87`I"BT)"7!A;FEC*")P;6%P7V1E<W1R;WDZ('!M87`@
M<W1I;&P@8V]N=&%I;G,@=F%L:60@;6%P<&EN9W,B*3L*+2-E;F1I9@HK"4M!
M4U-%4E0H<&UA<"T^<&U?;&5V,6UA<"`]/2!K97)N96Q?;&5V,6UA<"D["B`*
M(`EP;V]L7W!U="@F<&UA<%]P;6%P7W!O;VPL('!M87`I.PH@?0I`0"`M,38X
M-2PV("LQ-S`S+#D@0$`@<&UA<%]E;G1E<BAP;6%P7W0@<&UA<"P@=F%D9')?
M="!V82P@<&%D9`H@"0D)<&%N:6,H(G!M87!?96YT97(Z('5S97(@<&UA<"P@
M:6YV86QI9"!V82`P>"5L>"(L('9A*3L*("-E;F1I9@H@"BLC:69D968@4$U!
M4%].3U],05I97TQ%5C%-05`**PD)2T%34T525"AP;6%P+3YP;5]L978Q;6%P
M("$](&ME<FYE;%]L978Q;6%P*3L**R-E;'-E"B`)"2\J"B`)"2`J($EF('=E
M)W)E('-T:6QL(')E9F5R96YC:6YG('1H92!K97)N96P@:V5R;F5L7VQE=C%M
M87`L"B`)"2`J(&-R96%T92!A(&YE=R!L979E;"`Q('!A9V4@=&%B;&4N("!!
M(')E9F5R96YC92!W:6QL(&)E"D!`("TQ-S$U+#8@*S$W,S8L-R!`0"!P;6%P
M7V5N=&5R*'!M87!?="!P;6%P+"!V861D<E]T('9A+"!P861D"B`)"0D)<&%N
M:6,H(G!M87!?96YT97(Z('5N86)L92!T;R!C<F5A=&4@;&5V,6UA<"(I.PH@
M"0D)?0H@"0E]"BLC96YD:68@+RH@4$U!4%].3U],05I97TQ%5C%-05`@*B\*
M(`H@"0DO*@H@"0D@*B!#:&5C:R!T;R!S964@:68@=&AE(&QE=F5L(#$@4%1%
M(&ES('9A;&ED+"!A;F0*0$`@+3(Q,C@L-B`K,C$U,"PR,B!`0"!P;6%P7V5X
M=')A8W0H<&UA<%]T('!M87`L('9A9&1R7W0@=F$L('!A"B`):68@*'!M87!D
M96)U9R`F(%!$0E]&3TQ,3U<I"B`)"7!R:6YT9B@B<&UA<%]E>'1R86-T*"5P
M+"`E;'@I("T^("(L('!M87`L('9A*3L*("-E;F1I9@HK"BL)+RH**PD@*B!4
M86ME(&$@9F%S=&5R('!A=&@@9F]R('1H92!K97)N96P@<&UA<"X@($%V;VED
M<R!L;V-K:6YG+`HK"2`J(&AA;F1L97,@2S!314<N"BL)("HO"BL):68@*'!M
M87`@/3T@<&UA<%]K97)N96PH*2D@>PHK"0EP82`]('9T;W!H>7,H=F$I.PHK
M"0EI9B`H<&%P("$]($Y53$PI"BL)"0DJ<&%P(#T@<&$["BLC:69D968@1$5"
M54<**PD):68@*'!M87!D96)U9R`F(%!$0E]&3TQ,3U<I"BL)"0EP<FEN=&8H
M(C!X)6QX("AK97)N96P@=G1O<&AY<RE<;B(L('!A*3L**R-E;F1I9@HK"0ER
M971U<FX@*'!A("$](#`I.PDO*B!86%@@*B\**PE]"BL*(`E034%07TQ/0TLH
M<&UA<"D["B`*(`EL,7!T92`]('!M87!?;#%P=&4H<&UA<"P@=F$I.PI`0"`M
M,C(S."PR,2`K,C(W-BPR,2!`0"!P;6%P7V%C=&EV871E*'-T<G5C="!L=W`@
M*FPI"B`)"7!R:6YT9B@B<&UA<%]A8W1I=F%T92@E<"E<;B(L(&PI.PH@(V5N
M9&EF"B`**R-I9FYD968@4$U!4%].3U],05I97TQ%5C%-05`*(`E034%07TQ/
M0TLH<&UA<"D["BLC96YD:68*(`HM"2\J"BT)("H@36%R:R!T:&4@<&UA<"!I
M;B!U<V4@8GD@=&AI<R!P<F]C97-S;W(N"BT)("HO"BL)+RH@36%R:R!T:&4@
M<&UA<"!I;B!U<V4@8GD@=&AI<R!P<F]C97-S;W(N("HO"B`)871O;6EC7W-E
M=&)I='-?=6QO;F<H)G!M87`M/G!M7V-P=7,L("@Q54P@/#P@8W!U7VED*2D[
M"B`*+0DO*@HM"2`J($%L;&]C871E(&%N($%33BX*+0D@*B\**PDO*B!!;&QO
M8V%T92!A;B!!4TXN("HO"B`)<&UA<%]A<VY?86QL;V,H<&UA<"P@8W!U7VED
M*3L*(`H@"5!-05!?04-4259!5$4H<&UA<"P@;"P@8W!U7VED*3L*(`HK(VEF
M;F1E9B!034%07TY/7TQ!6EE?3$56,4U!4`H@"5!-05!?54Y,3T-+*'!M87`I
M.PHK(V5N9&EF"B!]"B`*("\J"D!`("TS,C4T+#$R("LS,CDR+#$X($!`('!M
M87!?;&5V,6UA<%]C<F5A=&4H<&UA<%]T('!M87`L(&QO;F<@8W`*(`D)<&%N
M:6,H(G!M87!?;&5V,6UA<%]C<F5A=&4Z('!M87`@=7-E<R!N;VXM<F5S97)V
M960@05-.(BD["B`C96YD:68*(`HK(VEF9&5F(%!-05!?3D]?3$%:65],158Q
M34%0"BL)+RH@0F5I;F<@8V%L;&5D(&9R;VT@<&UA<%]C<F5A=&4H*2!I;B!T
M:&ES(&-A<V4[('=E(&-A;B!S;&5E<"X@*B\**PEL,7!T(#T@<&]O;%]C86-H
M95]G970H)G!M87!?;#%P=%]C86-H92P@4%)?5T%)5$]+*3L**R-E;'-E"B`)
M;#%P="`]('!O;VQ?8V%C:&5?9V5T*"9P;6%P7VPQ<'1?8V%C:&4L(%!27TY/
M5T%)5"D["BLC96YD:68*(`EI9B`H;#%P="`]/2!.54Q,*0H@"0ER971U<FX@
M*$5.3TU%32D["B`*(`EP;6%P+3YP;5]L978Q;6%P(#T@;#%P=#L*(`HK(VEF
M;F1E9B!034%07TY/7TQ!6EE?3$56,4U!4`DO*B!G=6%R86YT965D(&YO="!T
M;R!B92!A8W1I=F4@*B\*(`DO*@H@"2`J(%1H92!P86=E('1A8FQE(&)A<V4@
M:&%S(&-H86YG960[(&EF('1H92!P;6%P('=A<R!A8W1I=F4L"B`)("H@<F5A
M8W1I=F%T92!I="X*0$`@+3,R-CDL-B`K,S,Q,RPW($!`('!M87!?;&5V,6UA
M<%]C<F5A=&4H<&UA<%]T('!M87`L(&QO;F<@8W`*(`D)4$U!4%]!0U1)5D%4
M12AP;6%P+"!C=7)L=W`L(&-P=5]I9"D["B`)?0H@"5!-05!?3$56,4U!4%]3
M2$]/5$1/5TXH<&UA<"P@8W!U7VED*3L**R-E;F1I9B`O*B`A(%!-05!?3D]?
M3$%:65],158Q34%0("HO"B`)<F5T=7)N("@P*3L*('T*(`I`0"`M,S(Y-"PV
M("LS,S,Y+#<@0$`@<&UA<%]L978Q;6%P7V1E<W1R;WDH<&UA<%]T('!M87`L
M(&QO;F<@8PH@"2`J+PH@"7!M87`M/G!M7VQE=C%M87`@/2!K97)N96Q?;&5V
M,6UA<#L*(`HK(VEF;F1E9B!034%07TY/7TQ!6EE?3$56,4U!4`DO*B!P;6%P
M(&ES(&)E:6YG(&1E<W1R;WEE9"`J+PH@"2\J"B`)("H@5&AE('!A9V4@=&%B
M;&4@8F%S92!H87,@8VAA;F=E9#L@:68@=&AE('!M87`@=V%S(&%C=&EV92P*
M(`D@*B!R96%C=&EV871E(&ET+B`@3F]T92!T:&%T(&%L;&]C871I;VX@;V8@
M82!N97<@05-.(&ES"D!`("TS,S$V+#8@*S,S-C(L-R!`0"!P;6%P7VQE=C%M
M87!?9&5S=')O>2AP;6%P7W0@<&UA<"P@;&]N9R!C"B`):68@*%!-05!?25-!
M0U1)5D4H<&UA<"P@8W!U7VED*2D*(`D)4$U!4%]!0U1)5D%412AP;6%P+"!C
M=7)L=W`L(&-P=5]I9"D["B`)4$U!4%],158Q34%07U-(3T]41$]73BAP;6%P
M+"!C<'5?:60I.PHK(V5N9&EF("\J("$@4$U!4%].3U],05I97TQ%5C%-05`@
M*B\*(`H@"2\J"B`)("H@1G)E92!T:&4@;VQD(&QE=F5L(#$@<&%G92!T86)L
M92!P86=E+@I`0"`M,S4U-"PQ,2`K,S8P,2PQ,R!`0"!P;6%P7VPQ<'1?9&5L
M<F5F*'!M87!?="!P;6%P+"!P=%]E;G1R>5]T"B`C96YD:68*(`H@"6EF("AP
M;6%P7W!H>7-P86=E7V1E;')E9BAL,7!T92D@/3T@,"D@>PHK(VEF;F1E9B!0
M34%07TY/7TQ!6EE?3$56,4U!4`H@"0DO*@H@"0D@*B!.;R!M;W)E(&QE=F5L
M(#(@=&%B;&5S(&QE9G0L(&=O(&)A8VL@=&\@=&AE(&=L;V)A;`H@"0D@*B!K
M97)N96Q?;&5V,6UA<"X*(`D)("HO"B`)"7!M87!?;&5V,6UA<%]D97-T<F]Y
M*'!M87`L(&-P=5]I9"D["BLC96YD:68@+RH@(2!034%07TY/7TQ!6EE?3$56
M,4U!4"`J+PH@"7T*('T*(`I`0"`M,S4Y,"PV("LS-C,Y+#$S($!`('!M87!?
M87-N7V%L;&]C*'!M87!?="!P;6%P+"!L;VYG(&-P=5]I9"D*(`D@*B!K97)N
M96P@;6%P<&EN9W,@97AI<W0@:6X@=&AA="!M87`L(&%N9"!A;&P@:V5R;F5L
M(&UA<'!I;F=S"B`)("H@:&%V92!01U]!4TT@<V5T+B`@268@=&AE('!M87`@
M979E;G1U86QL>2!G971S(&ET<R!O=VX*(`D@*B!L978Q;6%P+"!A;B!!4TX@
M=VEL;"!B92!A;&QO8V%T960@870@=&AA="!T:6UE+@HK"2`J"BL)("H@(VEF
M9&5F(%!-05!?3D]?3$%:65],158Q34%0"BL)("H@3VYL>2!T:&4@:V5R;F5L
M('!M87`@=VEL;"!R969E<F5N8V4@:V5R;F5L7VQE=C%M87`N("!$;R!T:&4*
M*PD@*B!S86UE(&]L9"!F:7AU<',L(&)U="!N;W1E('1H870@=V4@;F\@;&]N
M9V5R(&YE960@=&AE('!M87`**PD@*B!T;R!B92!L;V-K960@:68@=V4G<F4@
M:6X@=&AI<R!M;V1E+"!S:6YC92!P;5]L978Q;6%P('=I;&P**PD@*B!N979E
M<B!C:&%N9V4N"BL)("H@(V5N9&EF"B`)("HO"B`):68@*'!M87`M/G!M7VQE
M=C%M87`@/3T@:V5R;F5L7VQE=C%M87`I('L*("-I9F1E9B!$14)51PI`0"`M
M,S8Q,"PQ,2`K,S8V-BPW($!`('!M87!?87-N7V%L;&]C*'!M87!?="!P;6%P
M+"!L;VYG(&-P=5]I9"D*(`D)("HO"B`)"7!M82T^<&UA7V%S;B`](%!-05!?
M05-.7U)%4T525D5$.PH@(V5L<V4*+2-I9F1E9B!$24%'3D]35$E#"BT)"6EF
M("AP;6$M/G!M85]A<VX@(3T@4$U!4%]!4TY?4D5315)6140I"BT)"0EP86YI
M8R@B<&UA<%]A<VY?86QL;V,Z(&ME<FYE;%]L978Q;6%P('=I=&AO=70@(@HM
M"0D)("`@(")034%07T%33E]215-%4E9%1"(I.PHM(V5N9&EF"BL)"4M!4U-%
M4E0H<&UA+3YP;6%?87-N(#T](%!-05!?05-.7U)%4T525D5$*3L*("-E;F1I
F9B`O*B!-54Q425!23T-%4U-/4B`J+PH@"0ER971U<FX["B`)?0H`
`
end
--Apple-Mail-7--228818181--