[PATCH 0/4] arch, mm: improve robustness of direct map manipulation
David Hildenbrand
david at redhat.com
Thu Oct 29 04:15:47 EDT 2020
On 25.10.20 11:15, Mike Rapoport wrote:
> From: Mike Rapoport <rppt at linux.ibm.com>
>
> Hi,
>
> During recent discussion about KVM protected memory, David raised a concern
> about usage of __kernel_map_pages() outside of DEBUG_PAGEALLOC scope [1].
>
> Indeed, for architectures that define CONFIG_ARCH_HAS_SET_DIRECT_MAP it is
> possible that __kernel_map_pages() would fail, but since this function is
> void, the failure will go unnoticed.
>
> Moreover, there's lack of consistency of __kernel_map_pages() semantics
> across architectures as some guard this function with
> #ifdef DEBUG_PAGEALLOC, some refuse to update the direct map if page
> allocation debugging is disabled at run time and some allow modifying the
> direct map regardless of DEBUG_PAGEALLOC settings.
>
> This set straightens this out by restoring dependency of
> __kernel_map_pages() on DEBUG_PAGEALLOC and updating the call sites
> accordingly.
>
So, I was primarily wondering if we really have to touch direct mappings
in hibernation code, or if we can avoid doing that. I was wondering if
we cannot simply do something like kmap() when trying to access a
!mapped page. Similar to reading old-os memory after kexec when in
kdump. Just a thought.
--
Thanks,
David / dhildenb
More information about the linux-riscv
mailing list