[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250907060426.2177717-1-rppt@kernel.org>
Date: Sun, 7 Sep 2025 09:04:26 +0300
From: Mike Rapoport <rppt@...nel.org>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Alexander Graf <graf@...zon.com>,
Baoquan He <bhe@...hat.com>,
Changyuan Lyu <changyuanl@...gle.com>,
Chris Li <chrisl@...nel.org>,
Jason Gunthorpe <jgg@...dia.com>,
Mike Rapoport <rppt@...nel.org>,
Pasha Tatashin <pasha.tatashin@...een.com>,
Pratyush Yadav <pratyush@...nel.org>,
kexec@...ts.infradead.org,
linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v3 0/2] kho: add support for preserving vmalloc allocations
From: "Mike Rapoport (Microsoft)" <rppt@...nel.org>
Hi,
Following the discussion about preservation of memfd with LUO [1] these
patches add support for preserving vmalloc allocations.
Any KHO uses case presumes that there's a data structure that lists
physical addresses of preserved folios (and potentially some additional
metadata). Allowing vmalloc preservations with KHO allows scalable
preservation of such data structures.
For instance, instead of allocating array describing preserved folios in
the fdt, memfd preservation can use vmalloc:
preserved_folios = vmalloc_array(nr_folios, sizeof(*preserved_folios));
memfd_luo_preserve_folios(preserved_folios, folios, nr_folios);
kho_preserve_vmalloc(preserved_folios, &folios_info);
[1] https://lore.kernel.org/all/20250807014442.3829950-30-pasha.tatashin@soleen.com
v3 changes:
* rebase on mm-unstable
v2: https://lore.kernel.org/all/20250905131302.3595582-1-rppt@kernel.org
* support preservation of vmalloc backed by large pages
* add check for supported vmalloc flags and preserve the flags to be
able to identify incompatible preservations
* don't use kho_preserve_phys()
* add kernel-doc
v1: https://lore.kernel.org/all/20250903063018.3346652-1-rppt@kernel.org
Mike Rapoport (Microsoft) (2):
kho: add support for preserving vmalloc allocations
lib/test_kho: use kho_preserve_vmalloc instead of storing addresses in fdt
include/linux/kexec_handover.h | 12 ++
kernel/kexec_handover.c | 200 +++++++++++++++++++++++++++++++++
lib/test_kho.c | 41 +++++--
3 files changed, 241 insertions(+), 12 deletions(-)
base-commit: b024763926d2726978dff6588b81877d000159c1
--
2.50.1
Powered by blists - more mailing lists