[comp.os.minix] More Minix ST kernel speedups

I5110401%DBSTU1.BITNET@cornellc.cit.cornell.edu (09/08/89)

Hello minix freaks,

The minix speedup discussion (st version) was very interesting. I
took a closer look into it and find that those multiplications caused by
the proc_addr() macro can be *totally avoided*. Here's how it works :

create an array of pointers to process descriptors on startup and fill it
with the adresses of each member of the proc[]-array. Then change the
proc_addr macro so that it's using this array to determine the address of
the process. Since the new array has an element length of 4, indices are
no longer calculate by a multiplication; a shift left twice instruction
is now used, which a lot faster then before !

Have you noticed yet that there's a division of two longs in the inter-
rupt code ? In certain places the slot number for a process in the
process table is needed when there's only a pointer to the descriptor.
The slot number is calculated by a pointer subtraction (rp - proc), which
in turn creates an address subtraction, followed by the division by the
element length. By adding a new field to the process structure this can
be avoided : just add the slot number to it. Whereever it's needed, it's
now there - and it's fast, just a memory access.

Following this you will find a uuencoded, compressed cdiff to the kernel
containing diffs as discussed above. It's relative to hjc's updated ST
alltar-kernel (sorry, no other version available yet. No version con-
trol). Add a '#endif' line at the end of stshadow.c, for some unknown
reason diff hasn't recognized it.

I haven't compared this solution to Roland Lamprecht's (?)
[V61@DHDURZ1.BITNET ??] one, but i found the speed increase seem to be
*a lot*. Please, will someone do the comparision and post the results
here ? I'm intersted in how effective it really is.
O yes, you need the copy68k.s file from Roland's distribution - his
one is better then mine, so use that.

Regards,
 --- Kai-Uwe ---
=========================================================================
              " This space intentionally left blank "

Kai-Uwe Bloem, I5110401@DBSTU1.BitNet, ...!unido!dbstu1.bitnet!i5110401,
I5110401%DBSTU1.BITNET@CORNELLC.CCS.CORNELL.EDU (or other known gateways)
   student of cs at Technische Universitaet Braunschweig / w-germany
====snip====snip====snip====snip====snip====snip====snip====snip====snip=
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 kernel.cdiff.Z
M'YV-*@*":!)F31DS:=B4\9. "IHZ(*:4@0,"1 T0,6KH@ %C(PZ,.7#D4-"Bz
MY,""!Q.6:?@PXL2*-C#BV#A#1XT9($4J",BSIT\5.P7&8$$#1$^2)H=>+%E2y
M044%*T $F9*@!X@Q8T"TR-J"2! J0:0D^3*%BE:O0Y:<;6,#!T<83D$P(5(5x
MQ(LZ<^2\8)-&S%XR<8=8J7LW[]Z^+\;8B<N&,%Z]?,4$_4EY,D8;+&3(,,HSw
M[A,A2NK.H=,&#AX7;T",;A,FC1O4(.#(>3,&]IP\H\NTL4UG#IHP9-[<@<TE
M;H**=.CD@3V&#>TUL-OH?B-G>>K19%CS-N,<#ASKJNG<<9V&N/&*H\>\>7V=u
MSAHQ9'C;(5-GNQLZO&6[QI^Z> @0QX% 1QAB*,1;=G"@%A<21$A1EPLNO(!&t
M8F&PP88;<KB !@@02IC8&[MMV.&$ZKDQFH8<1CAA&7+,EN&&Q544X(@OS'%&s
M<LN)J&*-:9SA1H4HTJ@<'&6@&". %95XXH9G.(>B;+2AB*.4>1!I)%(M8'1#r
M9C@QU8)GH(E&FFF\L>8:;%#6=AUN=.C&FV_ "6>>C,@IQYQS8T"7FG1M4 <>q
M=MJUQ]T;WOTI'GES(AE>B;R]%U][\]4GZ'WYR;&?>?\%.&"!1;:'('.$YM&6p
MG@LV^.".8U1XX8LI>JA>B*V2N-Z2L;[ HHM7TEFKC5/JZ.$</?[(1I [#EDDo
MC.==-2M^3#JY89I2VKFAL5?R=!6>T(W!D$,02401"!_!D(--,N@PPV8QA#02n
M4]<^Y\(8+'7[$@@WR*0##>76D$-.(U'FKV4QN,5"P#$=)6,""!NE6AEND %"m
M&G2 $(9JP0)941)F/!QQ&G-(+& 8<ZS!PE6J"HA&&<8A?)P*()A1AQMCT)'&l
M>K')488=,^/%1AZJ$3E&&@B5X; 8/--Q\L<ANY!RPBJ\H$"F*J?Y!88@6(7"k
M?BF@( =%6::9@E8@."'%%V!-L<04.RR= - @H" UU3Y8!4,*:B>0*EYE? 'Lj
M&6[/-L;4<HP\11)'!,&$%$VDD/;!")?!QAPHLQLP# /C$).7:BL,><,:>[RWi
ML"Y<G#'$#W<\\8 ACYRJA2:CS/C*+;\<\\QNU'QSSG/LW',9/P<]=-%'HPY=h
MYDT_#6#4?@->-0A;M^ #''H[1P?568I-]E1G+WX\PFSW39OR<8,P=]UW0ZYWg
MC][_C:'@A!N.N.)J.PZY94HRNVU+WL)D;T8Z9,0OELHR$;/BY9)OQ21@_;.!f
M#F1PD73IQ%^5L18.9L "''SD*.R:( MR$ .M,"4N(R!#2MQ0AH@@(0A$>,(5e
MOA"%BKCPA16900)>P#(YO.Q'G!J9&.H0,3@%YPY"JQEMRC 'R'6L>!4)X0A+d
MZ(06PO"),*3!#%DV A"\(6-S&,/)Z,,7-YP!!'&H0QG$>$2G/24J(P":"#,6c
MA+1 !01*1 @)06"$LDBA"D-X A2R\,81,(P,0 /A']GVE;",I2QQB0L-/>BEb
M1CKRD9",I"0GZ26C.,U:T-(6 ?,'+O&-BP8=@4$'';@NDV1RD_,*U[A@4*X9a
MC%)=DX%@9ZP5 XX,# 8%Z\P+^Y#(%W;/93"3&<U,  (I%&$(14B"%8KPM3T8z
M+P&ULTH;R/,%FXT!!:M32.!4(X>_B7 T(VO#%^! !SDH[HF+!&96K&),9"JSy
M"%:4 PB$\ 0J(,&2QFG>\ZI9AC-LP9A4^((QC]"%Y;E!>Q7A94(!6$O*U?)Rx
M']QE+UWX2]D)LW;$;&<RE]G,9T83!--T0QKX><ULLFAD>?$F$>D0SG&6\YQVw
M89DZEZ?1=\9SGO6\)Q(!I$_HV<R? !5H$0AJ4(2"0*%'C:4L@6(MS>2 2Q<Q
M&#I9-H23Y4E URE#"=DV,>D4,0QG**$99M,&$'PS#39SV!S>4(=N;M5T;+ 9u
M<'@6!CNTA@T$,A ^H;@Y$<K!I?*TBDG_2DXY. ]Z@XV#45UX!S2HI&U]91%@t
M01 "JS@A"4SX A2D\(0A=#13D0ULV["&@M!.MFM^^UKUQE:V[!FG>RFMFE6"s
MX(0L@( /?.#F.JT2VHX>;)%!J%T8L#*132D$I$2< UA+^)N.B4&KM3,#6QL6r
MNITB; BA:D)R2_O'DRZL89(M+$J[2]AR'O8+7IW##LW  @ Z%:J,_!(4%UE5q
MWJT!JPO;:L:ZFMSEMHRL9B4B6H.XUK:.X:T2BVL9YBHQNR8DKT7:ZQ--6]CEp
M#1:PYTWL8BO2V,=R%[SEE6=EPX99S7+6LR!P)FC)NSP*FW>?N7O#].2YVNN9o
M#6VOS5AINRE;J=3VMKF-;0]X2U[?'@^XPB4N.2&,W*^&%03-!<%S&=:RZ<9'n
MPM?-[G9#.UX0 [;+?L7P/M.[WO8N]2A-Q<&69) #G$BU(K*YV3C]9N&VSIDVm
M1NV>',B0AR^<##A;B$-!1WS9S&ZVLT:&8DPC J(RK ?!-G0##O5:O/\H>@QVl
M3M/R]MSG/Y,AT 5%+6W 9KW6XEC1<$Y>A:W":3\O^-."WK O=8QIPM(Y?$Q0k
MX1>J,(4B2.%K8D@(&R9K%:D5UJA] ('\2NA,=LE S9EI<WSCDFHY:UJPF?9;j
MGG7<:D^#FK*6+?&A4>Q,5"]Z"HU^=.F8=T,(5]=IEH9BK>^\3N;QV=6 %O1Yi
M8SQC4K,6>Z=&M;'+N>E[>SO6U(9B]^:M:5SKFM>^!K:PB2W$OQT[X<E>=HJ5h
M*DO+N')+,Y@!##@3D(1WS"K80H'B5+9(0"J74P^[SZWJ0,XR3K0B1"B"$*IPg
MA*MQ&P[GY0Y8.S;B\64*#F$0Z35%(%<^@V \1FL97L\PA]!=6P0CN]I]LM8\f
MK[6@U "'WPO%[L*<[[SG>V!>/SG6)GF.QH8QJ[A1\  '[25 NO)$01R6!X,=e
M@!$$/ A;%/P>AQ6L@&X'PWO;Z%[P3K\:U'YG/*'%?>+(4\0J=#\O"?%0SE?Gd
M ?';ZQ[CA\P\.(!>90E NM)1P'3/ZY"'"6XZSV1O=3KW .O/1+W6Z<!UH'L=c
M[#<F>T*%_["? QX$)DC3%H!_MBZ<?N]6:2T+T\:NC[,@Y"/'W M/#H*4KQQAb
M+><8D_<S\YI+..%FY[G/V];3+PB=ZN 6']V.GO0T+%WV3X?8AMY?=;G??F3Ma
MQV\8\G7_%GQ&17SIAW9J=P9LQR+A 7<1HVDJ0'=VIWAZQW>$=WQ-1'B&=WIWz
M1QV+=WGVYGCYU@66%W^%9F*==8*8!W3[M'F=-U<>N#8Z-GJL9GIJHWKVQWJRy
M]WH14R'X1WO^AWM0HS(!*#T#R'Q30'Q]0'QZ1A&!EWQ^LWP%V'S/MSS2-W@<x
M!T$>9P,R<'UM07) L7W+XWT[P'(LXW+C)W,M0G.]<7XOE(#KIS4N"#W\%W]&w
M!R ZN'0O@W]0MW]3UW]7EW6DU76I18 V=C;$YX3&%X7*IX3.9QS0!P)92'TF
M,0->"(8?H7TNQ'UFB(9F)7XP1WYM:'X[A7XZIWY/&'2!B(?SIX?UQX<8XGGYu
M%W7\5WNC]G^EMV](:%A*N(C;QGY0B'R/6(53$(DR,HF5N(7_8BTST&;7EP/[t
M(E4)T&''A0*9]X)EP'GX-V);XX'=$X++DXW0 X.R]S6DEX+C9F0J(X=[R'I]s
MZ'I2!GMN(&-J-U<C,XBYAS"[UWLM\'O&F )D9X0K11UE4%H#B3 V0P=M=5 Ir
MPTO5!XW/N"^<6(V.=8WD.#7;&(-.YXTX>##AB(TBF)'FZ'GH&&Z&=F+LB##Nq
M&(OP.(OX.(\14X\1TX-#V%Y%F !'*&-)&) )J9,%:3,(:7<*608,*0<.>3"\p
M=&:S)! T4 .4\Y2Y5'(RTASWU0)600:C,4[GQ1IPL 5$T 4NP"?CA :X87=:o
M20?HM3PHD%[^I0)9@TV_(4]PF99K&14HX#9F.0=?0#1M,@<I8)6 %WA#P 1)n
MD!9D@01)8 14()#(9CQI9 9K%#9%4 1$4$=4<$=YM$<)!P=[^07J\1T[]C=Mm
MP )V69IZB1M]F0=_^37 H@>.9@9MV5]AY9B"]#BNXT(J<)K+HP(IA5Z6F"5/l
M&94U %%-495L<)59N95UB%YA\)5A.9:Z499G:1R\:35N^61PF9=:% 9TF0*\k
MB9>IR9=^242!F9R#"0*%>9A+D)B+V9A,")EJ=!!T9$=XI$=\]$*>J9JAF0>Cj
MB5ZFN96HN9_DR9KF23&P>46SZ61E8)M)M&P)MYL"VIN_V09I@TE^HR'W(R_?i
MHDHV$0,V,7*D!$#0@@:HU*'B,Q,S0 ,+5!0CRI0E9RTT0$$T<$&=P2XSR@)0h
M.6U/L7WE5 =Q)X'EN)&R=X:+! =O0(KX!8/WZ'1IDEP25A'[$1OC-$A>=(93g
M)&6DXY55)D]$TC"N\46?4R$=$P,M$ ,%XS11\492>A]4*H!R@*59RF\@X 9Uf
MT ;/)4^N$7-M)RP5!Z7&54([E6S%F(A3L +6,V['J#V*Q#)" #$=HWAVV(I[e
MJGQB61%!\*=%M&Z1-FGZE3&3.G0]-G+% Z-,)1 UL"4VX&:Z!$=KY!HE! 5Dd
M005ZE# P $IS:I1/=S*U\Z2;RC%25@9A*B!R,%Q!M%-^!*9FD$C_$4>P6G%?c
M !QD( <HX 9?(X6T086&"@)1X09= $*O.D?J>&*0]:-!2F=P*3X350180 6^b
MY@0/"*01B*X#%Z=9BJUCL 4,YS<%53SLHB\L8 /UPHG..D>R6A:U>ARW"@.Ya
M&C&-166^VC' ^ES#6D[&ZC#(.DC+^A3_P:[N*@7P^G;R*G<J(!N -0?::FJ(z
M.C:*N@(Q8(*0&:XE)#722JW6VC8F6U@HJX3<6J>1^!^+5+ SFSPU6ZW76JBFy
MUK/>*F%"2V(IV5GE"H$D^S5PT:,@X+'O&J_G.FHEJVKE9*0L@Z_ZFFVTT:^7x
M)!" DB":Q"T%5!$>6@,@*B[_PRYI^RXG6A'UDB[],RXR\$H/!*.64:,Z6A34w
MR 9CPI9YZ1Q>]#5X-1KIN9Z(.06*R9A?$Q5P*P-,,)!\,4T18S4X\U?-87]K
M )AM8[BE\0*U) ,TD+G:HQ_W(9LBP 5R( +P<W1(&0;2D9>%R#45YZ!Z:"FOu
MRWH@4 (TX# E8 -8,+S(J[S)2[QX,+PU0 3**[W#.P-DH!8E8+UJ 0*X=S#Mt
M!P=I0 99I[AGD +?.P9P, ?# 0=CT%X'@P+D:[[-.0=P,+[K4;X!" ?.<0?Ms
MA:,X,+@\"B"F*X)Y";_WR[@@$S$\0)B&&;F3VY@]>[FL:QR;2SJ>BU:@R1=Yr
M0KKP.R:HRTJK2W:N2P>P*[NTFS:V^R.YNY,S-I C#+O#6[S,.\/'V[PT\+PEq
M$+W36Q'9>[W5Z\/<Z[['\[WA:[^+>[[IN[[MFS(&?,3S6[^E>\#YN[]F!KC6p
M8@.48P-3.8;'(QLJ?) \&Q7M%U8D3%9D9QR+9 1&J46MHRQMP!J<\W;#.E8@o
MTL9XXZ5^DUSO]DRN(4+/:S6["S9>XV^&:G?=T\?;" (^(!</UVM2@'S$% 9Ln
M10=;@,AX,&ARLY($"IJA@@*2S$.5#%Z7/#)I:<3E&S:#HP7,1)1NL%YFL'RIm
M7 0%)3?!"0)8'+#&*5]=?+NY&\:[N$]D3,=M<,8RDL9K/"U'\RIPK%;E-,< l
M9C0E=,>:VG^5!B"6O&GSVXN$;&J&K&/7O,BYMD(0]\@F$,F3',I^C,GRMW$'k
ML\G]Z<GG;,E=0,K@%,6+B\I)H,H)V<IU8 :O[ 2Q/,OB<Z%6+! Y\(4A(8:=j
M";PDS'I<X :RJVDNE$U[UU?HZ57K]5]U#)-.^D</;<+$9X%;LSQB"P,F6'K'i
M)[:)>F*'"HE^MS4=6!'E9LT_QXJB2DP'FVL!903&Q$P!)#-V6@8H_+M?K+M;h
M1X>"G%HNS- P7,,TO+S$:[Q07;P?/;M"K)#-F5A7K9/S^T==)#( =- ;M(D1g
MY4(O[- 0O35T-M&J4M%>?5\8W<\:758<S3-?2@95?<())](B6-(G/=*..(4Kf
MW5DM;8Q_#0<QS<XT+8PV#7\X318Z_04\79E?4R) +49#G7J\?) LC"%+O1]-e
M#=6B;<-23=IYO=7MI]4I$X!>[1I@;:H  P,U,# QT$%OUJ6C)<H8&'-^K(&#d
MQ]O;&-,SK=F@S7IQT ,E0 8Z$,3 C0<#R=>-AV^?)L\O31&3][1#4-W8K'E$c
M:I*Y=]8B,+QD@'6YS7MT^(]*;7?@G=?QJ9],C=8@7<NU--NUW4&<6!$6>,VTb
MW-R^[7>6+-S& =['G=S+3=Z6_-P@B-2L9G"/1]TH?=TJF-TH?8/<S8W>#37@a
M+=[DW=GFI-[O';MIK=<2Y=[%#>+QS8P1)!1L-C S$%6MF@!B #(E=,&@J\&Cz
M^S4=?+JI&\)V-\"(V\2G#+\)W (((0>C\34+K)X-W)Z2^YZ5:Q$Q@+F:FP:<y
MRY:?F\&BR\$#_,&J.\$IC+L'V8_G[36?';SA[;PQ_+QION9KCN8\?,,Q;+S&x
MJ[T_O 0/3=[)4A'MYY5;0 5B298$"H#-R>=^+IWBI!!N<-4OM.?/"99_/IV!w
M_LO0P^?129:(WK])L>(QT.(!#.,R;N48'+H;C.-;ON,3+",^;C6)>\"E.^1%
M?N2/N^3N2;D1'.6G+L!4;L%M<^6B?N.EZ\&F7KM$#>;G#6.]6.8-?>9P[N9Hu
MSNS+#N=OCL,RG-QU7N=W/C)Y+NG.^96%#NA[*>A=V>C=/IV7GNV,#IV/+DZ1t
M?NZ.;NA?4.[6LAJM\1IKBS^IY$GWHD P\!$C2K>D,>]VR[:<%"XJJA$!\S^Ps
M+:/_6P,N3I6=F :PV6(03T1;8-(]^YH4_[)@"P(&@92.(R ;V;-D$ 8#@J""r
M:D8N%..0(_&P*:>+]$=6E#$=3T)L<'[Q9H&=JQ5*Z'<*/- "(MQ9JG@E,ZUIq
M8 <L8G.9,M+%1K1D,*THP'MVE[]L.:5P:0)J.1K#M09;@ (MP'MGV@5]CCVSp
MVD;M*019X*Z+FD]/O+_;#6-UI_;GQ;Y)[ +LNSS"LP41$Q4N#4"":P/V7=;Ho
M,?$L3_$6'Q48C[(:GZ4S__%MPGDB3_(3@_%1*F6?SEL3[_(L _-7Q/$L0O,Vn
M[T*+)!$10W/3_# .0P>I$;$!ED660DX@Z)7@ZT5['&^+E 21FL .:#3 >@=Am
MP#//53XEU 9U8+AIH+_V1_*T8SHVTV!)*D(.@U=MAT\WG^ YCXC<+"" 9UDLl
MR](\WX'/1+--3ZV\1]+*E_=A8]A#;3SX3?W+8_T Q_/'UW<_?W@I%O0@./26k
M8O1&+OT\)8+@[_10[YEP.+O7LW8>W'-[4\]-5;VK-R#RQ-;K>BG@ZX4]LS'Vj
M$)/90WLP2T9,,>'0]J '_8IZS4GNJ2^Z5V_NGOG;>PE/(-P &L ";L TNE$Fi
M06!8C@"VU]C??E-@5B&<[1I'UOWHWW!3>M"J: 7 J,#5>!%/$BTGT!A%/<]#h
MAP82$AN!28SOX %6PA$V7CV*""U ""0!*B XH  3V S6Y0DJL008,5# =A)(g
M;0/(I0"55T*2'.1B<@\,?L2[,7$:YL"&:EL6 2.P*#;3/QH(+/%WI:$.WJU.f
MLN]L@D8 )0BOH+&,=+%F8 "K<G@)H$\8/1=P!Q( :");[:L%E!;3@S#^PV Qe
M#I*P2%1",D Y-"']2@&=,"(4 2= !%Y 35DF+X">V!/CH ;R@B6\#7PIFZ1"d
M7 B:5 4*4"<L8+"P@-_T35B*NGLIST1:N8#&, )JR3"$ \9!#!0KH(3UY  =c
MB LA !M2HJ-A]&(&"/H-#4.;1*K[=QM@!AJ8#?4(+Q"KY]1_+%O(4RY&SV&Lb
M!]W!-DC(@?DJU4%I2(X<T B[1%F+A&]@$E;"2VAK: ,+,(6<, %X0E7!(D!Aa
M0!2%"8 4'L1-B H5HBIDA:[PF&R4(A +<PHMM(5Z@S^IBETH$BW$+Y0=P9 Az
M!@YBN%)8P#$T)\FPZ2W#!- ,62#]BH;3T&94PVM8$;)A3]R&):0;HCYY @[)y
M@#C$;2 C#YA#=,A6.H;%2E^APQTZ/G@81.8ASZB'O*._Y$/+,!I\B)RH=Q!!x
M"20=_1$#6!3_J '\[@^:A*[X&WY(P+-W!L1>P( ;8"[R%BQ)@8L0+0Z,5:70w
M)(=>1%-%X;Z!$<W#'8K?'# \V@.I]!&V4;5BRI!YC) Q,DK&R4@9*Z-EO(R6
MD8L9!=13&-F7C9L#J >&L QJHP(PHVD\C:@Q-4;&4H6VV(2; (MXL('LP7%1u
M ]"%6LP2N+!-[ 9X(?#N72%D>!O!+OXMI@0P&-Y>)%RM2L_5O:7W/8K6&I !t
MQ ST4950$1N\$\.(&"<@39P K14Q4-]5N$A7IIJAAU73-KK3=PJ"X0\%K($8s
ML'*.E'5T4TA*28E'LT(>Y9)W,@I?X_]1J^?8'EF&%DD(#B,^LB'^5Q'*$_?!r
M> I*9&VM,?!]@I:4,5!.,37T)P*YJSR,@2P)7V,W%1;#0Z$VY K8>!,2Z=@,q
M-Z4@NZ.$!(]P"(X #?#"1L""6)A5"6=KC('&UC'X@&5Y E^@"00!*+#Q7(-Cp
M"3;=\6BH/F'&;B3-L/)72<$XHJFE /A*3[W1C^H1.C*J%T)?J*.(O(X@(#OZo
MC>U8(O'+?V0#X1'>J$C)1)\PDV;"3^HO-GRF=P8EUV,*$'3MRYZ5+P0IF[HDn
MF1MJ?@0WI4D5("-[4YMDCWA28TV4R,0BI8*+/"14($:R+QIY6VYDCMR1/=(-m
M_$C2 <U*'Y'L5$?R;!%'6G(#',H-:'A 07+<@*$0 V[ P&J2,M)Y\$*9(1TPl
MD**<D3[@2Y*!+\!#J-R,&VBOTGG(2KW!*F]EWV%33M((]ANK\!P+H!($(?.Ik
M11H2&+GH%N4+ZHS<YU>^D#8PNMJB<$@?T2H]NLFLX\X^8PIXB<ZC#<2 <0(Hj
M4=Q/L P"ZZFT!5!9 _,.$(22<T.[!1XH.=B&P!*J;MY/1JRB?7*'<-HJ) ))i
MP D<@96T&\2)L5@>9X-P9+9(Z +&30<!9$=MI(D:!KG-WE_*V V#XP@\2BC0h
M :L4F+I2*6-OT)LY4!*(4O<(*2.EKZ" $R(%B, 5" M%8&0T@280X;Z V!@9g
M)F"8Q9\GL 2^!@!I"T.A+9S*X^1"H!MS_!M%*UZBM'G)])Q>O;R7I2=?+K9Bf
M%ZH<&PB  O\R8 Y,Q88P"N87.)A6(6$>@86Y&QQFQX13%?/&$"6,23@V9L>\e
M:V&**(G,-$$R6X#)U#$H4V_\D949%EPFS)29-'/<V$PI@#-UYHCAF3X3+](+d
MJ-0"&5Y?- F?\@M]2K)&-!5C$DF6AG)9(A(TPA@;E6K\G* S=/8 S:@"4(\[c
M"Q6A\86,1MTD.ENGZZR,K'%3JL ;\+]HYR,,E9 3!PP%VCDT=1F'N4@EA.NUb
M@-H1/L:'C% !W&DNX4<RD (XI%5 GO;Q.P$FQ!@7> D:$916BX:\SNW)/4DGa
/ZMDA /)\G('4J9M @ ( z
 y
end

evans@ditsyda.oz (Bruce Evans) (09/09/89)

In article <23502@louie.udel.EDU> I5110401%DBSTU1.BITNET@cornellc.cit.cornell.edu writes:
>... multiplications caused by the proc_addr() macro can be *totally avoided*
>... create an array of pointers to process descriptors on startup ...
>... division of two longs in the interrupt code ... to calculate proc number
>... By adding a new field to the process structure this can be avoided

These modifications are already in my 286 PM kernel, and so should be in
1.4b-PC. The old proc_addr() macro is better for constant proc numbers, so I
renamed it cproc_addr() and kept it for those.

I think my kernel gets used, but the code is not widely read. (?)
-- 
Bruce Evans		evans@ditsyda.oz.au