Re: [PATCH] kexec: unmap reserved pages for each error-return way
From: Xunlei Pang
Date: Thu Jan 28 2016 - 22:14:40 EST
On 2016/01/28 at 17:02, Dmitry Safonov wrote:
> On 01/28/2016 05:58 AM, Xunlei Pang wrote:
>> Hi Dmitry,
>> On 2016/01/28 at 03:15, Andrew Morton wrote:
>>> On Wed, 27 Jan 2016 14:48:31 +0300 Dmitry Safonov <dsafonov@xxxxxxxxxxxxx> wrote:
>>>> For allocation of kimage failure or kexec_prepare or load segments
>>>> errors there is no need to keep crashkernel memory mapped.
>>>> It will affect only s390 as map/unmap hook defined only for it.
>>>> As on unmap s390 also changes os_info structure let's check return code
>>>> and add info only on success.
>>> This conflicts (both mechanically and somewhat conceptually) with
>>> Xunlei Pang's "kexec: Introduce a protection mechanism for the
>>> crashkernel reserved memory" and "kexec: provide
>>> so can we please sort all that out?
>> Ah, I've checked git-log history, they are almost the same idea, can crash_unmap/map_reserved_pages()
>> be re-implemented using the new arch_kexec_unprotect/protect_crashkres() on S390?
> Sorry, didn't fetched akpm before sending.
> Yes, sounds like really right thing to do to have one united arch-helper.
Yeah, as Michael said, "memblock_remove(crash_base, crash_size)" creates a big hole in the kernel pgtable.
In order to have one united arch-helper, I guess we can forbid this to let the pgtable setup for crash memory,
then we can easily move the logic of crash_map_reserved_pages() to arch_kexec_unprotect_crashkres(), and
move crash_unmap_reserved_pages() to arch_kexec_protect_crashkres(). After that crash_map_reserved_pages()
called in crash_shrink_memory() can be safely removed as well.
>>> kexec mailing list
> Dmitry Safonov