From 2e45f34b777b1be963c7b1df4b8e4fbb7f06e038 Mon Sep 17 00:00:00 2001 From: Thomas Kuschel Date: Sat, 2 Dec 2023 22:31:47 +0100 Subject: [PATCH] UPD Group scheduling for SCHED_RR/FIFO --- documentation/linux_configuration.pdf | Bin 182630 -> 187381 bytes documentation/linux_configuration.tex | 77 +++++++++++++++++++++++++- 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index 82227aca91102841a8b8ef0ccb488c74367da385..bc793750873b613539255490eb1d816deceed408 100644 GIT binary patch delta 16520 zcmajFV|XS_)GeIcv2EM7ZB1<3$xN&}wry)-ClebJ+qP|;d7t-u=kM1)s@ASuRoz$j zbycsu*FH*wdu)ZPdxZjHW8p{=aYSoGf>uBTurdFKoiR1x0c`C5;Z4#8_#`1m^u{8l z1GpqYEe2#uj{0*!q;IO)&nR1|P?3dL&j(C8{UYV_n3)(^2V5Gg<%FEwzNd;dtukS4kT zab&gIa_p)iW_kq78PpUbDiyKc>N7?4*{;~jR^S27Dk!706KehWcnA~#3*itI)cxTi zlY&)nZrGyYlyWVO0FBbXf%s`sdP zlmiGCx2P!~lLkPRB6c&71Z6^2kbZ0=WPs)HUtvOKG;(&aG#E1yr{=&^Xb^2=5EACf z-B!`6swaoSHc@>3M=gsnf`&QXNK&UJ#1-nnDK7-~fP_b8S(qXG9pKrkg0X?rX2 zXnlWK@g<0Iaejd?S*|VK7)P=??}d)wcjo&aBi7f81W5=$%h0WH&|oo?ktb zmYqG>1vubB;3=f3P5f?)9Iq)9aK-mcPk_k12y#bOuPQ`<2|Pzn)=pk)%IEtXiOBzi zuUb!pb7xwW1Km7UMsK(PTuo~%ziG$18^ErM%0=jS`~4mE$*;)6^J!zLu)XRQqfOr( zbvzE#KD&}|zm1z+)wZ#W(xGFGDT<1&_QEMiLuv1TzA0KLQ?n#v9`En_%G;TlJE!kY zbT9X_1=lC)>lt30B6Wx=qh7!4j`5$I-{gvu+;%^lE>cU`!n(H_Qcor8z8;-M=^Z~2 zOW9K6(Nu^!Cq0~Hzk2F^R&SqOu0MHMjQR!SyFY@7UZZO}^|VY@}30aX*zn{W!lVOP;heUEVhrw|qTtUBg}D!MP(w>ER>C!xGOSeDPgsV!HWz4%#AxW=q3~+T^d<_NmCvk&h%7O*_sl^>ODSodo#C zNGnxuVXWIn7j(_{jm^1ID9tVfV44LG^^>fpYpv%2;MT8jkFK`jaVBLmF_$-H<*_$5(v#hZ&Om$sb3h*WM;(tDv!Q)jr5hQBLI)TdSF+RL3 zJjxC+;Lh5E%RoFh?R3h)GXcCjGU>?LA>;X|S-QmHlyBwp#@nrfLQ=>l_j#cyO~#v| zX}xj^pdt7yoe}%XqE(+Uv^%9IhA6Rnx1E;{Y2E%7z6O||hswiecGw5(6r^B#dZIkM z{k)7$xt^}ENV-#KuCg5WQs@~-JSgVRuCDA@bZK$$qql3{nq)k(tgW2B0Fw%XfgCF_ zH;C#Fn}=bq&JUzHB^-QC8;8XeV(&4WJ1a{vJGAgo>8{bhYE&;$$xa2*ZKpcUAX~+w z%;PTYZ}!sAL*oaT{S5*3&p8(9?Zu$0NVy+#u%`-5rY#?SZ5b5xY&h02#r-uz+@9Nx z%4&QqtohQL6!+EtK8(y9YHIg{De`Nqj9L)-dS$W@+hyQC=)T#iJKQvJZdX{km0aRc zcKXd`?u#N?TJ;oi#3{GLt;wBGwtVu#sj|VWc`4+8R1UM4#z+d7S_Rz#?IZRC5^XlP z5B6rR5xo5ZXLb4wAjFOIbHj{_@gF9eY!((1;N-@At1p;gjzgHU$bw8|*siTOorRAc zXnFbaPZ?>Pex$VJdXC!b`Xv4Q^&|&HhI7ZWl0vY*<6qUhlRq|Z+eRDQq}`w+I{5(G22(BWuJkj7*=B-}#|Q&5KjYCy(sOmS@jxCwx7C z%vT%F1EqL6k%RkcEQnrPk8J69Z0@mGEEhq#ANI|%ie8(@6t;-fJcPRHZ=)uz_>XXU z?Ok7z;J2cw218KPz;l^26gp5e0Q>*4iyS@?Bml?%unY9Y2U%K#B%BP4Mn|I=L;xpi zqllv-0)UI9F~Mi#U(fj;?XZumMg(v(H{xe}Ac1lx3IAKi@LLiIz{C2VJG|`@A?+(3 z6b*uyje~_NX@`^=*sLS>Ykd@@`(2ay_fHHp3gL7pgE0Juh9z5V4SH);ymcsPf9hb6 z@*&f%Jqn<}=DYy8urf-QafMpHlf}$@`svr(Ib>|jHhyQ4SE7du^}yKUC;43$H$0Ux zHNOyg(z)H;(4Wlfv6a`@?<1tc+)A?@GYQ3*I0=0<>(jYfV3XaS+3nqru*cO?BJTCk zK*n8m@BUMd8^7!I$7wVgz;ql{&9!xjOaL$o^dv!<9p~YBGV^7in_<4?{G8^~A&R$X zNlBv1C%n^2iVl{*Lx$MTZmhF(7(>7^_tAXoLe|;fGwV7s8hI@B{4$$O_QEzHjJK8c+0EPv(Tk)U;?! zc4Iu@qN7Q{g6ry{=*_{ZBa=)Ea;L@dNQ~+SK%9;DMkU2xq2|i-@50piqP$E&q(>&U zrQB?1BlB;55Z10)zmG_qs0M%6Pi&;$DA2N_Zb^E!pdt>fw z&6(0n5olH^NtIkc;I9XGrQjI@^byJAxlUKEk>fBTCax+xas%wMoGLt7Cin%9&7!P* zq_SnrX{=OHFO}c=^wBpICHPD}AE!rqnG=V=@$EoIyefzrPLXFOjO>VsWCH^ga(0$M%d*L7{lPzj>Hd!Pj+kUc9Mror}hXSLI>&N`*805Nt*mEDy zY2b$^3I5`@37+5HD=%|l>Xna=N5tsQa4*81o-fxRNF$Yql^948aeTu#jy7IFejx#m zF|Oj+E^^ckEq%zk&0UXMEPb(8fSw7~IIW>~fc#PmfxrM6^;ZVTYhOBqhdA;`ZAjT` zkcdJXU1PYz5%U=XZb>!WCrsN8~t4bE>C1)5OkTY(Kppd z$q`-1G+#ruh$VmEaLS8b3tD_RCE+frbi98c>tdwwfDGTMg?g5l&6F19 zt)pM795`(nE5o;z-i{vLG@MbrJMuG7Ot6`ytQgeY79+(?ph`5N%LKhMhYkZmzV{y> z`_UcqUtVMNQt{({L9g4tHFg%}MsiaZB0K@pmkoUj%6v_ms0>oL2o(J4nj$QLOt`o^ zSB1Xx{v7b>q==C0o}1By0XVn6VxyszB+h1DHK*?4iR1`)=E?$EU2sq}KPIVT__CJ? zA9HYzLaMt9E8(TF;W7eI4u^o~x$Lbf*JV%Ezo7^@i!}OJho?n-4U4Y>Y=OFe_0y>q zVE2?dhm=zZ(73$^;$5)WQ~;x%TMWE5s9B+sh)`uWC->T#Gn6-@LZe5iT4O|?M&*DQ#8M|zwH>F4 zL{UaQw8>OjEMn^)5PXE?^v#RM)v%?=Op_TZ>-V%a zOsA4BLi0W|R!3LL_|aGxG2@FCf*zKMNhV&-pt}1=(r;7S;c0ta{dDCoC#B#cnDu8) z0@>JUNJkwH-A++2DUHzEKLsN!Fm;kvR)5mLuE2u1jq~iJC`1A~mo`XaSFMIdl$kfBEM~q_-`cT)t*?NtOCfN_1>R2^9Z+p> zti$yd!!z#MH6n3@h~gVOFgWra&?m@CDi1R{AAd))xTQoa1VQT2#`6DZ3sfw7HD@Oc;1Jwt~Tb(iZ2~v#o%U0uk!Be+s!K(V?5Er^n?-2BFMELHWq0z_ z&Uo+K)N-=6_%s~rogIpeZQe4Ck(s5qK2llJ+o+_r|7u}vM-b+(^qBn9q47yJ));T2#EwG#`HYN$;_H6t&9*IKW#S=sH34uXU#aDnH!It-GMoPdj6uL7)%5MXIN zG!e>}c%YPm3-=Um{KeAX^&IJ%F@Je%7$SxUV=J65x(rA_`*H+8x{a~RVw_u|b(JWi z3bK`Gwq6TVmy_B@nI?Z9c^F7i;;$=f6xvdkWT;6eA)H zG(sM5C$xoz(og9d3_^sD<%Pyhcp7NBGA~|7JwcD()*90XA&BgM+r<=ajZ()sk*uuo zcQE}le6_)n%X$Nn4$I|bcdrL2l$_m7@=zu$<2CgH*aipmtpXq{evjy68{iY>f_n|XhQfUL z7#M7B?H>5S8R(oK)T!C+t#NNn&&12NK(x}?8^5!L1dp2(?Z+^J;)p!_h+8D{Tyyss zA*yBx`dp4Z6fa6M(guyEGCjXXT|&3uV11aR`tSrr9^qY!(i_&zdRo^oh6;`aA5+dA_sLSaODWj>A}K9v+bnN>BqF{?PAm| z$dDAvvpJ8XnKLtKBPQVn9+QU?3&d+aNE7H-lgkmzq&-zegoZ$@@T3RA{PWkwSQ>iAjN%g{D;%%w;pa<1NxRH6c ziPBz9W$Ry~+NJpI|D#fEl zLN2hp;m!|ktFY}dd@b(D4SL5Y>&yNrj~EKx6N(vQ1rG(PG>tbj-VBBwT~+$YibA(C z--JUbcU5t&XLo1eTJ0Yw_s;T$(@qV(ngfQ=zX!3$S|nrK5$!zlwoWQ!D_WrMMv*{ZKm@IR~}4m!iV`aK^F)3mC`;a_X$J3VnP>&FohbPTdszT*f05FPvi8vvsK_@Chr0e2+-z{Wu9RfGeTQur7Rr2Ce}k_m3kyvb-nry+8X z6TeLNtCH8JdT%G8TQS5YWiO0n1+{c8wy9MaIjih1<@Aag9lza$LxB&xG_G$ZBmM-` zS=&9)FWmRkzqaQG-=LTE>pE#9=>YV!JwpI01TiZoGy8v`UYCxp>bfkd-?66E_604w z72}+h4IL8b#9=lF&(6hf1w}$|Ovw<2#&&W%gQr@@=LczNNq<%694vmDNtfvd7oac7 z`+QCpnKl1_JUOYO*ZHackn+K4cq8%NmdlYZjx!|>nrYrWGj>kNxcaT>#kf|igT|}Y zow9lrW>gb45Sa7T;!ds>rn~dXZ^6nrc(Swiaq@tDd?{bb_r1EyOmfpU!ehCHtwh&n zGTD`NIF(i#z!j9%;|ZEX`P9AsTTY1?Yy;r9tAF`X-x&9PEpwp9LNJo5UJNlNkd;k< zKag62@9X)zPiNocenD*}y6blF!Swyb>x7*L6?!WT?DuCwlVo>Sp?9u#j3lenzQL1br>ck+}zEBeJ+-4q%WELM0^u(SS-`G16M7;*?~nba7}ad6?igc z*$6u1ko$$JCxE;;rU1v~n2O%YzK_?f)%O{@k$B3jQB*Ac*H@-^qD!_ho4kB>vQul( zRM5)^2nPFjtLRxQU>Ho#X*`lx+*mvx6^jAG&GFZJAd!>3m^v0)ZvpcHnuq2T-}rmr z8jO`@wJ+h*y z7xRQgXG@;yp~T+F_#tqDYc0ZV3yZ|wO{(Y#)KE81>BpCR7@%jcPENro|jc1c8lJ_n1(0^>f2lN0D%e4>{wP;#mWd^=@oh$qr_WX|}=3(k^>uZgXb? zZ6a+>(G5Jc^#}!i-t`kzUdfc}=^v|{YH&vNzo9Lz>6mfW8VQrY=}4Ry+4B$Q{SY}X zAUAiv@23b-OcD2FY2z9#p-fyeo_wVDT4q-^Z=QR`(F2GBLtpjv=YFA|Q~8d;;-Ae} zY=OOu*-C=#O4{oA!b2`waA3`6fmotoLn7wM739t?G*^7;;sELIiiN8O-Z9H%h!ctu z8X$!6&5tT8_sYV*8lDYK*Mb90!-{NSK$BO~nBZ8wonC9dy}|yHcnBUr#I4*@k=Er6 zA>9Q5ye)x&@uecV{>$<|3d9u6V(xO^p(oFe(oLfZCET+y7Qfq2m9 zU*;+tgb53+N(rViY_TwVpf@09SvRG*PzqAA6{!QJmn~Rq4xH;-1lh^>bH}`9nNqfX zFm1tgMTN6NU~70WN$<4psU;E;aR(X@0>}=1M%}SF!hDmCQQ+~#-L-44n6E}NJxWCE zt~12QAW~pF;gXy$tU9i#D*_=!Knlfbxsi*prAz^Y4T}^tic{P|)rZp32-BpZoeNK$yLl3$(Q& z`lCdifgVA&JmU7}3)N}vhCm<=?-qWn$#D_4$MwYAP~A*ssy?0Aka+L%PQF%(d1R;- zudcm3{(!eBA&7~l6+hw~(4Yw!VnjNm`l>$yVamYW#7@cKQ&TvW!Vu6*GQ#S#| zOEdquW@2Eh2huFl9|y-#qBLOwdNYYffFvkeQ7Ai?sOLQ(eur2e+8S=rp!jRv1TtTE z7nZK~K)qfb*(I~>L9E_M(73fUrUT9b6p?LW*iW_8D6i-R9KNbWA1D@ zaFU^F-X3=xiG1QyV4A ztWK)^?o4NWvwuqBpGF^p>H3I`gQq2wELGRVfR6QR%9lBc!yWVF?I@j$3Z*L4-lT4Lf*shW0P{vZKq;V25OwfZ@ zY%TBBCrD~)hytR(D@hboxb~45>08bD_ph82TK_W+wBCM_z zlFOHW9P0q%Jg)-Yb`6?M!_Dl4H)my?Q>=Y~f9?YV9jHJf2bYQ!P2IJKT!IGuGx~{0 zZ>V2iN-^^faJ+F^|LEd+^pzDSn<@ynfy?kv(Zzfq&_$wkr{3?G6&lB}o@;F)s)WU< zQunl(tWuck^KVfl$+tTF-Z}~`M^qq3!Ta?z(rofKzd&|w=Nc79I!rj1X$Pd1ny)4A zz*f!=$N`gxF_PGt#(1p??7xiND(FRtN8^ylkXIU6d+H zIU?X^fa5}D<5jf3A4AyhtU$5Q!|>Xh_)yUI?ho2ydQx$cx1(GfqRh%baLt?|_ZYSH zI`lS#{}?Tu(X78C&;1ZhHq(HYQ21~YR_dCvkYSg%NPJszL$iW7gm{xd>39f59FH;L zh38^Kbym6}?<*IPA=S0#-Ew;Jge|K*S$u9!2bL%@&e&(cosRX}cT5FL^1BLyhJ6gRSQZU(_g;1q~2&E9p+X5_t;r zT;K#Z6(k<0*)eEHL-HGe(?b5sDVT#aLRF6T;8kzFpG3EA=Yv}zDuz`OZP9OsUF@`| zt_nMa`%DzHNpkl790@$pJ)$Y}#YO1rKDH0rBaG}Y-_uECmVf(Tt z>&6B52^G_#DC zIWp>p9y6#Nr-Nz#-}|b8%^vbmU3EVp+un?p)R28a`ozvG25tsD%d4A(B}iE}C_%^D zP#O=qp=cK0tV|bPWRIq;WnSTf<2242m_0|x&!(s+iNke4VYtU!&tCW`<5{to#32ZYeq_V(kQ*KJ$v~i6MfSqXl!g+i=}N!MY<9oo+ z(pBbcTgo-!FY*ZlETG->!A63g69JBd|5fTc%KgNwW% z^GvAerGi@^1q;J5qXoh4S9rWMG1L zCE3l6_E3gEeruGIzy%0mz!S5F>^1(PPEJ$LfocU4$j*ibHo619o8cR|qL9XopYEP4 zx;nMDN&0c#Z|u@@7_J?zHPgmBoK<5~YtuBBqvqF{cKMA-Tk!=TnFW^ISp2OaV96IG zU!t(~X>0rcM0>x}Pxt}9rKlO&jch7reY^gAKb)EnEzN~<6s05I654S_5C#)g^pIb{wX;zPSIk?mK9rOZTcWS_2KV?g-pP z_Z50Jf|H|P3sd*_A^%>NYs%BZ>ZN~E~k>;Hmf%j*yd<3 zl%3X4T2)qB3R*~7Z}Iwhr8!Oc^!q1U0E31p+iAbW{ECzOgHeic&;ld9r8uRliA15c zAwD*2jXEL|*SC8JO=nR;V(fx+fnSWBN#5KjxLd6xWgSijpMrW3Ox4+dC6dNqVJo$Z6Pda3Z$r$il`=Dy0ERJAI(OsdBdg!jkS@#h zW@iJiBWsp`B)ZY|x)Zg1H>GldFE4*^_BL z0WF)81Xo96V0Pm5n3n_QnM07(;|e|g46zO$&?rxlJ)Am6rWo%0(7WO~+aGqBI-;Y_ zBRp<6?5fQ2xbo_tGL`IJy;{id-vixo1TZX+DsarBtz`G{r3AxNq1G)~GA*OuFF5ms z451Mdg0$C>!*pZ=ea!7U7_|ASC~VuS6WoO5mMGWgr$&`7`}Y#q))rRz0?cI-Y)|`v zDr5Ebt&ZNb=S3qGQm>xb!~1w879C@MM<^@t+sIHWWm?eA9p7SQt9lqO6fVdv&{Dim<#0bQy^%PJ zN){;fwH~J<5Is=GVLE-aP*&tFajv(4h)ivYd=pz+-+u^u-iqNH4YBglid+bne7m%2 zYXpX7N_%>rA32Aykjm$kAxWUVn?bs;QrCV&XLZ}pOy`j_%{#H^@bwsMRvY^1Reg-a z7(b1h+^;(>Yo5n3cGMyn2yNC2v@zEU}Tk+EwiEC*P_x})tA5=vxkWZ2ZhPDA{Tgy`Gi{c+ai+#AU_)z zsKJ28fFW2Iqk%XPy4jpy66$Ad>m14v3JXIpk8NR1mTU_@5}Oo*GLwL6Q5>j%0pWuT z=`=*{qBZa2Kcj_wh>6K(T>utEKs>@=OAkhXztbe&XEI~{ zrvPEOre0L`qHtq4*v2L_@Jjjd6*Seep_-P)HUBi`UEcVt#r#RZ3}<_c)%N{Cu`tmuJPBoJ4&}4gN>- z7hyynHu&tQ7p0RZQ@-rO6ZS>DHrwN_gjJdyI6U3J*Uo#fY;?9e6X%fW;_O$5X{?UP zJKOt&DVh}q5vGr{x4iy}&rgmjYqdrwD$v*hi2X6;4*hMrnJFkF+@EdQdHAh-S`vsv zMC=Eri+i1$j)ELU6g*lEEge!=Q3%;HIIo@w2wRLw?pXiiotZL1n7rT*ct(j!-Ml#7 zk&<-aKz$cjD70}bF<{iJ77DtIQ0U`D#0Jpz`7(b|H0Lwb2h46wo%~G55@RgDeG`2t zi=JGyvW3VJ(+D#1XU;Q)RQW})-qwG|L&!A2))q+TgX!k~0o9=$`i^($vcG-Qcl)g(2&(*?yh0YMof*1-Iv>or!S8>wVzhGyqLHDqN9nk2PQ%8st zi=9uDi6^|&E}yiFd$5nV0m>Or&?csJs(buHNw6qmn`VGRisG4Og4i;*)ersl>i8#4 zHo^o%sL6p@n}=`qWAxAoN>0;~RnkIu`h&+owkU5k>DYV^>YNMrm(9>YC-1C-*o0e4UojQ{j2Bx#e%fjMAYWc zrR#Lty293ai_H}(*=G%L+g+o&mCy{}PLBCf8RIopu|Ox>E7 zHH;>*Rr7s~>UW4-Rh*@%v+;>8Hx4bp(K#d~UGsDJhsCE$U4QHFJ_h}=Ht-}xg&->+ zYb8v)pOtgKZmK?Xe|-|1vCyoCw<=yxzt0>^cUs|#-3a5YAg1h|jI#L~_>~GoDm>jc ze6@nF#^6TNaS*M)S8C+l_KoiE=#KNje~r#`P@9s%+A#7Re6!ANZX>r#@_MD+72|69 zgsApT&Cq1CyBKiPMro1_Dh=bD$hQrBJHy_%vsBO}N-fxW`xSZ~jCe@)`g;IR%!lx} z({6zf(Muj+&;#ovs(;oxa&ZKlHu&kXGERK+mlRK1$aH!dGyATXOr_xOqH)O0sZ?+$ z4)jb|km zJGNHgW#}gJ{FrYOe=@Xntj<)6;LSSa!8D_Kl>MR08t!^dGA6@(3#<*ed$+R3{Q_It zC#`aWRt(W?{qAxlM>$A}ud{!&s|ooqBibplfCJ&uS4n(yS=S5Tn=*t~zt9cPG%gZYreD96|sJ;mtqH%h-b?dI`5ZD4Rn3ii1rb|Tm z$fZ|CRlG2fVLw+)l7oTeMxCMqH^a|uo4IzW%N>uDdYk>e*F&?7t^dk(&S&pG-J|=1 z#)o+HO76xt2|Gito%#D;5)s3&uH2DYsV;4x)bTY0b@YU+(~hy2n{M_(*LNBPLXq;W zFw@49!Yc2_TREPfKDF}6Fj z*9?9trct?{(qCe+qb!~h21#581fEKQ@er@_f{vI}Jxv|sPj<_XT;)00@kx)1i-FmR zsV|?>@8^?yiP;H_Y*uME-)X7Yeda0INpL@J-ybD9NagMf@8JHBYnn-DjH}BnnIT+q z{4wYqn!VohHjV?HyEW?NB^r)}+Ksh*0$^LlYt6j>tQf=-tm@mXrC#{yCgI(Md`NaD zZjTWi#JM$oS^B>k!R$zH^>l8BwB&7dzP_&R3*!+LC=lDj0~eftNcIbx2`y!4$t3y_ zDf1M1L#^ZXg_f?7btFP)4GOekp*HZn9HH1HQt?P44endS6L_RN0AK)LnxWDA)rWnq?B6WQythvq>d|8Lq z1vPumDZ~e#uo_l;=^XWHG`FMY;}zCwsnVhKOm__2>bR!9Sh)=Dm=sB|<9R>LP4mwKW-UJ1|UM@~{Za7|EY(C;EYn*<*auNKrr%Jl-(7Bx6Ss=yZI0*QjwijersW%WZb?5W(FxY!Y|_{wpH*&d03 zRV*ral)j%R);svZKIq{S0rzO7Kx7;C9G>*ZLD%fcah90{fj+UdUuSMMsMJAMO(roc z>fR0R)XFz#%pP(dp_KJQwF&Fn+A|V3X#)I;<|M^;{kD9&vF~?>{_*lOE#$jQC<{T5 z8R96m@1D)&>}cEF9EQC)Ah9_W2G={%Qxf&tAYIB*oqcdD@@711lVYQ#C831!h>!et zgfSlay@3M^m$-*FQbY#7-OV=oi-QZ`yPs${>nZBH41^~}B=d}%fwIIDzRRlT>I2xr zRDQCT!+5n3%=keC{ih~Ue`B>+ZqZf3S|ce{CKF?hvvuHTj6UO#b*%Ox zV}cQujf$p7LDeBy0yT=AEEZFs{z9NWdDAQTS|_pAf@lcU#Vh$!XK(Iu-7yfxn=?Xy zuI`xQLc2d#!DJft!V|$ewazkWWgg(IF(A08qbOAuH^6p#U&Cz>=$v|~RXI{s8B;EUndxnDtj27n3#srbjkWqrfvroqcvzyV zzH+-ogzQQMjGbqIeV7Y*BO7ZxPRzw9dJuwnp)leUI8#e9hoyO-{vA-}bPs)WjV3+< z+_=moA~3i@pEQB^ptvRwRl7)>To%0g9Coe{bB}*_oJuqs6Q>L=S=!3dj96`LY<>)l z!be!9RVKP1vynfc_ad2{PI`v}Rf{xWOhz99M!n-7nx)Zi$`4+oE{H&_IBzd>VVIu@ zz80r(qu@UTy|jb(0siC}v!opi;?<*b{=L+GtFi;z#+Syo9w|E$bGH1fmbK|oLwojf z@<=V^@&%NJ_GdM5nU~#&HjRyQHF}w>-7u4YghEZqfm#9;>`&!5dx|5~jGXcYiG=FK z6*Uto+N!D9>cwR>gGcUm3C2YX7u5^`HSGi}?M3ffswFKO_y0*oq5-(L)3*8m0ko|D zE*@4EI%XCsW@aiHSSAHWGjU@Vb7E?7URGvSHkNM z+6KqnQon_M*>ep~L$k3Mos20!PIvDtxP@mU%_4590Fsp5XNMms!oJffVoO|fJNtqh zUFM7%EdL8e7!CGQ3$3W@=PbEn3|LY%$Lc{me5R;k!WWM%n}El@p17AVaKF=(`bU$f zvnV^GXK11`MF<`IDu~ukRM?QcnS?-z=!YF@s5c}sY)3TD*xbbN07B~3ol&J?7qt5b zGoygxc&5=)Sh6yePxL}t8ZXkP)Sn`((7gjN@;4DgoiG8|#-#1D332Er0lySygOguL zGU6Ewx;&g+@5gstxMsLvfN%GUlXPNg=krSM`%XX;nDxAoT_ugquUog5bF*-Q@7p`` z>)~mKs;f}hry+%KIW8?qE^N&WqiaZTE@L+^ItROB3;D~9n5>PLs*c-w_aHegztoj+ zR4zFYb)m|$Y4u5cpA(4~(_lxWk+S*hwdeP;KXzQTM1o0S$EW=0z=^+N3u2G`-Xb39 zAy6}25A8wud=u>*RbI|r7sR7i7OMnj25+eTKLA{5y%7}Up^9368*`6;?tSjfixi?ubH`%Z$WFcJK5{L+T>mWF9s78?m>dW@zE*tSx3=_|ALaMn*hXBAg)$K` za^J{&L&;6j7Xt9B0N+rQ$Qa(A#gA@Io!X)KroDj~x?u4H2V3SVv+n_$&{B`Sg!l_# z4*oeWf=qY2x|*l+nPiGd2ibeE9j?a=x57*cr2!`$0sVV@>`oiogwJt6y$)NfS0Tk= zTH++zF3SY#jfne@Vy2@yL2C1)ngRP|%p8XGDBd6pu z>lY_p{te)KyNDp(LA~|b@pf89Yvz%9q-kkI5X5v;M2x~d+Ob|KxV?fgi{3FGRg7ws zoCqM@HUUHhNXOKkm3i2&MY^Jp|CpPEo~omUg7d?Wjuh++V=B_*$Nf)Y$pXfsK(v*d zvbMT4BZ;mV2^wN2e(UVBy~IJRwq%nr{~V0p7Q!@Q>q0I%=B-USWe{p;>2F6oq7ngC z6y&UdsEOEPsG{lt6RoRPPr8TptkIms(QXOO@rhdsaZ%dMjzkh z8$hqBr%fa*I7S7Qyt0j2X2I_?r^o(7si)6F$slnw6GR%k@%JvWY@zWTmi3K)(fvpr?lCt4^6Arp{{If zft|7foO#M`Vh}zgUU!5AsV=e*fSF>U!mxOaR5ebmrG66@xCxl#owx*ZmJ5&+b*^Iw zsP*Q`&xP`Yf})+s3W=hfKtQO1{bdNIX6*1C&qZNHZU$vY26|0lP&SGexlD6c6No$H zl^&e0od#<;w6+cji~*>SRXt?^Ufvo+lz%<|FVV(zFpg>|{%y6Ly2cxKnI#Rzb7O&Y zV;CEowv@GD`@O(xvp@qcv*@+kV>W|bdTV-9>$4IV>S$I_-RS0EvO*b5T1oWlD(fIF+{~aZ za4#@hfOw|?ll@2aU89OC_!pFJSPgg<%mYs(-bP%;zgGOrnCu8Sqc+3fdmZ{5jGoD$ zjNs~UE<_G~SXcY&j}S`6_R<^cbEU%l7Y7(kMiQdxAk(WHy1{J& z^n1_3!u^~3AE@mUf9m30;A=2RTiXlBug~o2g*6XMnYh+*8Q~duL12W;tzoWEYe1Al zw_ubmYhqJp*asn)ViZfPD5l3MlIVqAhUN^T8Zl-0-Vh2n`qDc+DME2SHVf1xX|<31 z29`VylxNL*DsI{_U2vz?xZ0RO87*vByVZsg1QQI*T^PWTDMWN~PhKrdA`ZkFS-X`v z4DZO8P5uLtoB+PylGQF4Nm5iE*UZh|Su8&i3*{U6I9OE@N89Ev6a}IK5*HxZI~;=( zvc-Y_HX&e!lvRP7y-?4ax?M6i-Fw-8EVQ$CJomDL zoLHBw=IG##$=G-^{E*8EIK>o5PQq?;NFgk#JCg-+cnMj(i;H))bKbHUgV> zJ94(YCVXme=36+r{$N6pYPyDBlf*ny$~JiqdmzuZ-A25^G~FPvS_Hj~HyA-%6+UX) zwi##k>XhMJlGo(r&bIn2#!69DU48g6JhBz(G-CG(YI7s%LX;g1%B1aE3+^3dvbl(b z{|%^#n~u<)1%-r?B<%kIjD4CW delta 11878 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 diff --git a/documentation/linux_configuration.tex b/documentation/linux_configuration.tex index 019bbe6..865d784 100644 --- a/documentation/linux_configuration.tex +++ b/documentation/linux_configuration.tex @@ -842,11 +842,84 @@ Im Zweifelsfall sollten Sie den Standardwert verwenden. \subsection{Memory placement aware NUMA scheduler} CONFIG\_NUMA\_BALANCING [=y] \textbf{[Y]}\\ -Diese Option fügt Unterstützung für automatische NUMA-bewusste -Speicher-/Task-Platzierung hinzu. +Diese Option bietet Unterstützung für die automatische +NUMA-kompatible Speicher-/Task-Platzierung. Der Mechanismus ist recht primitiv und basiert darauf, dass Speicher migriert wird, wenn er Referenzen auf den Knoten hat, auf dem die Aufgabe läuft.\\ Dieses System ist auf UMA-Systemen inaktiv. +\subsubsection{Automatically enable NUMA aware memory/task placemnent} +CONFIG\_NUMA\_BALANCING\_DEFAULT\_ENABLED [=y] \textbf{[Y]}\\ +Wenn diese Option gesetzt ist, wird der automatische NUMA-Ausgleich aktiviert, +wenn das System auf einem NUMA-Rechner läuft. + +\subsection{Control Group support \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CGROUPS [=y] \textbf{[Y]}\\ +(Unterstützung der Kontrollgruppe)\\ +Diese Option bietet Unterstützung für die Gruppierung von Prozessgruppen zur Verwendung mit Prozesskontrollsubsystemen wie Cpusets, CFS, Speicherkontrolle oder Geräteisolierung. +\\Siehe +\begin{itemize} +\item Dokumentation/scheduler/sched-design-CFS.rst (CFS) +\item Documentation/admin-guide/cgroup-v1/ (Funktionen für Gruppierung, + Isolierung und Ressourcenkontrolle) +\end{itemize} +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Favor dynamic modification latency reduction by default} +CONFIG\_CGROUP\_FAVOR\_DYNMODS [=n] \textbf{[N]}\\ +Diese Option aktiviert standardmäßig die Einhängeoption +\glqq favordynmods\grqq{}, die die Latenzzeiten dynamischer C-Gruppen-Änderungen +wie Task-Migrationen und Controller-Ein-/Ausschaltungen +auf Kosten von Hot-Path-Operationen wie Forks und Exits +verteuert.\\ +Sagen Sie N, wenn Sie unsicher sind. + +\subsubsection{Memory controller} +CONFIG\_MEMCG [=y] \textbf{[Y]}\\ +Ermöglicht die Kontrolle über den Speicherbedarf von Tasks in einer cgroup. + +\subsubsection{IO controller} +CONFIG\_BLK\_CGROUP [=y] \textbf{[Y]}\\ +Generische Block IO Controller cgroup Schnittstelle. Dies ist die gemeinsame +cgroup-Schnittstelle, die von verschiedenen IO-Kontrollstrategien verwendet +werden sollte.\\ +Derzeit wird sie vom CFQ IO Scheduler zur Erkennung von Task-Gruppen und zur +Steuerung der Zuweisung von Festplattenbandbreite (proportionale +Zeitscheibenzuweisung) an solche Task-Gruppen verwendet. Sie wird auch von +der Bio-Throttling-Logik in der Blockschicht verwendet, um eine Obergrenze +für die IO-Raten auf einem Gerät einzuführen.\\ +Diese Option aktiviert nur die generische Infrastruktur des Block-IO-Controllers. +Man muss auch die tatsächliche IO-Kontrolllogik/-Politik aktivieren. +Um die proportionale Aufteilung der Festplattenbandbreite in CFQ zu aktivieren, +setzen Sie +CONFIG\_BFQ\_GROUP\_IOSCHED=y; für die Aktivierung der Drosselungspolitik +setzen Sie CONFIG\_BLK\_DEV\_THROTTLING=y.\\ +Weitere Informationen finden Sie unter +Documentation/admin-guide/cgroup-v1/blkio-controller.rst. + +\subsubsection{CPU controller \texorpdfstring{$\rightarrow$}{->}} +CONFIG\_CGROUP\_SCHED [=y] \textbf{[Y]}\\ +Diese Funktion ermöglicht es dem CPU-Scheduler, Task-Gruppen zu erkennen und +die Zuweisung von CPU-Bandbreite an solche Task-Gruppen zu steuern. +Er verwendet cgroups, um Tasks zu gruppieren. + +\paragraph{Group scheduling for SCHED\_OTHER}$~$\\ +CONFIG\_FAIR\_GROUP\_SCHED [=y] \textbf{[Y]}\\ +(keine Hilfe verfügbar) + +\subparagraph{CPU bandwidth provisioning for FAIR\_GROUP\_SCHED}$~$\\ +CONFIG\_CFS\_BANDWIDTH [=y] \textbf{[Y]}\\ +Mit dieser Option können Benutzer CPU-Bandbreitenraten (Limits) für Aufgaben +festlegen, die innerhalb des Fair Group Schedulers laufen. +Gruppen, für die kein Limit festgelegt wurde, gelten als uneingeschränkt +und werden ohne Einschränkung ausgeführt.\\ +Weitere Informationen finden Sie unter Documentation/scheduler/sched-bwc.rst. + +\paragraph{Group scheduling for SCHED\_RR/FIFO}$~$\\ +CONFIG\_RT\_GROUP\_SCHED [=n] \textbf{[N]}\\ +Mit dieser Funktion können Sie den Task-Gruppen explizit echte CPU-Bandbreite +zuweisen. Wenn sie aktiviert ist, wird es auch unmöglich, Echtzeitaufgaben +für Nicht-Root-Benutzer zu planen, bis Sie ihnen Echtzeitbandbreite zuweisen.\\ +Weitere Informationen finden Sie unter Documentation/scheduler/sched-rt-group.rst. \end{document}