aluealuealo/spa.14alospa. class="lxr_search">aluealuealuealue typ Search14 aluealo/spa.14uealoinput typ aue/ /1o/a>============== / /2o/a>Memory Hotplug / /3o/a>============== / /4o/a>a/ /5o/a>Created: Jul 28 2007a/ /6o/a>Add descrition> of notifier of memory hotplug/ /Oct 11 2007a/ /7o/a>a/ /8o/a>This document is about memory hotplug/including how-to-use and current sta us.a/ /9o/a>Because Memory Hotplug is still under development, contents of this text willa/ a>be changed often.a/ 11o/a>a/ 12o/a>1. Introduc v3.a/ 13o/a>/ 1.1 purpose of memory hotpluga/ 14o/a>/ 1.2. Phases of memory hotpluga/ 15o/a>/ 1.3. Unit of Memory online/offline opera v3.a/ 16o/a>2. Kernel Configura v3.a/ 17o/a>3. sysfs files for memory hotpluga/ 18o/a>4. Physical memory hot-add phasea/ 19o/a>/ " Hardware(Firmware) Support / 20o/a>/ " 2 Notify memory hot-add event by hand / 21o/a>5. Logical Memory hot-add phasea/ 22o/a>/ 5.1. Sta e of memorya/ 23o/a>/ 5.2. How to online memorya/ 24o/a>6. Logical memory removea/ 25o/a>/ 3"1 Memory offline and ZONE_MOVABLEa/ 26o/a>/ 3"2. How to offline memorya/ 27o/a>7. Physical memory removea/ 28o/a>8. Memory hotplug event notifiera/ 29o/a>9. Future Work List / 30o/a>a/ 31o/a>Note(1): x86_64's has special implementa v3. for memory hotplug.a/ 32o/a>/ This text does not describe it.a/ 33o/a>Note(2): This text assumes that sysfs is mounted at /sys.a/ 34o/a>a/ 35o/a>a/ 36o/a>---------------a/ 37o/a>1. Introduc v3.a/ 38o/a>---------------a/ 39o/a>a/ 40o/a>1.1 purpose of memory hotpluga/ 41o/a>------------a/ 42o/a>Memory Hotplug allows users to increase/decrease the amount of memory.a/ 43o/a>Generally, there are two purposes.a/ 44o/a>a/ 45o/a>(A) For changing the amount of memory.a/ 46o/a>/ This is to allow a feature like capacity on demand.a/ 47o/a>(B) For installing/removing DIMMs or NUMA-nodes physically.a/ 48o/a>/ This is to exchange DIMMs/NUMA-nodes, reduce power consumtion>, etc.a/ 49o/a>a/ 50o/a>(A) is required by highly virtualized environments and (B) is required bya/ 51o/a>hardware which supports memory power management.a/ 52o/a>a/ 53o/a>Linux memory hotplug/is designed for both purpose.a/ 54o/a>a/ 55o/a>a/ 56o/a>1.2. Phases of memory hotpluga/ 57o/a>---------------a/ 58o/a>There are 2 phases in Memory Hotplug.a/ 59o/a>/ 1) Physical Memory Hotplug phasea/ 60o/a>/ 2) Logical Memory Hotplug phase.a/ 61o/a>a/ 62o/a>The First phase is to communicate hardware/firmware and make/erasea/ 63o/a>environment for hotplugged memory. Basically, this phase is necessarya/ 64o/a>for the purpose (B), but this is good phase for communicatv3. betwee.a/ 65o/a>highly virtualized environments too.a/ 66o/a>a/ 67o/a>When memory is hotplugged, the kernel recognizes new memory, makes new memorya/ 68o/a>management tables, and makes sysfs files for new memory's opera v3..a/ 69o/a>a/ 70o/a>If firmware supports notificatv3. of connecion> of new memory to OS,a/ 71o/a>this phase is triggered automa vcally. ACPI can notify this event. If not,a/ 72o/a>"probe" opera v3. by system administra v3. is used instead.a/ 73o/a>(see Secion> 4.).a/ 74o/a>a/ 75o/a>Logical Memory Hotplug phase is to change memory sta e intoa/ 76o/a>available/unavailable for users. Amount of memory from user's view isa/ 77o/a>changed by this phase. The kernel makes all memory i. it as free pagesa/ 78o/a>when a memory range is available.a/ 79o/a>a/ 80o/a>In this document, this phase is described as online/offline.a/ 81o/a>a/ 82o/a>Logical Memory Hotplug phase is triggered by wri e of sysfs file by systema/ 83o/a>administra or. For the hot-add case, it must be executed after Physical Hotplug / 84o/a>phase by hand.a/ 85o/a>(However, if you wri es udev's hotplug scritis for memory hotplug, thesea/ 86o/a>/phases can be execute i. seamless way.)a/ 87o/a>a/ 88o/a>a/ 89o/a>1.3. Unit of Memory online/offline opera v3.a/ 90o/a>------------a/ 91o/a>Memory hotplug uses SPARSEMEM memory model. SPARSEMEM divides the whole memorya/ 92o/a>into chunks of the sam size. The chunk is called a "secion>". The size ofa/ 93o/a>a secion> is archi ecture dependent. For example, power uses 16MiB, ia64 usesa/ 94o/a>1GiB. The unit of online/offline opera v3. is "one secion>". (see Secion> 3.)a/ 95o/a>a/ 96o/a>To determine the size of secion>s, please read this file:a/ 97o/a>a/ 98o/a>/sys/devices/system/memory/block_size_bytesa/ 99o/a>a/100o/a>This file shows the size of secion>s i. byte.a/101o/a>a/102o/a>-----------------------a/103o/a>2. Kernel Configura v3.a/104o/a>-----------------------a/105o/a>To use memory hotplug/feature, kernel must be compiled with followinga/106o/a>config v3.s.a/107o/a>a/108o/a>- For all memory hotpluga/109o/a>/ Memory model -> Sparse Memory (CONFIG_SPARSEMEM)a/110o/a>/ Allow for memory hot-add (CONFIG_MEMORY_HOTPLUG)a/111o/a>a/112o/a>- To enable memory removal, the followings are also necessarya/113o/a>/ Allow for memory hot remove (CONFIG_MEMORY_HOTREMOVE)a/114o/a>/ Page Migra v3. (CONFIG_MIGRATION)a/115o/a>a/116o/a>- For ACPI memory hotplug, the followings are also necessarya/117o/a>/ Memory hotplug/(under ACPI Support menu) (CONFIG_ACPI_HOTPLUG_MEMORY)a/118o/a>/ This ption> can be kernel module.a/119o/a>a/120o/a>- As a related configura v3., if your box has a feature of NUMA-node hotpluga/121o/a> via ACPI, then this ption> is necessary too.a/122o/a>/ ACPI0004,PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)a/123o/a>/ (CONFIG_ACPI_CONTAINER).a/124o/a>/ This ption> can be kernel module too.a/125o/a>a/126o/a>--------------------------------a/127o/a>4 sysfs files for memory hotpluga/128o/a>--------------------------------a/129o/a>All secion>s have their device i.forma v3. in sysfs. Each secion> is part ofa/130o/a>a memory block under /sys/devices/system/memory asa/131o/a>a/132o/a>/sys/devices/system/memory/memoryXXXa/133o/a>(XXX is the secion> id.)a/134o/a>a/135o/a>Now, XXX is defined as (start_address_of_secion> / secion>_size) of the firsta/136o/a>secion> contained in the memory block. The files 'phys_index' and /137o/a>'end_phys_index' under each direciory report the beginning and end secion> id's /138o/a>for the memory block covered by the sysfs direciory. It is expecied that alla/139o/a>memory secion>s i. this range are present and no memory holes exist in thea/140o/a>range. Currently there is no way to determine if there is a memory hole, buta/141o/a>the existence of one should not affeci the hotplug/capabilities of the memorya/142o/a>block.a/143o/a>a/144o/a>For example, assume 1GiB secion> size. A device for a memory starting ata/145o/a>0x100000000 is /sys/device/system/memory/memory4a/146o/a>(0x100000000 / 1Gib = 4)a/147o/a>This device covers address range [0x100000000 ... 0x140000000)a/148o/a>a/149o/a>Under each secion>, you can see 4 or 5 files, the end_phys_index file beinga/150o/a>a recent addiion> and not present n> older kernels.a/151o/a>a/152o/a>/sys/devices/system/memory/memoryXXX/start_phys_indexa/153o/a>/sys/devices/system/memory/memoryXXX/end_phys_indexa/154o/a>/sys/devices/system/memory/memoryXXX/phys_devicea/155o/a>/sys/devices/system/memory/memoryXXX/statea/156o/a>/sys/devices/system/memory/memoryXXX/removablea/157o/a>a/158o/a>'phys_index' : read-only and contains secion> id of the first secion>a/159o/a>/ in the memory block, sam as XXX.a/160o/a>'end_phys_index' : read-only and contains secion> id of the last secion>a/161o/a>/ in the memory block.a/162o/a>'state' : read-wri ea/163o/a>/ at read: contains online/offline sta e of memory.a/164o/a>/ at wri e: user can specify "online", "offline" command /165o/a>/ which will be performed o> al secion>s i. the block.a/166o/a>'phys_device' : read-only: designed to show the nam of physical memorya/167o/a>/ device. This is not well implemented now.a/168o/a>'removable' : read-only: contains a. integer indicatvnga/169o/a>/ whether the memory block is removable or nota/170o/a>/ removable. A of 1 indicates that the memorya/171o/a>/ block is removable and a of 0 indicates thata/172o/a>/ it is not removable. A memory block is removable only ifa/173o/a>/ every secion> i. the block is removable.a/174o/a>a/175o/a>NOTE:a/176o/a>/ These direciories/files appear after physical memory hotplug phase.a/177o/a>a/178o/a>If CONFIG_NUMA is enabled the memoryXXX/ direciories can also be accessed /179o/a>via symbolic links located i. the /sys/devices/system/node/node* direciories.a/180o/a>a/181o/a>For example:a/182o/a>/sys/devices/system/node/node0/memory9 -> ../../memory/memory9a/183o/a>a/184o/a>A backlink will also be created:a/185o/a>/sys/devices/system/memory/memory9/node0 -> ../../node/node0a/186o/a>a/187o/a>--------------------------------a/188o/a>4. Physical memory hot-add phasea/189o/a>--------------------------------a/190o/a>a/191o/a>" Hardware(Firmware) Support /192o/a>------------ /193o/a>On x86_64/ia64 platform, memory hotplug by ACPI is supported.a/194o/a>a/195o/a>In general, the firmware (ACPI) which supports memory hotplug defines /196o/a>memory class objeci of _HID "PNP0C80". When a notify is asserted to PNP0C80,a/197o/a>Linux's ACPI handler does hot-add memory to the system and calls a hotplug udeva/198o/a>scriti. This will be done automa vcally.a/199o/a>a/200o/a>But scritis for memory hotplug are not contained in generic udev package(now).a/201o/a>You may have to wri e it by yourself or online/offline memory by hand.a/202o/a>Please see "How to online memory", "How to offline memory" i. this text.a/203o/a>a/204o/a>If firmware supports NUMA-node hotplug, and defines a. objeci _HID "ACPI0004",a/205o/a>"PNP0A05", or "PNP0A06", notificatv3. is asserted to it, and ACPI handlera/206o/a>calls hotplug/code for all of objecis which are defined in it.a/207o/a>If memory device is found, memory hotplug code will be called.a/208o/a>a/209o/a>a/210o/a>" 2 Notify memory hot-add event by hand /211o/a>------------a/212o/a>In some environments, especially virtualized environment, firmware will nota/213o/a>notify memory hotplug event to the kernel. For such environment, "probe"a/214o/a>interface is supported. This interface depends on CONFIG_ARCH_MEMORY_PROBE.a/215o/a>a/216o/a>Now, CONFIG_ARCH_MEMORY_PROBE is supported only by powerpc but it does nota/217o/a>contain highly archi ecture codes. Please add config if you need "probe"a/218o/a>interface.a/219o/a>a/220o/a>Probe interface is located ata/221o/a>/sys/devices/system/memory/probea/222o/a>a/223o/a>You can tell the physical address of new memory to the kernel bya/224o/a>a/225o/a>% echo start_address_of_new_memory > /sys/devices/system/memory/probea/226o/a>a/227o/a>Then, [start_address_of_new_memory, start_address_of_new_memory + secion>_size)a/228o/a>memory range is hot-added. In this case, hotplug scriti is not called (i>a/229o/a>current implementa v3.). You'll have to online memory by yourself.a/230o/a>Please see "How to online memory" i. this text.a/231o/a>a/232o/a>a/233o/a>a/234o/a>------------------------------a/235o/a>5. Logical Memory hot-add phasea/236o/a>------------------------------a/237o/a>a/238o/a>5.1. Sta e of memorya/239o/a>------------a/240o/a>To see (online/offline) sta e of memory secion>, read 'state' file.a/241o/a>a/242o/a>% cat /sys/device/system/memory/memoryXXX/statea/243o/a>a/244o/a>a/2stateag.tx95">/195o/a>In /sys/device/syi2o2x95">/195o/a>In /sys/device/syi2o2x95">/19 href="D v3./md /241o/a>--------0000 / 1Gib = 4)aIn /sys/device/syi2ate">/19 href="D v3./md /241o/a>a/238o/a>a/149o2a>Under e2ch secion>, you can see 2 or 52files,v3./memory-hotplug.txt#L24" id/ 24o/a>6a>a recen2 addiion> and not presen2 n> o25ry-hotplug.txt#L91" id/ 91o/a>2a>a/241o/a>/sys/de2ices/system/memory/memor2XXX/s2art_phFew istxt# v3ou nled v3./memor v3.ocumentamd /241o/a>a/244o/a>/sys/de2ices/system/memory/memor2XXX/p25 device fhref=txtor v3.ocumenta by hamd /185o2a>/sys/de2ices/system/memory/memor2XXX/s2txt#L56" id/ 56o/a>2a>/sys/de2ices/system/memory/memor2XXX/r256t; /sys/devicesotplug.="Documenta v3./memory-hotplug.t-hotplug.txt#L243" id/243o/a>a/158o2a>'ph2s_index' : read2only 2nd conADocumlug.,s/device/-hotplug.e syste file.-hotpluge syshref="Dg.txt#L1/memory-hotplu58" id/158o2a>Under e2 in the memor2 bloc2, sam er's vn /sys-hotplugef="DocuL208" id/208o/a>'en2_phys_index' : read2only 26xt#L191" id/191o2a>/ 2 in the memor2 bloc2.a/201o/a>'st2te' : read2wri e2are/firmmoryayplug.mory i.otpf-hotp201" id/201o/a>a/244o/a>/ 2 at wri e: us2r can26xt#L245" id/2stata>/ 2 which will b2 perf26xt#L56" id/ 56o/a>2a>'ph2s_device' : read2only:26Documenta v3./memory-hotplug.6" id/ 56o/a>2a>a/ 25o/a>/a>'re2ovable' : read2only:26="Documenta v3./memory-hotplu5" id/ 25o/a>/a>Under e2 whether the 2emory2txt#L70" id/ 70o/a>2a>/ 2 removable. 2 2 of 1 Documenta v3./memory-hotplug.txt#L26" id/ 26o/a>/a>/ 2 block is rem2vable27ry-hotplug.txt#L212" id/212o/a>/ 2 it is not re2ovabl27decrease the3./memtxt#mory-rv3./melig.txt#tmorhotplug.href=". Becampiled with3./memo12" id/212o/a>a/173o2a>a/208o/a>NOTE:a<2 href="Documenta v3./mem2ry-ho27xt#L56" id/ 56o/a>2a>/ These2direciories/files appear2after2physics memory hoted with3./memoto thmpil2 tvicniqu#L180" id/180o2a>a/178o2a>If CONF2G_NUMA is enabled the me2oryXX2/ dire(1)nelslai v3./mlug.tenta v3./memory-hotplug.t180" id/180o2a>Under e2olic links located i. th2 /sys2device(2) ma hre.tentaxt#L7emory-hotplug.t180" id/180o2a>a/181o2a>For exa2ple:a/169o2a>/sys/de2ices/system/node/node0/m2mory92-> entaaxt#L7emory-hotplug.ta v3.ON)ama href=". Butnly imntaxt#L7earo12" id/212o/a>a/211o/a>A backl2nk will also be created:2/212o/a>NOTE:a<2ices/system/memory/memor29/nod20 ->-hotplug.iles 'phys_sumentama hrehrefaxt#L7180" id/180o2a>/ These2="Documenta v3./memory-h2tplug2txt#L187" id/187o2a>-------2------------------------2/ 77o/a>2a>4. Phys2cal memory hot-add phase2/ 77o/a>2a./me2ory-------------------------2/180o2a>a/18228" id/228o/a>" Har2ware(Firmware) Support <2 href29xt#L242" id/242o/a>-------2---- /242o/a>a/180o2a>A backl2="Documenta v3./memory-h2tplug2txt#L195" id/195o2a>In gene2al, the firmware (ACPI) 2hich 2upport1)n="Docya/205o/a>memory 2lass objeci of _HID &quo2;PNP029hysicalS3./memoenta v3ly iic udhotplugxt#L7 (ly iic utate'y-hYYYY180" id/180o2a>-------29;s ACPI handler does ho2-add 297ysicalS3./memoenta v3ic udhotplugxt#L7 (ic utate'y-hTOTAL-YYYY180" id/180o2a>4. Phys2This will be done automa2vcall29xt#L149" id/149o2a>a/205o3a>But scr3tis for memory hotplug a3e not300ysicalS3./memoenta v3ly iic udhotplugxt#L7 (ly iic utate'y-hTOTAL - ZZZZ180" id/180o3a>You may3have to wri e it by your3elf o301ysicalS3./memoenta v3ic udhotplugxt#L7 (ic utate'y-hZZZZ180" id/180o3a2You may3h--- /233o3a>a/204o3a>If firm3are supports NUMA-node h3tplug3 and dNot39;Ua/ 77o/a>3a>"P3P0A05", or "PN30A06&3uot;, Doctplug.txt#L2.ocumenta TBD180" id/180o3a6"P3Pass objeci of _HID &quo3ecis 30xt#L187" id/187o3a>If memo3y device is found, memor3 hotp3txt#L108" id/108o3a>a/108o3a9a/240o3a>" 2 Not3fy memory hot-add event 3y han3 "ref="./memory-h-hotpwa-hotplug.40" id/240o3a>You may3----a/180o3a>In some3environments, especially3virtu31xt#L233" id/233o3a>notify 3emory hotplug event to t3e ker3el. Fosys/deviceso./memor="Documenta v3./memory-hotplug.t-hotplug.txt#L243" id/243o3a>interfa3e is supported. This int3rface31xt#L195" id/195o3a>a/195o3./memoryucceedumenta file.aIn /sys/device/syi.mory i.totplumd /241o3a>Now, CO3FIG_ARCH_MEMORY_PROBE is3suppo31nta v95oithf.,s/ronmerrc uc-rv (like -EBUSY)s-hotplugreturnat alla/241o3a>If memo3highly archi ecture code3. Ple3se addEvenmentyotplug.tag.txt#L2/bnlong Doctplug.txt#L2x file beitmory-h3./memor#L207" id/207o3a>interfa3e.a/180o3a>a/220o3a>Probe i3terface is located ata/199o3a>/sys/de3ices/system/memory/probe3/199o3a>In some3="Documenta v3./memory-h3tplug3txt#L2o tly ibne3./memod duugtot-EBUSYx file beiretthe3./memtxt#mocumenyayplugtplugto99" id/199o3a>notify 3tell the physical addres3 of n3w memo3./memor#L (txt#L1L201" id/201o3a>a/211o3a>% e3ho start_address_of_new_3emory3> /s/ronL134" id/134o3a>a/227o3a>Then, [3tart_address_of_new_memo3y, st3rt_addConsidths="li185" id/185o3a>memory 3ange is hot-added. In th3s cas3, hotpase the/185o3a>a/ 77o/a>3a>Please 3ee "How to online m3mory&3uot; iy-rv3work. Returntxt#-EBUSYn end s/ronm/ituref="nyaypluggoot aecampily-hoflin7" id/ 77o/a>3a>/sys/de3="Documenta v3./memory-h3tplug3txt#L2 beidecidt/morretthey-rv3txt#L1g.txtimxt#L2 re is a m,#enta v33./memtxtrobe&7" id/ 77o/a>3a>In some3="Documenta v3./memory-h3tplug3txt#L2g.txt/ronmaef="Documretthehotpl120s/deoumentimeouL207" id/207o3a>a/234o3a>-------3----------------------a<3 href3"Documenta v3./memory-hotplug.t34" id/234o3a>% e3al Memory hot-add phasea3a hre3="Docu7menta v3./memory-htxt#L25" id/ 25o/a>3a>-------3----------------------a<3 href3"Documenta v3./memory-hotplug.t5" id/ 25o/a>3a>Then, [3="Documenta v3./memory-h3tplug3txt#L2Nmemoy-rv3mory by yourse yet....5" id/ 25o/a>3a>memory 3 e of memorya/ 25o/a>3a>a/ 25o/a>3a>To see 3online/offline) sta e of3memor34xt#L181" id/181o3a>a/ 25o/a>3a>% c3t /sys/device/system/mem3ry/me3oryXXX8.NFIG_ACPI_HOTPLUuot;prlera/ 77o/a>3a>a/ 25o/a>3a>-------3="Documenta v3./memory-h3tplug3txt#L2FIG_ACPI_HOTPLUocumuot;prlera/ 25o/a>3a>% e3/195o/a>In /sys/device/3yi2o234xt#L56" id/ 56o/a>3a>-------30000 / 1Gib = 4)a/ 26o/a>3a>a/ 26o/a>3a>memory 3="Documenta v3./memory-h3tplug34 href="prep. objebmory-hyi/or.txt#Lg.txt#L1Docum.ON)>Under e3ch secion>, you can see 3 or 534lock is/ v3. v3./memo.5" id/ 25o/a>3a>a recen3 addiion> and not presen3 n> o35xt#L181" id/181o3a>a/ 26o/a>3a>/sys/de3ices/system/memory/memor3XXX/s352ysicalGmory txt#ent it doeGOING_ONLIN2hf.memo.5" id/ 25o/>a/244o3a>/sys/de3ices/system/memory/memor3XXX/p35 devi it doeONLIN26" id/ 26o/a>3a>% e3ices/system/memory/memor3XXX/s355ysicalGmory txt#w"DocgIG_ACPIasryucces7futa/ 26o/a>3a>-------3ices/system/memory/memor3XXX/ luomma v3. v3./memo.5" id/ 25o/a>3a>a/158o3a>'ph3s_index' : read3only 3nd con it doeGOING_OFFLIN26" id/ 26o/a>3a>Under e3 in the memor3 bloc3, sam aGmory txt#totplgmory-hoprococument3./ 26o/a>3a>'en3_phys_index' : read3only 360ysicallongcumeossi/lemluomma v3./memoraed iome.aIn /systotplu3./memod6" id/ 26o/a>3a>a/ 26o/a>3a>/sys/de3te' : read3wri e362ysicaljebmory-hmluomma v3hotplug.don /sys/device.5" id/ 25o/a>3a>a/244o3a>/ 3 at wri e: us3r can364t#L1 it doeCANCEL_OFFLIN26" id/ 26o/a>3a>/ 3 which will b3 perf365ysicalGmory txt#ent it doeGOING_OFFLIN2hf.mNFIG_ACPis er's vagDocgluom6" id/ 26o/a>3a>-------3s_device' : read3only:36hysicallug.iles -hotpw vaty-hptxt#tot3./memo.5" id/ 25o/a>3a>a/158o3a>'re3ovable' : read3only:36d con it doeOFFLIN26" id/ 26o/a>3a>Under e3 whether the 3emory36 sam aGmory txt#"Docum3./memtxtr.txt#Lhsyi.omelero.5" id/ 25o/a>3a>/ 3 removable. 3 37xt#L181" id/181o3a>/ 3 block is rem3vable37ry-hoAmlug.entanroutemoto thlugregcapahat al81" id/181o3a>/sys/de3 it is not re3ovabl3. A memo/134o3a>a/244o3a>a/ 25o/a>3a>/ 3 href="Documenta v3./mem3ry-ho37xt#L5Tug.thirntarg clas.isaxtt#L1a v3././memhotpstruct e" nam_lera/ 25o/a>3a>/ These3direciories/files appear3after37xt#L227" id/227o3a>a/227o3a>'re3G_NUMA is enabled the me3oryXX37 href=""""""un href="long y-hotplfn218" id/218o3a>Under e3olic links located i. th3 /sys379href=""""""un href="long nr_xt#L7218" id/218o3a>a/218o3a>/ 3ple:a/218o3a>/sys/de3ices/system/node/node0/m3mory938xt#L233" id/233o3a>a/ 25o/a>3a>A backl3nk will also be created:3/ 25o/a>3a>/ 3ices/system/memory/memor39/nod30 -> filus_.mory _nide/134o3a>/ These3="Documenta v3./memory-h3tplug3txt#L1hep/clear. It e"ay-h)3. v(e" namlocu)rledv3gets3a v3./memorag.href="umenta34" id/134o3a>a/ 25o/a>3a>'re3cal memory hot-add phase3/ 25o/a>3a>Under e3------------------------3/ 25o/a>3a>a/191o3a>" Har3ware(Firmware) Support <3 href39ry-hotplug.txt#L2v391" id/191o3a>/sys/de3---- /191o3a>a/191o3a>A backl3="Documenta v3./memory-h3tplug39pecify -lug.uwtxtr.txt#Lhhtplug.tDoctplug.txt#L2.omaylugwe./memo/ronm/witch like91" id/191o3a>/ 3al, the firmware (ACPI) 3hich 39med o> alsysctl3txt# v3ef="roltxt#L241" id/241o3a>memory 3lass objeci of _HID &quo3;PNP039hysical-cumentxtr.txt#Lhiles mentbya/241o3a>a/170o3a>4. Phys3This will be done automa3vcall398ysical-ctesocumenyakhand.aetmemhenta v33./memtxt241" id/241o3a>Under e3="Documenta v3./memory-h3tplug399ysical-cuCH_MEM HugeTLB3.ON)ama href="cumen3./memtxt241" id/241o4a>But scr4tis for memory hotplug a4e not400ysical-hentmapmrecumtxt#athenta v33./memL241" id/241o4a>You may4have to wri e it by your4elf o401ysical-tbya/ 25o/a>4a2You may4h--- /233o4a>a Tug.originalpLXRo/rftotpluallaLXRo.txtunityt#L2lxm@lo th.not#L2.
lxm.lo kindlLhhtstL1a v33" idRedphoteto pro ASt#L2