From f94a4b92d98dc45f9ef00ac4a7e815fb9c154577 Mon Sep 17 00:00:00 2001 From: Cheng Jian Date: Fri, 16 Apr 2021 22:07:08 +0800 Subject: [PATCH] memory/buddy: __rmqueue_smallest --- .../04-buddy/04-alloc_page/README.md | 46 +- .../04-alloc_page/__rmqueue_fallback.png | Bin 0 -> 95589 bytes .../__rmqueue_smallest.excalidraw | 849 ++++++++++++++++++ 3 files changed, 891 insertions(+), 4 deletions(-) create mode 100755 study/kernel/02-memory/04-buddy/04-alloc_page/__rmqueue_fallback.png create mode 100755 study/kernel/02-memory/04-buddy/04-alloc_page/__rmqueue_smallest.excalidraw diff --git a/study/kernel/02-memory/04-buddy/04-alloc_page/README.md b/study/kernel/02-memory/04-buddy/04-alloc_page/README.md index 183f075..fa6e81d 100755 --- a/study/kernel/02-memory/04-buddy/04-alloc_page/README.md +++ b/study/kernel/02-memory/04-buddy/04-alloc_page/README.md @@ -945,12 +945,50 @@ static struct page *__rmqueue_pcplist(struct zone *zone, int migratetype, } ``` -### 3.4.3 ` __rmqueue` +* 如果 PCP list 是空的, 那么会通过 [`rmqueue_bulk`](https://elixir.bootlin.com/linux/v5.10/source/mm/page_alloc.c#L2880) 从 buddy 伙伴系统分配 pcp->batch 个页面出来. + +* 否则, PCP 中有页面, 则直接取一个页面出来. + +### 3.4.3 ` __rmqueue_smallest` ------- -### 3.4.4 `__rmqueue_smallest` +`__rmqueue` 主体是通过 `__rmqueue_smallest` 来向 buddy 伙伴系统中像切蛋糕一样, 切出一块内存出来的. + +```cpp +// https://elixir.bootlin.com/linux/v5.10/source/mm/page_alloc.c#L2303 +/* + * Go through the free lists for the given migratetype and remove + * the smallest available page from the freelists + */ +static __always_inline +struct page *__rmqueue_smallest(struct zone *zone, unsigned int order, + int migratetype) +{ + unsigned int current_order; + struct free_area *area; + struct page *page; + + /* Find a page of the appropriate size in the preferred list */ + for (current_order = order; current_order < MAX_ORDER; ++current_order) { + area = &(zone->free_area[current_order]); + page = get_page_from_free_area(area, migratetype); + if (!page) + continue; + del_page_from_free_list(page, zone, current_order); + expand(zone, page, order, current_order, migratetype); + set_pcppage_migratetype(page, migratetype); + return page; + } + + return NULL; +} +``` + + +![`__rmqueue_fallback` 流程](./__rmqueue_fallback.png) + +### 3.4.4 `__rmqueue_fallback` ------- - -### 3.4.5 __rmqueue_fallback \ No newline at end of file +如果前面的流程都分配失败了, 那么说明当前 ZONG 区域指定 MIGRATE_TYPE 中没有足够的空闲页来完成本次分配了. 那么内核此时将尝试 \ No newline at end of file diff --git a/study/kernel/02-memory/04-buddy/04-alloc_page/__rmqueue_fallback.png b/study/kernel/02-memory/04-buddy/04-alloc_page/__rmqueue_fallback.png new file mode 100755 index 0000000000000000000000000000000000000000..7d1cd5360eb4afa173c5a102a91cffb1d1f2ff53 GIT binary patch literal 95589 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 ?r^9)3iHm`~qWc*rc#` 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

30nL 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 z zpLB;5JR^K13|~{t7#jNZ$xNe`GsHLY*mv?&@34rjNF{Y&dOb>7ne+44*0YZ$zX zi6e?vlB@b~E?ar`tqZe=sp$d`G3YLBXJ_G#xHIMmh*<<{9mJY#%^ys9+I7u2p) zyt5vGc>A+|l<>r;T24rYe9V$;v}q$)0Mc~eNtgK70t>?uDC(>C5FpBb8PY6gZ{xX} zM|JYrPhqWT>P40H{;<`xw1IeS;^3};kJONpXlgz;BxRJU@Zvg-LB&qtM^D6p>oo@E zTVua|F}UWU8Jz-20#kC@J)91$H&4%%kUzg%XlV$xZc^?>9xPUlOqZI7JpehgbAMtz z9JAqb>&U$!zMax;7Qe@V zuAz}Iy>DYym2KLbam%@HT7UFW+FCPn^x3(Dp+2>37+zD*)IkW!qQqmNCz5>QeNr&3 zLGP+8Sk(2wkb<4|S$T(dJpZz^*x>28UhnnBoGwdRp7yu$tX}7^!m|@bf@{o`D;KZj z6kSpuS$P9urmn_3B+_H5?J;KtArnhyUGSqJ5>AEIdo*0|3r8hLe+vsh0JG~4{R_?qsg;7V}dRNe!tRHL&P>rj0# zR5@occY`2>-tj6DUx{gFVDSfvCKf}C@~e`Me~qe=U49VgGmcoeO>V|B3;=7%B{h@! z^BxCA_3Zth|I{{m1b$oSl)uFYqqpwwHiHyNpN5|vvcF#RwNXi(I?@VRBZQxFC+FX7 z!v_mYuQSFymxi;nq_R?8_`)}iH5E9qh?mAB!Ypiy?wf9t6QK%Z_gJ$Go2w~EI$Pw!;txM<>fNZ8Z}X*g}kwY^a7PcFe!2ZvVj@CZ?6Imtf0%~ZimG1gzI`@HD2urv+DY>;?)4RWYef9;-uYEX{`Nh* z+k0qlZ2w|eyxgtQm@`d&1zEVwP+_}hPg<#iC>Dc}lgZ)<8MgnF>=Y?CgU<6}ADbZP z!)jA_}EnT9Z<;>5b05-nI*LujTgqGrY1Ud(ezpI*}| zT_f0f7?!+6-I#D)F0hD>;(9|lFyHyXx)AZaUMWz*v*y@ZttPXnYQi3C!I5w^Y1%F{oABdP!Iz>x{}DdNr-U_=gAjMRCZJ$LW? zLo!C!Sfw-(wO6xF-DwBnG*R$gj+GkulFwF)8SU4TwuFrDQKh|wEmA(#G`YL7GdR6Q z(ZVo=Np#CgFFCQmK|P!TK%*#Jr$F-Vh4J@ibJzEpX@^gjA5d`6y#YdO3xCQb1l z{>yK(arG|WyBRM9gJ!S8Bz2khRQIMf_DeW#iDX{(mY!86 z7+9r_5OubkAvyid#KsJB6{qleaWx_WoUimz)CF7HCNZ>qTcVA6$Kh33jitRSEpE33 z=7?7?5l;^lc1ZOcy(p~w175Jfd06+%NBZ+7PSucxC)iFTrn1-GTw>3V)j$ zGLYfCMlY;{`z0_|SQi`rmsPP>MWmRpjbD(`-9_=z#g`gt%?%iA<%Y3ENq-nAI z)x5ZewL_uSbj<|7k1cc)Fgx`Q>5K`-ekvnp2B9=v_>B3R*h1ykZRaNQ&d8Mh@k*AX zI~Vwypn*)T1>gNdo^YMN89%=ZO-#(lLS}eW!r)jOI!5dF})iUjh*phQ$^%@Va(uD_%({# z+eHxd!%oDUcjbCdf-5i>2X-`D8{MUF2r}JOrk?8)7)6yV^R#6aoA)QnkmHQ4jzfJI z$11Z|?xeeYupMe`Jw4wGYhXA1x5B=~VvPHQmrbUA%Wob&>o#GqvvI%*sp&p9;2EF* zmOM~2z4Y>|;o0ULVatb%yAjLT-EKx-rxKgC_HxW>)lPacQV){>4a}FQxaB|3nf)%X zvEA%bMHxMt`sNHw9^BdP3d(&IL)?I6;hF+o!wyqGNPc93Q+_%})__zzpt{PtdGdFO z_IG`Kl>vA@qHmIym4hx(f0d5}l9^!6TAsN z#_s%nn0VHapdZVT0e0w=LD9!qiHJom#ksqhA(>ZGnH@Ylisn|tKKFUQLt}iu-h`#w zjWr&JQfJ9ZHDx1MYjh`^pxrgz)ge$VDu(%Ys*hrg`E+^h%w;vsk8Y7G00|3uH+R6d z3YS9hbqO^2705?7=~6{Jh(xw`VLgZ@0&>`qMJ2(clo2Ce&Dh(Ng<~ti@PcVTivAVt z)S%!FPh}aCvkdYONYCaN`@>($I?!bTJ#L>vy9dy#)XquL)A&OL(7N(_X4WEPFP z=|ml^$)^JP#UMMV3_9b)t@$a!zo{(m#s?}bXqdyRbZDwI3!U$imiE;w!m8$BouiW3r&>&H=VP{+E(XC7P zEft>!e(x&YfC<*|9e~E(ZhMlltY@v zhgKJ4s_(wp3=d`&ppH`r|0b8+Fl3$$+if2Xb^7HfxKxgh95)uK(JgrEDr5Mh?ZpoG z7LWd~e>`2J)9GDA>k`pwHt* z=pNPnAjR*bqD$bto~Wr0WWd-N|y$i*snUK<=-o8y@?< zrc`lnrq`?!j#7uhKdB#Pv2PDT2hKo?4wjZ#DrSX=UOeU~iJ4GyBWO~#bj`ZBiIj;#WBnY0?9{!OYsKET*PWfHrwR=1${!xu{gA} zB&bO#NMqbjqws_fQH6qk`q-u}wANf@@iLK^?8~t3W({*MoQekY1M04)yK_DR8-8#0 zc#5ei_<8LU*YY zoic^;>WknpFRYWq?>u{e6G>KMOtLqV!CESC0vO>c_TdRJXDKP{Y=(%QD|YeaXRDp zFK6}jlat>O1??a1+;5W4pE#_T^tUIEFsYFLLw@@A8z4ZtlS=&OXaD literal 0 HcmV?d00001 diff --git a/study/kernel/02-memory/04-buddy/04-alloc_page/__rmqueue_smallest.excalidraw b/study/kernel/02-memory/04-buddy/04-alloc_page/__rmqueue_smallest.excalidraw new file mode 100755 index 0000000..57b9a5c --- /dev/null +++ b/study/kernel/02-memory/04-buddy/04-alloc_page/__rmqueue_smallest.excalidraw @@ -0,0 +1,849 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 422, + "versionNonce": 1768024381, + "isDeleted": false, + "id": "ecl-R4U0938S-pLr9rcnO", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 496.5, + "y": -398.75, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 244.99999999999997, + "height": 35.000000000000014, + "seed": 2034558099, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "hC97PmiA9GpSyZPfCGdGv", + "3SxvWp5giaQFb8YaHyiTB", + "QN25t4_XOP7-HRxAuV7Y2", + "DhBK1onobgdtoteMzJ3RY", + "EVuGS3oXm7jYXCy8DsY2V", + "7-zXi5_a33f7uUIc7_j_9", + "OWrGRSWgDTVld8aCb9xUP", + "E-FoU4T3WQM9Nik2oNqPM" + ] + }, + { + "type": "text", + "version": 191, + "versionNonce": 764209075, + "isDeleted": false, + "id": "oUUBFejDTRBHWWkuwFoQw", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 506.5, + "y": -395.75, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 199, + "height": 27, + "seed": 1431806493, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [ + "QN25t4_XOP7-HRxAuV7Y2", + "VGI_QGiy6and7H_GNB7Pc", + "nGXxbhYzARGmuHcQu1X-m", + "da_QjUCCbuWHuwwdCnmce", + "3Z5N2bPTf1bVJLbbIiyt9", + "go0z08x204Flj3kcsqo3C" + ], + "fontSize": 20, + "fontFamily": 1, + "text": " __rmqueue_smallest", + "baseline": 20, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 738, + "versionNonce": 791394717, + "isDeleted": false, + "id": "EbDc6C8ufCSbZKUC70gKI", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 630, + "y": -226.25, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 290, + "height": 34.99999999999998, + "seed": 117496371, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "hC97PmiA9GpSyZPfCGdGv", + "3SxvWp5giaQFb8YaHyiTB" + ] + }, + { + "type": "text", + "version": 564, + "versionNonce": 1975253683, + "isDeleted": false, + "id": "RUCxE170I2EL-qcImvR-P", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 641, + "y": -223.25, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 256, + "height": 27, + "seed": 163010173, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [ + "EVuGS3oXm7jYXCy8DsY2V", + "_vUFgioABe191JEmcUjY2", + "q_mz5DSo6wG_4fphd9wjX" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "get_page_from_free_area", + "baseline": 20, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 899, + "versionNonce": 1344044541, + "isDeleted": false, + "id": "cSGZ20rNhSVIYG5p6O7Cs", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 546, + "y": -343.25, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 740, + "height": 23, + "seed": 283974611, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "7-zXi5_a33f7uUIc7_j_9" + ], + "fontSize": 16, + "fontFamily": 1, + "text": "从当前 order 开始遍历,当前 order 可能没有足够的页面时我们不得不从大 order 的页面池中切页面出来", + "baseline": 17, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 852, + "versionNonce": 1847968029, + "isDeleted": false, + "id": "r7bAEK9IpET2crUEtRCVK", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 632, + "y": -146.25, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 276, + "height": 35.00000000000003, + "seed": 350322397, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "hC97PmiA9GpSyZPfCGdGv", + "3SxvWp5giaQFb8YaHyiTB", + "zpjUFLxXP8i6UxY1iM2Tp" + ] + }, + { + "type": "text", + "version": 448, + "versionNonce": 972283357, + "isDeleted": false, + "id": "3x4r41_K5r69Yko2mvgb6", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 648, + "y": -143.25, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 229, + "height": 27, + "seed": 1126181235, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "BPvtJ4i7uXdRMiNM_nAFL", + "m2-2gfSFQsgKHJlzp6KqU", + "FgeP59vY1NQV90puDkYug", + "e327d1TRmieUKwM0YdTFP", + "9kYZC9Z5kbOeE4AbGBwcz" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "del_page_from_free_list", + "baseline": 20, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 1077, + "versionNonce": 216869363, + "isDeleted": false, + "id": "1BzNZstcH1RTORj_kupMS", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 632.5, + "y": -73.25, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 87, + "height": 37.00000000000002, + "seed": 493329213, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "hC97PmiA9GpSyZPfCGdGv", + "3SxvWp5giaQFb8YaHyiTB", + "YooWyMdEU0zQBm9l9Ja_9" + ] + }, + { + "type": "text", + "version": 564, + "versionNonce": 2084139923, + "isDeleted": false, + "id": "flCK9Dzr2EUWqbHZNSLcq", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 642.5, + "y": -64.75, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 61, + "height": 22, + "seed": 2074815389, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "8wHI9J5ManjEE62c5Xi8d", + "YooWyMdEU0zQBm9l9Ja_9", + "qgiKz46xXy9aGJWX0h2iq" + ], + "fontSize": 16, + "fontFamily": 1, + "text": "expand", + "baseline": 16, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 490, + "versionNonce": 351765277, + "isDeleted": false, + "id": "q_mz5DSo6wG_4fphd9wjX", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 532.5, + "y": -205.75, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 100, + "height": 0.84960386043565, + "seed": 1218750643, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": null, + "endBinding": { + "elementId": "RUCxE170I2EL-qcImvR-P", + "focus": -0.41194968553458894, + "gap": 8.5 + }, + "points": [ + [ + 0, + 0 + ], + [ + 100, + 0.84960386043565 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 353, + "versionNonce": 1823676285, + "isDeleted": false, + "id": "bGOiUi-JA1ibR-B1uYYEI", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 527.5, + "y": -81.75, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 0, + "height": 0, + "seed": 974330451, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "startBinding": null, + "endBinding": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 298, + "versionNonce": 1028254419, + "isDeleted": false, + "id": "wC8LV4QWbUA8zyl8vk0yk", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 522.5, + "y": -176.75, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 0, + "height": 0, + "seed": 2013309021, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "startBinding": null, + "endBinding": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 769, + "versionNonce": 79503325, + "isDeleted": false, + "id": "YooWyMdEU0zQBm9l9Ja_9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 542.5, + "y": -53.75, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 90, + "height": 2.1792806081924425, + "seed": 67262451, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "startBinding": null, + "endBinding": { + "elementId": "flCK9Dzr2EUWqbHZNSLcq", + "focus": -0.2691951896392229, + "gap": 10 + }, + "points": [ + [ + 0, + 0 + ], + [ + 90, + 2.1792806081924425 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 1043, + "versionNonce": 1564067987, + "isDeleted": false, + "id": "4hLCSLTiHUath35OXyh2c", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 640, + "y": -96.75, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 623, + "height": 23, + "seed": 809500317, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 16, + "fontFamily": 1, + "text": "当取出的 current_order > order 的时候,我们需要将页面切开,多余部分放回到buddy", + "baseline": 17, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 1143, + "versionNonce": 216642269, + "isDeleted": false, + "id": "TY22LtJ7_XK182EFhX0CZ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 633, + "y": 9.5, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 275.99999999999994, + "height": 41.00000000000002, + "seed": 1623062013, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "hC97PmiA9GpSyZPfCGdGv", + "3SxvWp5giaQFb8YaHyiTB" + ] + }, + { + "id": "3zXu1dctYoXmKHCIyyWjP", + "type": "text", + "x": 645, + "y": 18, + "width": 261, + "height": 27, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1367433533, + "version": 254, + "versionNonce": 1441084787, + "isDeleted": false, + "boundElementIds": [ + "czWsi9oqkewLtN03iXp90" + ], + "text": "set_pcppage_migratetype", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 20 + }, + { + "type": "arrow", + "version": 806, + "versionNonce": 1313427261, + "isDeleted": false, + "id": "czWsi9oqkewLtN03iXp90", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 543, + "y": 29.910359695903765, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 90, + "height": 2.1792806081924425, + "seed": 458541021, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "startBinding": null, + "endBinding": { + "elementId": "3zXu1dctYoXmKHCIyyWjP", + "focus": -0.24250770649524978, + "gap": 12 + }, + "points": [ + [ + 0, + 0 + ], + [ + 90, + 2.1792806081924425 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "rectangle", + "version": 814, + "versionNonce": 1228347315, + "isDeleted": false, + "id": "ufkNs7wjkbdGLoOWdkbZ_", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 534, + "y": -309.5, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "width": 758.0000000000001, + "height": 42.00000000000002, + "seed": 255891645, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "hC97PmiA9GpSyZPfCGdGv", + "3SxvWp5giaQFb8YaHyiTB", + "da_QjUCCbuWHuwwdCnmce", + "_spanIrdskZTqTknwLUZa" + ] + }, + { + "id": "fyNDIVXLx5KiqGR5Oi5lf", + "type": "text", + "x": 566, + "y": -304, + "width": 702, + "height": 27, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1256279539, + "version": 88, + "versionNonce": 542039133, + "isDeleted": false, + "boundElementIds": null, + "text": "for (current_order = order; current_order < MAX_ORDER; ++current_order)", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 20 + }, + { + "id": "h8I9tQdbqfNzMmxw7lnhp", + "type": "text", + "x": 631, + "y": -252, + "width": 417, + "height": 23, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 741539123, + "version": 134, + "versionNonce": 840519699, + "isDeleted": false, + "boundElementIds": null, + "text": "取出当前 current_order 对应 migrate_type 的第一个页面", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 17 + }, + { + "id": "zpjUFLxXP8i6UxY1iM2Tp", + "type": "arrow", + "x": 537, + "y": -125, + "width": 95, + "height": 0, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1587378707, + "version": 25, + "versionNonce": 1778537875, + "isDeleted": false, + "boundElementIds": null, + "points": [ + [ + 0, + 0 + ], + [ + 95, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "r7bAEK9IpET2crUEtRCVK", + "focus": -0.2142857142857141, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "_zVdKPYq9iRaujS6cmQts", + "type": "text", + "x": 629, + "y": -169.5, + "width": 244, + "height": 23, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1155363859, + "version": 179, + "versionNonce": 129555133, + "isDeleted": false, + "boundElementIds": null, + "text": "将取出的页面从 free_area 中移除", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 17 + }, + { + "type": "text", + "version": 1288, + "versionNonce": 1284303379, + "isDeleted": false, + "id": "dlNnMK5bKtj4P5dMwnfo6", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 641, + "y": -17.5, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 558, + "height": 23, + "seed": 1065684861, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 16, + "fontFamily": 1, + "text": "fallback 情况下,会从其他 migrate_type 窃取的内存,migrate_type 要设置", + "baseline": 17, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "id": "D7MDS4Pm1KTO2tvR1_tVP", + "type": "line", + "x": 534, + "y": -268, + "width": 12, + "height": 299, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1923977555, + "version": 75, + "versionNonce": 89117043, + "isDeleted": false, + "boundElementIds": null, + "points": [ + [ + 0, + 0 + ], + [ + 12, + 299 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "go0z08x204Flj3kcsqo3C", + "type": "arrow", + "x": 505, + "y": -365, + "width": 32, + "height": 81, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 822759603, + "version": 48, + "versionNonce": 2080144541, + "isDeleted": false, + "boundElementIds": null, + "points": [ + [ + 0, + 0 + ], + [ + 6, + 81 + ], + [ + 32, + 80 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "oUUBFejDTRBHWWkuwFoQw", + "focus": 1.017689331122167, + "gap": 3.75 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + } +} \ No newline at end of file