Re: [PATCH v3] mm/page_alloc: bail out on fatal signal during reclaim/compaction retry attempt

From: Vlastimil Babka
Date: Thu May 20 2021 - 06:35:12 EST


On 5/20/21 6:34 AM, Andrew Morton wrote:
> On Wed, 19 May 2021 21:17:43 +0100 Aaron Tomlin <atomlin@xxxxxxxxxx> wrote:
>
>> It does not make sense to retry compaction when a fatal signal is
>> pending.
>
> Well, it might make sense. Presumably it is beneficial to other tasks.

Yeah but the compaction won't happen. compact_zone() will immediately detect it
via __compact_finished() and bail out. So in that sense it does not make sense
to retry :)

>> In the context of try_to_compact_pages(), indeed COMPACT_SKIPPED can be
>> returned; albeit, not every zone, on the zone list, would be considered
>> in the case a fatal signal is found to be pending.
>> Yet, in should_compact_retry(), given the last known compaction result,
>> each zone, on the zone list, can be considered/or checked
>> (see compaction_zonelist_suitable()). For example, if a zone was found
>> to succeed, then reclaim/compaction would be tried again
>> (notwithstanding the above).
>>
>> This patch ensures that compaction is not needlessly retried
>> irrespective of the last known compaction result e.g. if it was skipped,
>> in the unlikely case a fatal signal is found pending.
>> So, OOM is at least attempted.
>
> What observed problems motivated this change?
>
> What were the observed runtime effects of this change?

Yep those details from the previous thread should be included here.