Provide a new interface for dynamic configuration and deconfiguration of
hotplug memory, allowing for mixed altmap and non-altmap support. It is
a follow-up on the discussion with David:
https://lore.kernel.org/all/ee492da8-74b4-4a97-8b24-73e07257f01d@xxxxxxxxxx/
As mentioned in the discussion, advantages of the new interface are:
* Users can dynamically specify which memory ranges should have altmap
support, rather than having it statically enabled or disabled for all
hot-plugged memory.
* In the long term, user could specify a memory range, including
multiple blocks, and whether user wants altmap support for that range.
This could allow for the altmap block grouping, or even variable-sized
blocks, in the future. i.e. "grouping" memory blocks that share a same
altmap located on the first memory blocks in the group and reduce
fragementation due to altmap.
To leverage these advantages:
Create a sysfs interface /sys/bus/memory/devices/configure_memory, which
performs runtime (de)configuration of memory with altmap or non-altmap
support. The interface validates the memory ranges against architecture
specific memory configuration and performs add_memory()/remove_memory().
Dynamic (de)configuration of memory is made configurable via config
CONFIG_RUNTIME_MEMORY_CONFIGURATION.