From 977343de2ed0eff41356f4ab27746c7712b5f008 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Sat, 22 Dec 2018 20:37:18 +0100 Subject: [PATCH] Fix a small error in the RO mapping (#9) The error would cause one page too much to be marked as read only. Instead, calculate the appropriate page table indices for the read-only region together with a comment explaining the subtraction by one. --- 0C_virtual_memory/kernel8 | Bin 72848 -> 71376 bytes 0C_virtual_memory/src/mmu.rs | 10 +++++++--- 0D_cache_performance/kernel8 | Bin 72560 -> 72016 bytes 0D_cache_performance/src/mmu.rs | 10 +++++++--- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/0C_virtual_memory/kernel8 b/0C_virtual_memory/kernel8 index f65f0bab221482b7443dd98b5ae23a74ae3cc268..27b39c2dfa4d85edef7ef2d037bb5d2b5d6816f0 100755 GIT binary patch delta 2407 zcmai$Yitx%6vywG-EFt6Ez_5~?XGOgvzD;T%+B)*6buT4@TeF;K{~H(o4)ANVyxQ| zF$xKG5xl4bj5G#IniRyu8jRovMUA998quH@!xvKs4Dch4z)9vP<}&55mD! zfRg$C@jG?ny%+pszHzv>I`_Tc7#{V(94N&1d=Pnb8=#Z7A@7?=-uj8p0c|*+OCRec zbHSaSi`7)miE~h}JBP~IeG@OufWQ;KPEH1L5gHyM+A|R9A9}F*;)EwMc->RP-6U+t zht4aD&>cmi@KYLaVzZ}p)hlbf@#VZ}&dufHrf zmgPNt2ajez#r_IdSN)W4%2z3HJIswZ7RD2KM z2*~&?3TDG1{3!(=0)<;W5TO1*c$Wt%;Wlpdlg9~!&v}4@pK!U4JYGh))Jv@2rmSBg z{G69qKS^0nB0OkWKd`NE1mEyN4BoVj(2o@#EGXHD(7w+o)G+Q;`D$s^NO7_6$pr2p z?Zx*qU) ze14e`;YRULCWMX4bCWwVQjuSfNZaeyyp&hwBitFnaxF!)quR0+df#m;UpGIwEHf4J z+hH{FF|k{!S3QN5GbbGlxgw?EiEzVsp&uqHvaW{5R-xYNy7BOspGak+;kNAj@Yu2L z-s+sH@Yr=vF6U3qPU5O87{_!7yf{ol%@%|xv@wfB{A+0TJ%zfa@LHRD$f-^DZ*+NC zI&Z~E8UoOT`|=^6zE8XWk!aV8w!;wTB{fihDo`qVGwFmi4iOI2Kh@1lVf3@Z-RgLU z|A<*D+g*D~wAvKV%aC4Ej;#*pE|tz{had2!^JksvT>k;5x-ws?YS+JxN|muD#S8vU zOx{y_6k{la5WZ9ZMG4Y%GAJ}SrNM6FPfg*e##89h6rO54h4Qk~i+;>m49ZOBPE%&1 zqyBWm3KBq(-Ejks0{*%H)?~R|9LD8^Fh9%HJ&V^D!XmhW`v@&}>9r}MZg3EPMZ8Ob zPVrUt;t_g^bj-?m4d)j@VAB;R+AZvRVlE)&VTT8uu$|-tS^TWSiyXd-Y!podrykBX za37H`=^^`Kg}Ezt)9k>n1D z>$rQ%HwLuo=+ z6+t#sL(w_G5P0K1ijb!lQ;^=$)?s#URim7?y|bZ(dEROC^gM<-TJ(mkZDwtKdxzQ9 z9`*A=m(uhCqvQMl1oJqvu0vv^Mq7l%QUEww=OsZDH8vh+B}LOTygdLRTH-`8#+yuB z(e)UsFnAyUD`}HgMNLt8#V}&JV95BjARG)DoW^RJsl_xy&?H7(Zfz7BlW;N!3hpX_ zEwaWbj3!8$BuGpwMz&(gR`T`D^&PBK$C<=a=S;(l8@jyL4I3jM?0|!g2Baj zQkJ2}lFoBDrxZd7L6&4yU?onM43ls*#xP2ZlXXQ>4T0mMY_zelt0}68F_vW&QD9iI zQju3=0jbR`&C&lA;Qm{H>@x(RlvX%XRV9+y&_vTPbi42pcUg+U@NAqj;)bTGCdVwt z1EtW2^FlBSHexmei?ZCGnvJ+V1WPD78xMwHaWS2p`j)I9uc0-pzeZ8~AOs62c?PZw Q!{V&?jFig&ZVf}^FH}w<;{X5v delta 2456 zcmai0Yitx%6uxJ6+wQisoo&0_zHnP8v?;jE+?m;#H3GFr(h?zU(H~WkGCL1iT3Y)6 zi-~LnLP(6-CDxk|1cJmMrU^t6=^p|AsL>w{v?fLpikhGn%EOp67^ru4XM}CGdXstF z?>paj&bf1Eb|=Q%BjfIoT4tgwUKd{G$wrCcToHoA+&X7kckKE7$LBrIGw6d#R5?iw z0yLL02o(h@T~psM_2YrJf?EqIJI|mlmHY(|WW3B5#SAn6TqJES_!!3>(UbajQmr)ac#@4MsX5CO%)=2pq)a+@#nDPxka0cKqX%YPzAp0_?zIqY; zGeEww^u9&(IY9CMN#5qZg*nPt0YIWTK9fUd)D~*dX2Z)_YKksPw6^H*pVW z1XA&RHZHnS@gM1X!Z3gwyo1iIk>yI_j(-R3*c#y^Uhr>%(>8H{ypRonrlW}{1~q$A z^PI5po&~tm$FYpm_|pV(AfQfC86cXo(x%yj5Bk!bEYFc`v#a=<;=nvf|4cF*t<6Z{ zPI}SCb4be)2*jMKPc5jS zno`#8rQTkeSFD|3$w*5c1llHTwNs}-A4-9h+{R06nU6jJ3%_jRMK*qm;w&{ptmBX* z?vX3hzBEQVv1HCdI6()=eTyEUG;8ex&LNWOqogVyw!|bXY90EUk!Q6XyF(o6GWvUr zZY7ig^XXxn9v0HWBB~w=@zyDECnclG7v_>swI0IONgzMvLy+ZoIU<@ohXt%@;jluo zS*XF9Bw<4_xu_{eOifcarcWBSjA%YRB#|>LEQ>`HQ&o9`4-1?giDF|Bot)lINe@Sm z*4sa547IBvzH86x+|GecdpQ^4!6YG|!CtMaz2Df;IWTDS4}|o{o`D`+h>#W^l;o)q zB@*r2J&-WLtO@ zin=UFrp`slr9ub!tn4-w@sz?_}R~6kN zgRFqVvWzuR6?K8fMcv8m{Cr_LR8} zBHO!4*tKi7XlK%uh=k2(gr`^ClvOfY2<0*AhH*qwbWzX+laqDPP>rap3x*&WJXS({ zsJna5t`IMXVMXM*u#D-(;6yr;klNGR6Z&5V{2vbFmm=u0elIGane_Q#jo0}YH ro_end { + let mem_attr = if j < ro_first_page_index || j > ro_last_page_index { STAGE1_DESCRIPTOR::AP::RW_EL1 + STAGE1_DESCRIPTOR::XN::True } else { STAGE1_DESCRIPTOR::AP::RO_EL1 + STAGE1_DESCRIPTOR::XN::False diff --git a/0D_cache_performance/kernel8 b/0D_cache_performance/kernel8 index 6c23ac80e7292d9fd643913151a852164980742f..5d70db03b04ad37467bd4243d131fd8fe14339c6 100755 GIT binary patch delta 2843 zcmZ{mdu&tZ6~Mo9Z4=vx!Q|;U0ViE3uQt8DzP{I2lR}_H1yqRYRAXwh65oeO6v`uy zsVZzX-J@)6))dqm3 zHtpMAiDb?~I&QMf1--YRf7RAsj%02+LIu`N?6xCxZd2}yS?@2u6Q6ffDD7KmMNu`7RDOve|9r@%MgpXvG6F&E45zUr52!{2*j8|RyEJKcjD z0XFz|zxC~_yXI1--ED!a$9Z`P`v4xooD-gC|2@||x0)^~bYlMyo&Tv&nn zP8WnA|DNH3M*-f(nN{#6d<*wh!582J9;_gqtht9LhGmm9VO zyGZ}1GJPZIV}LKZK?rVL!G8nbZ%zN;3jXzgwI1@XTEQOxpY_0&=6}$=R?5GKKk`7N z`BPF?D*rnE)dO3buaf$Mvg#YC`d?$%3$Ma7e(0rEOyZwS@qP4ElNiT`P4P{9(iF#W z%oM};x+wh0E^b`B>=N3O9Wgf6>pC)eFtS8;yC%fl*X_7gbT=S;Qn`&6= z>)~%VvkYYg@DDpHIiDyIZq&96rH)h0nYOpI9CVT=pFuN9c*m3!--{XcDMoDUJsAJ03NG{ zrp>lh@i2_NPOYh>opRYMYZDJdirNs;)Sl_NzfV~Nqx!saHLTh!d7%BFHf%yq_ap%K>gYY8P9 z(-XR)2~j;N>MPWtu+byh(1Bs&;NZxpF+9>KM!%{&_X4k3w?O#?Hk=qaIv6>i9yv1F zDHsEzGA|#((@hZbYoZ*LBsH8&hGj)nRs3TUwD@H~k|LtPClyVLgcTlL0oc9P5EGKB zBt%8mBU)6C?Zh7hV4Yu6!ip+LQGwT$XhKckM*&#xR|F%GkRv>=tCFGX8r}~;$RCaB zLPVs{x)PH$QNRbA$ySRANm-X%;E`p{rrmSNxSe>N1~_ b;(xUfydH$DTw5J_TcC^ESBHCA;KBa_%15Es delta 2836 zcmZ{m3v3hj8NmPFos&3DLYy?l38dI*S%E-#0kgMw;g*IbI01Uox!_~G_cZTOU9t|YDr|~og^VeN27QJ6U4>=Zv|>@x2j zn+*Mlp0_?COsczWOJ!_R+Q>o|4I>2J;BFb~UO)aBkAy)fD_B4)4eJp?kx=W0RCU1S3&{`AT|MN&gF5pOdm*^1c%DzLJ5y zG{;$tD${IW59c}4Qky^UHih0( zZpLGDz0v!?=zrGz`N$Z>!mBP=<+z_b@xD6nr>kiU2RSwn zD;6I&@}#-Qc*mRMPq_<&T=sdgEam^Nk~N;cthrO%P3-3FB9{15!R%d@?M~u`&FW$i z|9vnr-b*!bl+)+u^Lyq+#yw4r-V0RYAFX_QxCnk$2W|5T1iv6ypp9l5&-GOG{sVAM zJuJW+4{O`(NPnRUy}Nw9C&{U3M8YNq_~6((f&*3p^x=*w_%#Hvts3rzd-48icmo(t zRfCti#n4p)o%60xp)=(>&u~o*i10bS?j-Y186Ggq&&*=}9>aec=D#z|PcZCsLTB4= zW-)&qH#mF)-7k=Y}m*M-Esiij7;&DSff_X!%z?+6p z@J<(rW%z(0?nccJ^Y8^jG~rQ0IPoJF_;6W0$f}Q4%s4G3X)~U$VdA4~BSqOQ$#vHdQpA@OC4((sr|(D`MNtrYpGJELL#4mK(*lbY2PIusrI;oKw1k?}l!s>y6vUt00ZY;|b{sO22(0f1YeJS@5Y3xDZOc&V zSs~Of2nkV&C3IN|Clo0r&5}hmBFV;AsqkQBE#2ni!)$14VxTXjJ-uOYNJ|ZNg|~|- zB_(aN)`k2YR9-w~0nD9ad zayaFM<+b)voWmup(9JP7Zfu1W9_BV*wn&xvVi ro_end { + let mem_attr = if j < ro_first_page_index || j > ro_last_page_index { STAGE1_DESCRIPTOR::AP::RW_EL1 + STAGE1_DESCRIPTOR::XN::True } else { STAGE1_DESCRIPTOR::AP::RO_EL1 + STAGE1_DESCRIPTOR::XN::False