On Wed, Sep 03, 2025 at 03:59:40PM +0000, Pasha Tatashin wrote: > vmalloc is always fully populated, but if we add support for > preserving an area with holes, it can also be used for preserving > vmalloc. Why? If you can't create it with vmap what is the point? > By the way, I don't like calling it *vmalloc* preservation > because we aren't preserving the original virtual addresses; we are > preserving a list of pages that are reassembled into a virtually > contiguous area. Maybe kho map, or kho page map, not sure, but vmalloc > does not sound right to me. No preservation retains the virtual address, that is pretty much universal. It is vmalloc preservation because the flow is x = vmalloc() kho_preserve_vmalloc(x, &preserved) [..] x = kho_restore_vmalloc(preserved) vfree(x) It is the same naming as folio preservation. Upon restore you get a vmalloc() back. > > And again in real systems we expect memfd to be fully populated too. > > I thought so too, but we already have a use case for slightly sparse > memfd, unfortunately, that becomes *very* inefficient when fully > populated. Really? Why not use multiple memfds :( So maybe you need to do optimized sparseness in memfd :( Jason