Re: [PATCH 7/8] mm/vmscan: Increase the timeout if page reclaim is not making progress

From: Vlastimil Babka
Date: Thu Oct 14 2021 - 11:39:13 EST


On 10/8/21 15:53, Mel Gorman wrote:
> Tracing of the stutterp workload showed the following delays
>
> 1 usect_delayed=124000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=128000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=176000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=536000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=544000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=556000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=624000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=716000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 1 usect_delayed=772000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 2 usect_delayed=512000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 16 usect_delayed=120000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 53 usect_delayed=116000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 116 usect_delayed=112000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 5907 usect_delayed=108000 reason=VMSCAN_THROTTLE_NOPROGRESS
> 71741 usect_delayed=104000 reason=VMSCAN_THROTTLE_NOPROGRESS
>
> All the throttling hit the full timeout and then there was wakeup delays
> meaning that the wakeups are premature as no other reclaimer such as
> kswapd has made progress. This patch increases the maximum timeout.
>
> Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>

> ---
> mm/vmscan.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index e096e81dcbd8..7b54fec4072c 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -1038,6 +1038,8 @@ void reclaim_throttle(pg_data_t *pgdat, enum vmscan_throttle_state reason)
> */
> switch(reason) {
> case VMSCAN_THROTTLE_NOPROGRESS:
> + timeout = HZ/2;
> + break;
> case VMSCAN_THROTTLE_WRITEBACK:
> timeout = HZ/10;
> break;
>