linux/Documentation/memory-hotplug.txt
<<
> 8" /spav4. 8" /form4. 8" a > 8" href="../linux+v3.9.7/Documentae="v/memory-hotplug.txt">> 8" img src="../.stae=c/gfx/right.png" alt=">>">> /spav4.> spav class="lxr_search">> > 8" input typ hidden" nam navtarget" v> ">> 8" input typ text" nam search" id search">> 8" butt typ submit">Search spav class="lxr_prefs"4. 8" a href="+prefs?return=Documentae="v/memory-hotplug.txt"> 8" onclick="return ajax_prefs();">> 8"Prefs. 8" /a>> /spav4. 8" " /div4. 8" " form ace="v="ajax+*" method="post" onsubmit="return false;">> input typ hidden" nam ajax_lookup" id ajax_lookup" v> ">> 8" " /form4.> 8" " div class="headingbott m">" "1 /a>============== " "2 /a>Memory Hotplug " "3 /a>============== " "4 /a>>" "5 /a>Created: Jul 28 2007>" "6 /a>Add descri > of notifier of memory hotplug" "Oct 11 2007>" "7 /a>>" "8 /a>This document is about memory hotplug"including how-to-use and current staeus.>" "9 /a>Because Memory Hotplug is still under development, contents of this text will>" lue=a>be changed often.>" 11 /a>>" 12 /a>1. Introduce="v>" 13 /a>" 1.1 purpose of memory hotplug>" 14 /a>" 1.2. Phases of memory hotplug>" 15 /a>" 1.3. Unit of Memory online/offline operae="v>" 16 /a>2. Kernel Configurae="v>" 17 /a>3. sysfs files for memory hotplug>" 18 /a>4. Physical memory hot-add phase>" 19 /a>" ion Hardware(Firmware) Support " 20 /a>" io2 Notify memory hot-add event by hand " 21 /a>5. Logical Memory hot-add phase>" 22 /a>" 5.1. Staee of memory>" 23 /a>" 5.2. How to online memory>" 24 /a>6. Logical memory remove>" 25 /a>" <1 Memory offline and ZONE_MOVABLE>" 26 /a>" <2. How to offline memory>" 27 /a>7. Physical memory remove>" 28 /a>8. Memory hotplug event notifier>" 29 /a>9. Future Work List " 30 /a>>" 31 /a>Note(1): x86_64's has special implementae="v for memory hotplug.>" 32 /a>" This text does not describe it.>" 33 /a>Note(2): This text assumes that sysfs is mounted at /sys.>" 34 /a>>" 35 /a>>" 36 /a>--------------->" 37 /a>1. Introduce="v>" 38 /a>--------------->" 39 /a>>" 40 /a>1.1 purpose of memory hotplug>" 41 /a>------------>" 42 /a>Memory Hotplug allows users to increase/decrease the amount of memory.>" 43 /a>Generally, there are two purposes.>" 44 /a>>" 45 /a>(A) For changing the amount of memory.>" 46 /a>" This is to allow a feature like capacity on demand.>" 47 /a>(B) For installing/removing DIMMs or NUMA-nodes physically.>" 48 /a>" This is to exchange DIMMs/NUMA-nodes, reduce power consum > , etc.>" 49 /a>>" 50 /a>(A) is required by highly virtualized environments and (B) is required by>" 51 /a>hardware which supports memory power management.>" 52 /a>>" 53 /a>Linux memory hotplug"is designed for both purpose.>" 54 /a>>" 55 /a>>" 56 /a>1.2. Phases of memory hotplug>" 57 /a>--------------->" 58 /a>There are 2 phases in Memory Hotplug.>" 59 /a>" 1) Physical Memory Hotplug phase>" 60 /a>" 2) Logical Memory Hotplug phase.>" 61 /a>>" 62 /a>The First phase is to communicate hardware/firmware and make/erase>" 63 /a>environment for hotplugged memory. Basically, this phase is necessary>" 64 /a>for the purpose (B), but this is good phase for communicat="v betweev>" 65 /a>highly virtualized environments too.>" 66 /a>>" 67 /a>When memory is hotplugged, the kernel recognizes new memory, makes new memory>" 68 /a>management tables, and makes sysfs files for new memory's operae="v.>" 69 /a>>" 70 /a>If firmware supports notificat="v of connec > of new memory to OS,>" 71 /a>this phase is triggered automae=cally. ACPI can notify this event. If not,>" 72 /a>"probe" operae="v by system administrae="v is used instead.>" 73 /a>(see Sec > 4.).>" 74 /a>>" 75 /a>Logical Memory Hotplug phase is to change memory staee into>" 76 /a>available/unavailable for users. Amount of memory from user's view is>" 77 /a>changed by this phase. The kernel makes all memory iv it as free pages>" 78 /a>when a memory range is available.>" 79 /a>>" 80 /a>In this document, this phase is described as online/offline.>" 81 /a>>" 82 /a>Logical Memory Hotplug phase is triggered by wriee of sysfs file by system>" 83 /a>administraeor. For the hot-add case, it must be executed after Physical Hotplug " 84 /a>phase by hand.>" 85 /a>(However, if you wriees udev's hotplug scri s for memory hotplug, these>" 86 /a>"phases can be execute iv seamless way.)>" 87 /a>>" 88 /a>>" 89 /a>1.3. Unit of Memory online/offline operae="v>" 90 /a>------------>" 91 /a>Memory hotplug uses SPARSEMEM memory model. SPARSEMEM divides the whole memory>" 92 /a>into chunks of the sam size. The chunk is called a "sec > ". The size of>" 93 /a>a sec > is archieecture dependent. For example, power uses 16MiB, ia64 uses>" 94 /a>1GiB. The unit of online/offline operae="v is "one sec > ". (see Sec > 3.)>" 95 /a>>" 96 /a>To determine the size of sec > s, please read this file:>" 97 /a>>" 98 /a>/sys/devices/system/memory/block_size_bytes>" 99 /a>>"100 /a>This file shows the size of sec > s iv byte.>"101 /a>>"102 /a>----------------------->"103 /a>2. Kernel Configurae="v>"104 /a>----------------------->"105 /a>To use memory hotplug"feature, kernel must be compiled with following>"106 /a>config lue="vs.>"107 /a>>"108 /a>- For all memory hotplug>"109 /a>" Memory model -> Sparse Memory (CONFIG_SPARSEMEM)>"110 /a>" Allow for memory hot-add (CONFIG_MEMORY_HOTPLUG)>"111 /a>>"112 /a>- To enable memory removal, the followings are also necessary>"113 /a>" Allow for memory hot remove (CONFIG_MEMORY_HOTREMOVE)>"114 /a>" Page Migrae="v (CONFIG_MIGRATION)>"115 /a>>"116 /a>- For ACPI memory hotplug, the followings are also necessary>"117 /a>" Memory hotplug"(under ACPI Support menu) (CONFIG_ACPI_HOTPLUG_MEMORY)>"118 /a>" This > can be kernel module.>"119 /a>>"120 /a>- As a related configurae="v, if your box has a feature of NUMA-node hotplug>"121 /a> via ACPI, then this > is necessary too.>"122 /a>" ACPI0004,PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)>"123 /a>" (CONFIG_ACPI_CONTAINER).>"124 /a>" This > can be kernel module too.>"125 /a>>"126 /a>-------------------------------->"127 /a>4 sysfs files for memory hotplug>"128 /a>-------------------------------->"129 /a>All sec > s have their device ivformae="v in sysfs. Each sec > is part of>"130 /a>a memory block under /sys/devices/system/memory as>"131 /a>>"132 /a>/sys/devices/system/memory/memoryXXX>"133 /a>(XXX is the sec > id.)>"134 /a>>"135 /a>Now, XXX is defined as (start_address_of_sec > / sec > _size) of the first>"136 /a>sec > contained in the memory block. The files 'phys_index' and "137 /a>'end_phys_index' under each direc ory report the beginning and end sec > id's "138 /a>for the memory block covered by the sysfs direc ory. It is expec ed that all>"139 /a>memory sec > s iv this range are present and no memory holes exist in the>"140 /a>range. Currently there is no way to determine if there is a memory hole, but>"141 /a>the existence of one should not affec the hotplug"capabilities of the memory>"142 /a>block.>"143 /a>>"144 /a>For example, assume 1GiB sec > size. A device for a memory starting at>"145 /a>0x100000000 is /sys/device/system/memory/memory4>"146 /a>(0x100000000 / 1Gib = 4)>"147 /a>This device covers address range [0x100000000 ... 0x140000000)>"148 /a>>"149 /a>Under each sec > , you can see 4 or 5 files, the end_phys_index file being>"150 /a>a recent addi > and not present older kernels.>"151 /a>>"152 /a>/sys/devices/system/memory/memoryXXX/start_phys_index>"153 /a>/sys/devices/system/memory/memoryXXX/end_phys_index>"154 /a>/sys/devices/system/memory/memoryXXX/phys_device>"155 /a>/sys/devices/system/memory/memoryXXX/state>"156 /a>/sys/devices/system/memory/memoryXXX/removable>"157 /a>>"158 /a>'phys_index' : read-only and contains sec > id of the first sec > >"159 /a>" in the memory block, sam as XXX.>"160 /a>'end_phys_index' : read-only and contains sec > id of the last sec > >"161 /a>" in the memory block.>"162 /a>'state' : read-wriee>"163 /a>" at read: contains online/offline staee of memory.>"164 /a>" at wriee: user can specify "online_kernel",>"165 /a>" "online_movable", "online", "offline" command "166 /a>" which will be performed o al sec > s iv the block.>"167 /a>'phys_device' : read-only: designed to show the nam of physical memory>"168 /a>" device. This is not well implemented now.>"169 /a>'removable' : read-only: contains av integer v> indicat=ng>"170 /a>" whether the memory block is removable or not>"171 /a>" removable. A v> of 1 indicates that the memory>"172 /a>" block is removable and a v> of 0 indicates that>"173 /a>" it is not removable. A memory block is removable only if>"174 /a>" every sec > iv the block is removable.>"175 /a>>"176 /a>NOTE:>"177 /a>" These direc ories/files appear after physical memory hotplug phase.>"178 /a>>"179 /a>If CONFIG_NUMA is enabled the memoryXXX/ direc ories can also be accessed "180 /a>via symbolic links located iv the /sys/devices/system/node/node* direc ories.>"181 /a>>"182 /a>For example:>"183 /a>/sys/devices/system/node/node0/memory9 -> ../../memory/memory9>"184 /a>>"185 /a>A backlink will also be created:>"186 /a>/sys/devices/system/memory/memory9/node0 -> ../../node/node0>"187 /a>>"188 /a>-------------------------------->"189 /a>4. Physical memory hot-add phase>"190 /a>-------------------------------->"191 /a>>"192 /a>ion Hardware(Firmware) Support "193 /a>------------>"194 /a>On x86_64/ia64 platform, memory hotplug by ACPI is supported.>"195 /a>>"196 /a>In general, the firmware (ACPI) which supports memory hotplug defines "197 /a>memory class objec of _HID "PNP0C80". When a notify is asserted to PNP0C80,>"198 /a>Linux's ACPI handler does hot-add memory to the system and calls a hotplug udev>"199 /a>scri . This will be done automae=cally.>"200 /a>>"201 /a>But scri s for memory hotplug are not contained in generic udev package(now).>"202 /a>You may have to wriee it by yourself or online/offline memory by hand.>"203 /a>Please see "How to online memory", "How to offline memory" iv this text.>"204 /a>>"205 /a>If firmware supports NUMA-node hotplug, and defines av objec _HID "ACPI0004",>"206 /a>"PNP0A05", or "PNP0A06", notificat="v is asserted to it, and ACPI handler>"207 /a>calls hotplug"code for all of objec s which are defined in it.>"208 /a>If memory device is found, memory hotplug code will be called.>"209 /a>>"210 /a>>"211 /a>io2 Notify memory hot-add event by hand "212 /a>------------ "213 /a>In some environments, especially virtualized environment, firmware will not>"214 /a>notify memory hotplug event to the kernel. For such environment, "probe">"215 /a>interface is supported. This interface depends on CONFIG_ARCH_MEMORY_PROBE.>"216 /a>>"217 /a>Now, CONFIG_ARCH_MEMORY_PROBE is supported only by powerpc but it does not>"218 /a>contain highly archieecture codes. Please add config if you need "probe">"219 /a>interface.>"220 /a>>"221 /a>Probe interface is located at>"222 /a>/sys/devices/system/memory/probe>"223 /a>>"224 /a>You can tell the physical address of new memory to the kernel by>"225 /a>>"226 /a>% echo start_address_of_new_memory > /sys/devices/system/memory/probe>"227 /a>>"228 /a>Then, [start_address_of_new_memory, start_address_of_new_memory + sec > _size)>"229 /a>memory range is hot-added. In this case, hotplug scri is not called (i >"230 /a>current implementae="v). You'll have to online memory by yourself.>"231 /a>Please see "How to online memory" iv this text.>"232 /a>>"233 /a>>"234 /a>>"235 /a>------------------------------>"236 /a>5. Logical Memory hot-add phase>"237 /a>------------------------------>"238 /a>>"239 /a>5.1. Staee of memory>"240 /a>------------>"241 /a>To see (online/offline) staee of memory sec > , read 'state' file.>"242 /a>>"243 /a>% cat /sys/device/system/memory/memoryXXX/state>"244 /a>>"245 /a>>"246 /a>If the memory sec > is online, you'll read "online".>"247 /a>If the memory sec > is offline, you'll read "offline".>"248 /a>>"249 /a>>"250 /a>5.2. How to online memory>"251 /a>------------>"252 /a>Even if the memory is hot-added, it is not at ready-to-use state.>"253 /a>For using newly added memory, you have to "online" the memory sec > .>"254 /a>>"255 /a>For onlining, you have to wriee "online" to the sec > 's staee file as:>"256 /a>>"257 /a>% echo online > /sys/devices/system/memory/memoryXXX/state>"258 /a>>"259 /a>This nlining will not change the ZONE type of the target memory sec > ,>"260 /a>If the memory sec > is iv ZONE_NORMAL, you can change it to ZONE_MOVABLE:>"261 /a>>"262 /a>% echo online_movable > /sys/devices/system/memory/memoryXXX/state>"263 /a>(NOTE: current limit: this memory sec > must be adjacent to ZONE_MOVABLE)>"264 /a>>"265 /a>And if the memory sec > is iv ZONE_MOVABLE, you can change it to ZONE_NORMAL:>"266 /a>>"267 /a>% echo online_kernel > /sys/devices/system/memory/memoryXXX/state>"268 /a>(NOTE: current limit: this memory sec > must be adjacent to ZONE_NORMAL)>"269 /a>>"270 /a>After this, sec > memoryXXX's staee will be 'online' and the amount of>"271 /a>available memory will be increased.>"272 /a>>"273 /a>Currently, newly added memory is added as ZONE_NORMAL (for powerpc, ZONE_DMA).>"274 /a>This may be changed iv future.>"275 /a>>"276 /a>>"277 /a>>"278 /a>------------------------>"279 /a>6. Logical memory remove>"280 /a>------------------------>"281 /a>>"282 /a>6.1 Memory offline and ZONE_MOVABLE>"283 /a>------------>"284 /a>Memory offlining is more complicated than memory online. Because memory offline>"285 /a>has to make the whole memory sec > be unused, memory offline can fail if>"286 /a>the sec > includes memory which cannot be freed.>"287 /a>>"288 /a>In general, memory offline can use 2 techniques.>"289 /a>>"290 /a>(1) reclaim and free all memory iv the sec > .>"291 /a>(2) migraee all pages iv the sec > .>"292 /a>>"293 /a>In the current implementae="v, Linux's memory offline uses method (2), free=ng>"294 /a>all pages iv the sec > by page migrae="v. But not all pages are>"295 /a>migraeable. Under current Linux, migraeable pages are anonymous pages and "296 /a>page caches. For offlining a sec > by migrae="v, the kernel has to guarantee>"297 /a>that the sec > contains only migraeable pages.>"298 /a>>"299 /a>Now, a boot > for making a sec > which consists of migraeable pages is>"300 /a>supported. By specifying "kernelcore=" or "movablecore=" boot > , you can>"301 /a>create ZONE_MOVABLE...a zone which is just used for movable pages.>"302 /a>(See also Documentae="v/kernel-parameters.txt)>"303 /a>>"304 /a>Assume the system has "TOTAL" amount of memory at boot time, this boot > >"305 /a>creates ZONE_MOVABLE as following.>"306 /a>>"307 /a>1) When kernelcore=YYYY boot > is used,>"308 /a>" Size of memory not for movable pages (not for offline) is YYYY.>"309 /a>" Size of memory for movable pages (for offline) is TOTAL-YYYY.>"310 /a>>"311 /a>2) When movablecore=ZZZZ boot > is used,>"312 /a>" Size of memory not for movable pages (not for offline) is TOTAL - ZZZZ.>"313 /a>" Size of memory for movable pages (for offline) is ZZZZ.>"314 /a>>"315 /a>>"316 /a>Note) Uvfortunately, there is no ivformae="v to show which sec > belongs>"317 /a>to ZONE_MOVABLE. This is TBD.>"318 /a>>"319 /a>>"320 /a>6.2. How to offline memory>"321 /a>------------>"322 /a>You can offline a sec > by using the sam sysfs interface that was used i >"323 /a>memory onlining.>"324 /a>>"325 /a>% echo offline > /sys/devices/system/memory/memoryXXX/state>"326 /a>>"327 /a>If offline succeeds, the staee of the memory sec > is changed to be "offline".>"328 /a>If it fails, some error core (like -EBUSY) will be returned by the kernel.>"329 /a>Even if a sec > does not belong to ZONE_MOVABLE, you can try to offline it.>"330 /a>If it does 't contain 'unmovable' memory, you'll get success.>"331 /a>>"332 /a>A sec > under ZONE_MOVABLE is considered to be able to be offlined easily.>"333 /a>But under some busy staee, it may return -EBUSY. Even if a memory sec > >"334 /a>cannot be offlined du L333 some busy staee, it may return -EBUSY. Even if .> >"326 /a>>54m L12.nder#L333" id L333" class="line" nam L3353 /a>For using newly adtxt#L236" id L236" clao7ne" nam 92lug.txt#L263" id L263" class="line2mory is added as ZONE_NORMAL (for pollow="line2mory is added as ZONE_NOhref=ine" nam L243">"243 /9"199nam L243">"243 /9"325Documentae="v/memory-hotp3 as ZONE_NL236" c9ing nre"233 ass="line" nam L297">"297 /a>that the sec >3s="line" 3am L239">"239 /a>5.1. 3taee 3f memory-on / sec > _size) of the first>------------>"241 /a>To 3ee (o3line/oCmemory-plug.em/memory/memoryXXX/state> /a>>8">"298 /a>n iDocugFor anoryitutxt#L296" ipolntaeae="v/memory-hotplug.txt#L319" id L319" class#L244" id3 L244" class="line" nam 3 L2443>"244 f="Dowork. R326 /For class=n if .> >"245 namdecory>>8" L33f="Doow="lially imL232" otplug.txt#For L2e="v/memory-hotplug.txt#L319" id L319" class#xt#o="v).ry sec > is online, yo3'3l readhref= >"331 /a>>"247 /a>If the memory sec > is3offline, 3ou'll read "off3ine&q34 nam L128">"128 /a>---------nam L247">"247 /a>If the memory sec > is3o="line" 3tplug.txt#L249" id L2493 clas3="line7 L191">"191 /a>>"190 /a>---------memory-hotplug.txt#L282" id L282" class="li3.ss="line3L251">"251 /a>----------3->"252 /3>Even3if the -In somlug.txt#cumene.txt#lin 115" worksallyOS>>8"t#L215" .memory-hotplug.txt#L282" id L282" class="li32ae="v/memmory-hotplug.txt#L253" i3 L253" clas -IG"29" naomn 115" cum"liayet.memory-hotplug.txt#L282" id L282" class="li32L244" id3 to "online" t3e mem35L294" class="line" nam L294">"294 /a>all pages3umentae="3/memory-hotplug.txt#L2553 id 35285" id L285" cl0">"190 /a>---------memory-hotplug.txt#L282" id L282" class="li3f="Docume3tae="v/memory-hotplug.tx3#L2563 id L8.tplug.txt#L119" ref="D-hotplhre="v/memory-hotplug.txt#L319" id L319" classf="Docume3tae="v/memory-hotplug.tx3#L25735m L237">"237 /a>-------------------memory-hotplug.txt#L282" id L282" class="li3fffline, 3.txt#L258" id L258" cla3s="li3e" namplug.txt#L119" g.txref="D-hotplhrpluglasstxt#6-hotp_addre somlug.txt.memory-hotplug.txt#L282" id L282" class="li32="line" 3.txt#L259" id L259" cla3s="li3 L159" class="line" nam L159">"159 /a>" 3="v/memor3-hotplug.txt#L260" id L360" c3ass="l3 is iv Z3NE_NORMAL, you can chang3 it t3>plug.txt#L334 than memory online. Because memory offline>3ae="v/mem3ry-hotplug.txt#L262" id 3L262"36"294 /a>all pages3ae="v/mem3ry-hotplug.txt#L265" id 3L265"3class=3mentae="v3memory-hotplug.txt#L266"3id L3quot;, &Grecla="v/cum"247 /a>If the memory sec > is3"v/memory3hotplug.txt#L268" id L238" cl3ss="li3m="line" 3ry sec > must be adjac3nt to367ot;, &Grecla="v/wmory-lug.txtasred to bfucumebroughtlug.txt#Lenta" c9" idnewl than memory online. Because memory offline>3m"v/memor3y-hotplug.txt#L270" id 3270" 3=ng>"271 /a>availabl3 memory w3ll be increased.>3 class="l3ne" nam L273">"273 /a>3urren3s that>For lass="lmAc9f="Dixt#L/memor than memory online. Because memory offline>3 this me3emory-hotplug.txt#L274" 3d L23able onlentais eossi=le naomn L1of_new_iy haomref="Documentae=34" id L334" than memory online. Because memory offline>3 e="v/mem3ture.>8"tam mentae=know18">"a than memory online. Because memory offline>3 entae="v3am L276">"276 /a>> >Hmentae=.memory-hotplug.txt#L282" id L282" class="li3"278 /a>3---------3------------->"279 /a>6. Logical 3emory377ot;, &Grecla="v/cum3 "v/memor380" class="line" nam L380">"37ng> ntae="d athe p="v/plu L334".memory-hotplug.txt#L282" id L282" class="li3< is iv Z381" class="line" nam L381">"37 L271" class="line" nam L271">"271 /a>availabl3e" nam 3282">"282 /a>6.1 Memory 3fflin38ntae=3 class="l3ne" nam L283">"283 /a>3-----38 that>For lass="e="v/mmene.".memory-hotplug.txt#L282" id L282" class="li34" id L234" class="line" nam L234">"238L294" class="line" nam L294">"294 /a>all pages3a href="D3cumentae="v/memory-hotpl3g.txt3L285" Aa" c9" idnroutl memoryg.txtgs="lr0" id class="line" nam L294">"294 /a>all pages3aentae="v3mory sec > be unused, 3emory38 L176/a>all _">"294_-hotplhr(" c9" id_func,apriority / sec > _size) of the first>"278 /a>3L288" id 3L288" class="line" nam 3L288"3"288 /T boot oplugrgass="ef="" c9" idnfunc > (ac >.txt#ref="Dootp_addrabov".memory-hotplug.txt#L282" id L282" class="li34="line" 389" class="line" nam L389">"38788 /T bothirlugrgass="ei L2clashotpluONE_Naddrstruc id L26_-hotpw.memory-hotplug.txt#L282" id L282" class="li390" id L390" class="line" nam L390">"38ocumentae="v/memory-hotplug.txt#L241" id L241" c31" id L231" class="line" nam L231">"231 /a>(struc id L26_-hotpw {ntae="v/memory-hotplug.txt#L241" id L241" c3"Document3e="v/memory-hotplug.txt#3292" 39"293 /3>In t391a href="Docunug.txt#entaenr_="v/mg.txt#L221" id L221" class="line" nam L22133" id L23"v/memory-hotplug.txt#L234" id39ble only if>ONEe" naus_otplug_nid_-hrmalg.txt#L221" id L221" class="line" nam L22133 href="D3 > by page migrae="v. 3ut no393le only if>ONEe" naus_otplug_nid_0" cg.txt#L221" id L221" class="line" nam L22133entae="v3aeable pages are anonymo3s pag394le only if>ONEe" naus_otplug_nidg.txt#L221" id L221" class="line" nam L22133 memory 3ec > by migrae="v, the3kerne3 has t}.txt#L221" id L221" class="line" nam L22133288" id 3 only migraeable pages.>3a hre3928" id L328" class="line" nam L328">"328 /a>If 99" id L399" class="line" nam L399">"399 /a>am L1fnrmentt L1fnrddr5e="v/memory-hotplug..memory-hotplug.txt#L282" id L282" class="li3ntae="v/m3mory-hotplug.txt#L300" i3 L303" clasnr_="v/mrmen#class"v/mrddr5e="v/memory-hotplug..memory-hotplug.txt#L282" id L282" class="li3n" id L23quot;kernelcore=" o3 &quo3t scri naus_otplug_nid_-hrmalrmente"D-hdL1dv/wmoryNL275">">"304 /a>Asmen(otplug.)nte"/clear,="line.txt#L-1rnel.nre demaske" naus L231" cltplug..memory-hotplug.txt#L282" id L282" class="li4n3l-param4t> by page migrae="v. 4t#L304" id " naus_otplug_nidrmente"D-hdL1dv/wmoryNL"29. Iline.txt#L-1rnel.nre demaske" naus L231" cltplug..memory-hotplug.txt#L282" id L282" class="li4n6l-param4tonly migraeable pages.>4"308 40t;.>"3124/a>" S9. F#L277 Workmemory-hotplug.txt#L282" id L282" class="li4offline) 4s TOTAL - ZZZZ.>"rolXXX/state> tplu#37; echo /a>> clasa href="Documentae="line" nam L172">"172 /a>" bl4is is TBD4>Fortate>"319 /a>>Fortate>state>"321 /a>---------4-->"322 4a>You4system/memory/probe>
T boorigiL236LXR= ft15" iid L33memory/prhttp://sourcef="ge.ne"/pro id /lxN">LXR=community id /a>>lxN@lntae.no id .
lxN.lntae.no kindl"ehestashotpmemory/prhttp://www.redptpl-lntpro.no">Redptplmentpro AS id /provory-addrLntaev/memult you g n5py-plug.entercceed sin>