[PATCH] powerpc/fadump: add reschedule point while releasing memory

Michael Ellerman mpe at ellerman.id.au
Tue May 30 21:08:16 AEST 2017


Hari Bathini <hbathini at linux.vnet.ibm.com> writes:

> 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.
>
> Suggested-by: Michael Ellerman <mpe at ellerman.id.au>
> Signed-off-by: Hari Bathini <hbathini at linux.vnet.ibm.com>
> ---
>  arch/powerpc/kernel/fadump.c |   60 ++++++++++++++++++++++++++++++++++--------
>  1 file changed, 49 insertions(+), 11 deletions(-)

I'm not sure this needs to be this complicated?

Can we just do something like:

	for (i = 0, addr = begin; addr < end; addr += PAGE_SIZE, i++) {
		/*
		 * exclude the dump reserve area. Will reuse it for next
		 * fadump registration.
		 */
		if (addr <= ra_end && ((addr + PAGE_SIZE) > ra_start))
			continue;

		free_reserved_page(pfn_to_page(addr >> PAGE_SHIFT));

		if (time_after(jiffies, time_limit)) {
			cond_resched();
			time_limit = jiffies + HZ;
		}
	}

cheers


More information about the Linuxppc-dev mailing list