Sumanth Korikkar 890a4212de s390/mm: implement MEM_PREPARE_ONLINE/MEM_FINISH_OFFLINE notifiers
MEM_PREPARE_ONLINE memory notifier makes memory block physical
accessible via sclp assign command. The notifier ensures self-contained
memory maps are accessible and hence enabling the "memmap on memory" on
s390.

MEM_FINISH_OFFLINE memory notifier shifts the memory block to an
inaccessible state via sclp unassign command.

Implementation considerations:
* When MHP_MEMMAP_ON_MEMORY is disabled, the system retains the old
  behavior. This means the memory map is allocated from default memory.
* If MACHINE_HAS_EDAT1 is unavailable, MHP_MEMMAP_ON_MEMORY is
  automatically disabled. This ensures that vmemmap pagetables do not
  consume additional memory from the default memory allocator.
* The MEM_GOING_ONLINE notifier has been modified to perform no
  operation, as MEM_PREPARE_ONLINE already executes the sclp assign
  command.
* The MEM_CANCEL_ONLINE/MEM_OFFLINE notifier now performs no operation, as
  MEM_FINISH_OFFLINE already executes the sclp unassign command.

Link: https://lkml.kernel.org/r/20240108132747.3238763-5-sumanthk@linux.ibm.com
Reviewed-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-02-21 16:00:02 -08:00
..
2024-01-12 11:32:19 -08:00
2024-02-10 08:02:48 -08:00
2024-01-18 11:37:24 -08:00
2024-02-09 10:40:50 -08:00
2024-01-10 08:45:22 -08:00
2024-01-18 09:48:40 -08:00
2024-02-09 10:40:50 -08:00
2024-01-18 11:37:24 -08:00
2024-01-18 11:37:24 -08:00
2024-01-09 16:32:11 -08:00
2024-01-12 13:52:21 -08:00
2024-02-02 12:52:44 -08:00
2024-01-18 11:37:24 -08:00
2024-01-17 15:25:27 -08:00
2024-02-02 12:33:50 -05:00
2024-01-18 15:16:57 -08:00
2024-01-18 11:37:24 -08:00
2024-01-18 16:44:03 -08:00
2024-02-15 10:19:55 -08:00
2024-01-05 15:55:41 +05:30
2024-02-17 08:06:20 -08:00
2024-01-17 14:37:40 -08:00
2024-01-11 11:31:46 -08:00
2024-01-18 17:08:31 -08:00
2024-02-13 15:48:22 +00:00
2024-02-17 08:52:38 -08:00
2024-02-06 14:42:11 +00:00
2024-01-04 17:03:47 +01:00
2024-01-18 16:44:03 -08:00
2024-01-18 15:57:25 -08:00
2024-01-18 16:44:03 -08:00
2024-01-18 16:44:03 -08:00
2024-01-12 13:32:30 -08:00
2024-01-12 12:38:37 +01:00