1.1 --- a/docs/wiki/Paging Wed Jun 22 17:48:29 2022 +0200
1.2 +++ b/docs/wiki/Paging Thu Jun 23 23:05:52 2022 +0200
1.3 @@ -180,6 +180,8 @@
1.4 Pages [label="Pages"];
1.5 Pages_note [shape=note,style=filled,fillcolor=gold,label="Reclaim and\nrecycle\nflexpage"];
1.6
1.7 + PageQueue_reserve_note [shape=note,style=filled,fillcolor=gold,label="Provides\nreserved\nflexpage"];
1.8 + PageQueue_reserve [label="PageQueue"];
1.9 Flexpage_reserve [label="Flexpage",shape=note];
1.10 Pages_reserve [label="Pages"];
1.11 Pages_reserve_note [shape=note,style=filled,fillcolor=gold,label="Reserve\nflexpage\nif available"];
1.12 @@ -191,10 +193,11 @@
1.13
1.14 PageQueue_note -> PageQueue [dir=none,style=dotted];
1.15 Pages -> Pages_note [dir=none,style=dotted];
1.16 + PageQueue_reserve_note -> PageQueue_reserve [dir=none,style=dotted];
1.17 Pages_reserve -> Pages_reserve_note [dir=none,style=dotted];
1.18 Pages_queue_note -> Pages_queue [dir=none,style=dotted];
1.19
1.20 - Pages_note -> Flexpage_reserve [dir=none,style=invis];
1.21 + Pages_note -> PageQueue_reserve_note [dir=none,style=invis];
1.22 Pages_reserve_note -> Pages_queue_note [dir=none,style=invis];
1.23 }
1.24
1.25 @@ -204,18 +207,36 @@
1.26 Flexpage2 [label="Flexpage",shape=note];
1.27 Flexpage2_note [shape=note,style=filled,fillcolor=gold,label="Reserved\nwhen obtained"];
1.28
1.29 - Flexpage2 -> Flexpage2_note [dir=none,style=dotted];
1.30 + Flexpage2_reserved [label="Flexpage",shape=note];
1.31 +
1.32 + AccessMap2 [label="AccessMap"];
1.33 + AccessMap2_note [shape=note,style=filled,fillcolor=gold,label="Records\nreserved\nflexpage"];
1.34 +
1.35 + Flexpage2_queue [label="Flexpage",shape=note];
1.36 +
1.37 + Flexpage2_note -> Flexpage2 [dir=none,style=dotted];
1.38 + AccessMap2 -> AccessMap2_note [dir=none,style=dotted];
1.39 +
1.40 + Flexpage2 -> Flexpage2_reserved [dir=none,style=invis];
1.41 }
1.42
1.43 /* Second page mapper activities. */
1.44
1.45 subgraph {
1.46 - rank=max;
1.47 + rank=same;
1.48
1.49 PageMapper2_note [shape=note,style=filled,fillcolor=gold,label="Obtain\nflexpage"];
1.50 PageMapper2 [label="PageMapper"];
1.51
1.52 + PageMapper2_record_note [shape=note,style=filled,fillcolor=gold,label="Record\nflexpage"];
1.53 + PageMapper2_record [label="PageMapper"];
1.54 +
1.55 + PageMapper2_queue_note [shape=note,style=filled,fillcolor=gold,label="Queue\nflexpage"];
1.56 + PageMapper2_queue [label="PageMapper"];
1.57 +
1.58 PageMapper2_note -> PageMapper2 [dir=none,style=dotted];
1.59 + PageMapper2_record_note -> PageMapper2_record [dir=none,style=dotted];
1.60 + PageMapper2_queue_note -> PageMapper2_queue [dir=none,style=dotted];
1.61 }
1.62
1.63 /* First pager dataflow. */
1.64 @@ -239,9 +260,10 @@
1.65
1.66 /* Flexpage retrieval from the queue. */
1.67
1.68 - Pages -> PageQueue [color="red"];
1.69 PageQueue -> Flexpage [color="red",dir=none];
1.70 Flexpage -> Pages [color="red"];
1.71 +
1.72 + PageQueue_reserve -> Flexpage_reserve [dir=none];
1.73 Flexpage_reserve -> Pages_reserve;
1.74
1.75 /* Flexpage removal from the access map. */
1.76 @@ -250,9 +272,15 @@
1.77
1.78 /* Second pager dataflow. */
1.79
1.80 - PageMapper2 -> Pages [color="red"];
1.81 + PageMapper2 -> Pages [color="red",label="flexpage"];
1.82 Pages -> Flexpage2 [color="red",dir=none];
1.83 Flexpage2 -> PageMapper2 [color="red"];
1.84 +
1.85 + PageMapper2_record -> Flexpage2_reserved [dir=none,label="insert"];
1.86 + Flexpage2_reserved -> AccessMap2;
1.87 +
1.88 + PageMapper2_queue -> Flexpage2_queue [dir=none];
1.89 + Flexpage2_queue -> Pages_queue [label="queue"];
1.90 }
1.91 }}}
1.92