Hi all, The below patch implements the table based memory preservation mechanism I suggested. It is a replacement of this patch. Instead of using an xarray of bitmaps and converting them into a linked list of bitmaps at serialization time, it tracks preserved pages in a page table like format, that needs no extra work when serializing. This results in noticeably better performance when preserving a large number of pages. To compare performance, I allocated 48 GiB of memory and preserved it using KHO. Below is the time taken to make the reservations, and then serialize that to FDT. Linked list: 577ms +- 0.7% (6 samples) Table: 469ms +- 0.6% (6 samples)