On Sun, Sep 21, 2025 at 6:26 PM Matthew Wilcox <[email protected]> wrote: > > On Wed, Sep 17, 2025 at 08:36:09AM -0300, Jason Gunthorpe wrote: > > On Tue, Sep 16, 2025 at 07:50:15PM -0700, Jason Miu wrote: > > > This series transitions KHO from an xarray-based metadata tracking > > > system with serialization to using page table like data structures > > > that can be passed directly to the next kernel. > > > > > > The key motivations for this change are to: > > > - Eliminate the need for data serialization before kexec. > > > - Remove the former KHO state machine by deprecating the finalize > > > and abort states. > > > - Pass preservation metadata more directly to the next kernel via the FDT. > > > > > > The new approach uses a per-order page table structure (kho_order_table, > > > kho_page_table, kho_bitmap_table) to mark preserved pages. The physical > > > address of the root `kho_order_table` is passed in the FDT, allowing the > > > next kernel to reconstruct the preserved memory map. > > > > It is not a "page table" structure, it is just a radix tree with bits > > as the leaf. > > Sounds like the IDA data structure. Maybe that API needs to be enhanced > for this use case, but surely using the same data structure would be a > good thing?
Normally, I would agree, but in this case, this has to be a simple data structure that, in the long run, is going to be stable between different kernel versions: the old and the next kernel must understand it. Therefore, relying on any external data structure would require the maintainers and other developers to be aware of this rather unusual kernel requirement. So, I think it is much better to keep this implementation private to KHO, whose only responsibility is reliably passing memory pages from the old kernel to the next kernel.
