Re: [patch for-4.7] mm, compaction: prevent VM_BUG_ON when terminating freeing scanner

From: Minchan Kim
Date: Wed Jul 06 2016 - 02:49:57 EST


On Wed, Jun 29, 2016 at 02:47:20PM -0700, David Rientjes wrote:
> It's possible to isolate some freepages in a pageblock and then fail
> split_free_page() due to the low watermark check. In this case, we hit
> VM_BUG_ON() because the freeing scanner terminated early without a
> contended lock or enough freepages.
>
> This should never have been a VM_BUG_ON() since it's not a fatal
> condition. It should have been a VM_WARN_ON() at best, or even handled
> gracefully.
>
> Regardless, we need to terminate anytime the full pageblock scan was not
> done. The logic belongs in isolate_freepages_block(), so handle its state
> gracefully by terminating the pageblock loop and making a note to restart
> at the same pageblock next time since it was not possible to complete the
> scan this time.
>
> Reported-by: Minchan Kim <minchan@xxxxxxxxxx>
> Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Tested-by: Minchan Kim <minchan@xxxxxxxxxx>

I don't know you sill send updated version based on Joonsoo again.
Anyway, this patch itself doesn't trigger VM_BUG_ON in my test.

Thanks.