Re: [PATCH] mm/page_alloc: bail out on fatal signal during reclaim/compaction retry attempt
From: Aaron Tomlin
Date: Wed May 19 2021 - 15:08:11 EST
On Wed 2021-05-19 17:22 +0200, Vlastimil Babka wrote:
> Hm, indeed, if fatal_signal_pending() is true then try_to_compact_pages() will
> bail out in the for-each-zone loop after trying a single zone and if that zone
> keeps returning COMPACT_SKIPPED, things can get stuck.
> And direct reclaim might see compaction_ready() for another zone and return 1,
> faking the progress.
Indeed.
> So your patch seems to be solving the issue. But maybe we should just do the
> test at the beginning of should_compact_retry() and not specific to
> compaction_needs_reclaim() - if there's a fatal signal, there will be no
> compaction happening, so we should just say not to retry.
Fair enough - I will post a v2.
> I suppose if the patch fixes your situation where fatal_signal_pending() was
> true, there's hopefully not a more general problem with the retry logic?
At the present time, not to my knowledge. That being said, I will continue
to review the relevant source code further.
Kind regards,
--
Aaron Tomlin
Attachment:
signature.asc
Description: PGP signature