powerpc/fadump: add reschedule point while releasing memory
authorHari Bathini <hbathini@linux.vnet.ibm.com>
Thu, 1 Jun 2017 19:40:10 +0000 (01:10 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 28 Jun 2017 03:08:11 +0000 (13:08 +1000)
commit68fa6478e3b1fab7077d390070ed455aed93905c
tree8f3a0d16416047926cc6904062dbad49d6a17690
parenta5a05b91c7f36c180c32e27fa41890957c31bad1
powerpc/fadump: add reschedule point while releasing memory

Around 95% of memory is reserved by fadump/capture kernel. All this
memory is freed, one page at a time, on writing '1' to the node
/sys/kernel/fadump_release_mem. On systems with large memory, this
can take a long time to complete, leading to soft lockup warning
messages. To avoid this, add reschedule points at regular intervals.

Also, while memblock_reserve() implicitly takes care of holes in the
given memory range while reserving memory, those holes need to be
taken care of while releasing memory as memory is freed one page at
a time. Add support to skip holes while releasing memory.

Suggested-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Hari Bathini <hbathini@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/fadump.c