[PATCH v6 3/3] arm64: hibernate: Support DEBUG_PAGEALLOC

Catalin Marinas catalin.marinas at arm.com
Thu Aug 25 08:54:20 PDT 2016


On Wed, Aug 24, 2016 at 06:27:30PM +0100, James Morse wrote:
> DEBUG_PAGEALLOC removes the valid bit of page table entries to prevent
> any access to unallocated memory. Hibernate uses this as a hint that those
> pages don't need to be saved/restored. This patch adds the
> kernel_page_present() function it uses.
> 
> hibernate.c copies the resume kernel's linear map for use during restore.
> Add _copy_pte() to fill-in the holes made by DEBUG_PAGEALLOC in the resume
> kernel, so we can restore data the original kernel had at these addresses.
> 
> Finally, DEBUG_PAGEALLOC means the linear-map alias of KERNEL_START to
> KERNEL_END may have holes in it, so we can't lazily clean this whole
> area to the PoC. Only clean the new mmuoff region, and the kernel/kvm
> idmaps.
> 
> This reverts commit da24eb1f3f9e2c7b75c5f8c40d8e48e2c4789596.
> 
> Reported-by: Will Deacon <will.deacon at arm.com>
> Signed-off-by: James Morse <james.morse at arm.com>
> Cc: Catalin Marinas <catalin.marinas at arm.com>

Reviewed-by: Catalin Marinas <catalin.marinas at arm.com>



More information about the linux-arm-kernel mailing list