Dear All, We are working on a series of patches that aims for implementing memory hotplug (also hotremove after) functionality for ARM64 CPUs. There are already existing ARM64 platforms with SO-DIMMs RAM bricks that could use such feature ([2], for example). Except for that, we would like to use it to provide runtime RAM provisioning for Linux/KVM guests.
The process how to online new range of memory addresses is described in Documentation/memory-hotplug.txt The idea is to make available new range of addresses at runtime, after the brick is physically plugged in and it can be performed via sysfs interface (more detailed description in documentation). This feature is not currently available for ARM64 processors (the implementation of architecture specific functions like `arch_add_memory()` is missing for that platform). Our analysis so far has identified no technical obstacle in porting memory hotplug to arm64, but probably this feature was not highly desirable in the past, with ARM CPUs being deployed mostly on portable devices without SO-DIMM slots. Nowadays, this may change with ARM64 platform trying to enter server market [1][2], where runtime memory reconfiguration is very important. First, typically a server contains multiple SO-DIMM slots so additional RAM can be physically attached. Second, it needs to be done while the machine is running since often reboots are not acceptable in a data center. Trying to find existing efforts towards this direction, we have only discovered that the lack of memory hotplug/hotremove has been already spotted and mentioned as a nice-to-have at least [3][4] but no working implementation has been found published. Therefore, we have planned to undertake the task of implementing kernel support for RAM hotplug/hotunplug on ARM64 platform and achieved first optimistic results. This particular development is performed within the scope of the dReDBox - EC project under H2020 framework [5]. Do you see value in including such work in the mainline kernel? Any comment is more than welcome (please add me to CC). [1] http://events.linuxfoundation.org/sites/events/files/slides/LinuxCon_Japan_2016_ARMv4.pdf [2] http://www.cavium.com/ThunderX_ARM_Processors.html [3] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-October/382137.html [4] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/341865.html [5] http://www.dredbox.eu/ BR, -- Maciej Bielski