From owner-freebsd-bugs Tue May 16 10:30: 8 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id F31D337B5FD for ; Tue, 16 May 2000 10:30:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id KAA21911; Tue, 16 May 2000 10:30:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Tue, 16 May 2000 10:30:02 -0700 (PDT) Message-Id: <200005161730.KAA21911@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Tim Vanderhoek Subject: Re: kern/12697: Out of swap handling [PATCH] Reply-To: Tim Vanderhoek Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/12697; it has been noted by GNATS. From: Tim Vanderhoek To: freebsd-gnats-submit@FreeBSD.org, peter@holm.cc Cc: vanderh@ecf.toronto.edu Subject: Re: kern/12697: Out of swap handling [PATCH] Date: Tue, 16 May 2000 13:29:02 -0400 (EDT) > Problem Report kern/12697 > > Out of swap handling [PATCH] [...] >I have tested out of swap handling in current. The situation is that >the system just lockes up, "looping" in vm_pageout_scan. > >I have experimented with some modifications to vm_pageout.c that seems >to improve the chances for a recovery drastically. >All tests were done on my 128Mb RAM / 256 Mb swap box. Can you submit a plaintext patch and propose your changes to freebsd-arch@FreeBSD.org. You will need to write a message outlining how these changes will improve out-of-swap handling for out-of-swap due to different typical reasons in different scenarios (I'm thinking of cases where one or two new processes have just runaway, but a bigger process may be at constant state and more important, or cases where the shear number of processes has caused the problem). You should also give some information about what testing you have done. You may wish to keep freebsd-gnats-submit@FreeBSD.org in the Cc: with a subject of "Re: kern12697 ...". Thanks, >The changes consists of: >* Killing all running user processes when less than 1024 pages >swap left. >* Sleeping after each kill to allow the user process to run. >* Pausing the vmdaemon when in kill mode. > >I have tried different strategies for when to stop killing but only this >one seems to guaranty recovery. > > > Fix > >begin 644 patch >M*BHJ('-YM,3DY.0HM+2T@M.C,Y(#$Y.3D**BHJ*BHJ*BHJ*BHJ*BHJ"BHJ*B`Q-30L,34Y("HJ*BH*+2TM >M(#$U-"PQ-C(@+2TM+0H@('-T871I8R!I;G0@=FU?M960],#L*("`C96YD:68*("`**R!S=&%T:6,@:6YT(&MI;&Q?;6]D92`](#`[ >M"BL@M0U1,7TE.5"A?=FTL(%9-7U!!1T5/551?04Q'3U))5$A-+"!P86=E;W5T7V%L >M9V]R:71H;2P*("`)0U1,1DQ!1U]25RP@)G9M7W!A9V5O=71?86QG;W)I=&AM >M7VQR=2P@,"P@(DQ252!P86=E(&UG;70B*3L*("`**BHJ*BHJ*BHJ*BHJ*BHJ >M"BHJ*B`R,#0L,C`Y("HJ*BH*+2TM(#(P-RPR,3,@+2TM+0H@("-E;F1I9@H@ >M('-T871I8R!V;VED('9M7W!A9V5O=71?<&%G95]S=&%TM*R`*("`O*@H@("`J('9M7W!A9V5O=71?8VQE86XZ"B`@("H**BHJ*BHJ*BHJ >M*BHJ*BHJ"BHJ*B`Q,3(V+#$Q-S4@*BHJ*@H@(`E]"B`@"B`@"2\J"B$@"2`J >M(&UA:V4@M2!A;F0*("`)("H@M=&AE(&)I9V=EM:7IE(#T](#`@?'P@M=E]FM95]M:6XI*2!["B$@"0EB:6=PF4@/2`P >M.PHA(`D)9F]R("AP(#T@86QL<')O8RYL:%]F:7)S=#L@<"`A/2`P.R!P(#T@ >M<"T^<%]L:7-T+FQE7VYE>'0I('L*(2`)"0DO*@HA(`D)"2`J(&EF('1H:7,@ >M:7,@82!S>7-T96T@<')O8V5SM("@H<"T^<%]F;&%G("8@4%]365-414TI('Q\("AP+3YP7VQO8VL@/B`P*2!\ >M?`HA(`D)"2`@("`H<"T^<%]P:60@/3T@,2D@?'P*(2`)"0D@("`@*"AP+3YP >M7W!I9"`\(#0X*2`F)B`H=FU?PHA(`D)"0EC >M;VYT:6YU93L*(2`)"0E]"B$@"0D)+RH*(2`)"0D@*B!I9B!T:&4@<')O8V5S >MM)W0@=&]U8V@@:70N"B$@"0D)("HO"B$@"0D):68@*'`M/G!?M4E5.("8F('`M/G!?M"B`@"0D)?0HA(`D)"2\J"B$@"0D)("H@9V5T('1H92!PF4* >M(2`)"0D@*B\*(2`)"0ES:7IE(#T@=FUS<&%C95]R97-I9&5N=%]C;W5N="AP >M+3YP7W9MM8V5SM96UE;6)EF4I >M('L*(2`)"0D)8FEG<')O8R`]('`["B$@"0D)"6)I9W-I>F4@/2!S:7IE.PH@ >M(`D)"7T*(2`)"7T*(2`)"6EF("AB:6=PM:6QL<')O8RAB:6=PM:6=PM4%))3U]-24X["B$@"0D)2AB:6=PM86ME=7`H)F-N="YV7V9R965?8V]U;G0I.PHA(`D)?0HA(`E]"B`@"7)E='5R >M;B!F;W)C95]W86ME=7`["B`@?0H@(`HM+2T@,3$S,"PQ,3DV("TM+2T*("`) >M?0H@(`H@(`DO*@HA(`D@*B!M86ME('-UMM:VEL;"!T:&4@8FEG9V5S="!PM4U=!4%!)3D<*(2`):68@*&MI;&Q?;6]D92D*(2`)"6MI;&Q?;6]D92`]("@H >M8VYT+G9?9G)E95]C;W5N="`K(&-N="YV7V-A8VAE7V-O=6YT*2`\"B$@"0D) >M"3,J8VYT+G9?9G)E95]M:6XI.PHA(`EE;'-E"B$@"0EK:6QL7VUO9&4@/2`H >M*&-N="YV7V9R965?8V]U;G0@*R!C;G0N=E]C86-H95]C;W5N="D@/`HA(`D) >M"0EC;G0N=E]FM(2`)"6MI;&Q?;6]D92`]("AV;5]S=V%P7W-I>F4@/"`S,#M90HA(`D):VEL;%]M;V1E(#T@*'9M7W-W87!?M;F1I9@HA(`D)"B$@"6EF("AK:6QL7VUO9&4I('L@+RH@2VEL;"!A;&P@M;FEN9R!UM"0D)8FEG<')O8R`]($Y53$P["B$@"0D)8FEGM("AP(#T@86QL<')O8RYL:%]F:7)S=#L@<"`A/2`P.R!P(#T@<"T^<%]L:7-T >M+FQE7VYE>'0I('L*(2`)"0D)+RH*(2`)"0D)("H@:68@=&AIMM/G!?9FQA9R`F(%!?4UE35$5-*2!\?"`H<"T^<%]L;V-K(#X@,"D@?'P*(2`) >M"0D)("`@("AP+3YP7W!I9"`]/2`Q*2!\?`HA(`D)"0D@("`@*"AP+3YP7W!I >M9"`\(#0X*2`F)B`H=FU?PHA(`D)"0D)8V]N >M=&EN=64["B$@"0D)"7T*(2`)"0D)+RH*(2`)"0D)("H@:68@=&AE('!R;V-E >M7!E('-T871E+`HA(`D)"0D@*B!D >M;VXG="!T;W5C:"!I="X*(2`)"0D)("HO"B$@"0D)"6EF("AP+3YP7W-T870@ >M(3T@4U)53BD@8V]N=&EN=64["B$@"0D)"6EF("AP+3YP7W-I9VQIM4TE'2TE,3"!\(%!?5T58250I*2!C;VYT:6YU93L*(2`)"0D):68@*'`M/G!? >M8W)E9"T^<%]R=6ED(#P@,BD@8V]N=&EN=64["B$@"0D)"6EF("AP+3YP7W!I >M9"`]/2!L87-T7VMI;&QE9%]P:60I(&-O;G1I;G5E.PHA(`D)"0DO*@HA(`D) >M"0D@*B!G970@=&AE('!R;V-EM92`]('9MM"0D)+RH*(2`)"0D)("H@:68@=&AE('1H:7,@<')O8V5SM=&AA;B!T:&4@8FEG9V5S="!O;F4*(2`)"0D)("H@M"0D)"2`J+PHA(`D)"0EI9B`HF4I('L*(2`)"0D)"6)I >M9W!R;V,@/2!P.PHA(`D)"0D)8FEGF4["B$@"0D)"7T*("`) >M"0E]"B$@"0D):68@*&)I9W!R;V,@(3T@3E5,3"D@>PHA(`D)"0EK:6QL<')O >M8RAB:6=PM:6QL961?<&ED(#T@8FEG<')O8RT^<%]P:60["B$@"0D)"7,@/2!S<&QV;2@I >M.PHA(`D)"0ETM(BP@:'HO,S`I.PHA(`D)"0ES<&QX*',I.PH@(`D)"7T*(2`)"7T@=VAI;&4@ >M*&)I9W!R;V,I.PHA(`E]("\J(&MI;&P@;6]D92`J+PHA(`EW86ME=7`H)F-N >M="YV7V9R965?8V]U;G0I.PH@(`ER971UM("`**BHJ*BHJ*BHJ*BHJ*BHJ"BHJ*B`Q-#`T+#$T,3$@*BHJ*@HM+2T@,30R >M-2PQ-#,Y("TM+2T*("!V;5]D865M;VXH*0H@('L*("`)M*G`["BL@"6EN="!S.PH@(`H@(`EW:&EL92`H5%)512D@>PHK(`D):68@*&MI >M;&Q?;6]D92D@>PHK("`@("`@("`@("`@("`@("`@("`@("`@("\J($=I=F4@ >M:VEL;&5D('5S97(@<')O8W,@82!C:&%N8V4@=&\@9&EE("HO"BL@"0D)M('-P;'9M*"D["BL@"0D)='-L965P*"9V;5]P86=EM(G!S;&5E<"(L(&AZ*3L**R`)"0ES<&QX*',I.PHK(`D)?0H@(`D)='-L965P >M*"9V;5]D865M;VY?;F5E9&5D+"!04$%54T4L(")PM"6EF("AV;5]P86=E;W5T7W)E<5]S=V%P;W5T*2!["B`@"0D)MM7W!A9V5R+F-^"51U92!*=6X@,CD@,C$Z-#4Z,S$@,3DY.0HM+2T@M+W-W87!?<&%G97(N8PE&M*BHJ*BHJ*BHJ"BHJ*B`R,30L,C(P("HJ*BH*+2TM(#(Q-"PR,C(@+2TM+0H@ >M('L*("`):68@*'9M7W-W87!?M9B`HM4T=.3U-424,*("`)"0EPM('-P86-E7&XB*3L**R`C96YD:68*("`)"0ES=V%P7W!A9V5R7V%L;6]S=%]F >M=6QL(#T@,3L*("`)"7T*("`)?2!E;'-E('L**BHJ*BHJ*BHJ*BHJ*BHJ"BHJ >M*B`T-S`L-#M:R`](&)L:7-T7V%L;&]C*'-W87!B;&ES="P@;G!A9V5S*2D@/3T@4U=!4$), >M2U].3TY%*2!["B`@"0EI9B`HM:69D968@1$E!1TY/4U1)0PH@(`D)"7!R:6YT9B@BM=V%PM&("`)"7T* >` >end > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message