Re: [PATCH 0/3] mm: use memmap_on_memory semantics for dax/kmem

From: David Hildenbrand
Date: Fri Jun 16 2023 - 03:46:00 EST


On 16.06.23 00:00, Vishal Verma wrote:
The dax/kmem driver can potentially hot-add large amounts of memory
originating from CXL memory expanders, or NVDIMMs, or other 'device
memories'. There is a chance there isn't enough regular system memory
available to fit ythe memmap for this new memory. It's therefore
desirable, if all other conditions are met, for the kmem managed memory
to place its memmap on the newly added memory itself.

Arrange for this by first allowing for a module parameter override for
the mhp_supports_memmap_on_memory() test using a flag, adjusting the
only other caller of this interface in dirvers/acpi/acpi_memoryhotplug.c,
exporting the symbol so it can be called by kmem.c, and finally changing
the kmem driver to add_memory() in chunks of memory_block_size_bytes().

1) Why is the override a requirement here? Just let the admin configure it then then add conditional support for kmem.

2) I recall that there are cases where we don't want the memmap to land on slow memory (which online_movable would achieve). Just imagine the slow PMEM case. So this might need another configuration knob on the kmem side.


I recall some discussions on doing that chunk handling internally (so kmem can just perform one add_memory() and we'd split that up internally).

--
Cheers,

David / dhildenb