Message ID | 20211019090108.25501-8-mgorman@techsingularity.net (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Remove dependency on congestion_wait in mm/ | expand |
On Tue, 19 Oct 2021, 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. Would love to see the comparable tracing results for after the patch. Thanks, NeilBrown > > Signed-off-by: Mel Gorman <mgorman@techsingularity.net> > Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > mm/vmscan.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 1f5c467dc83c..ec2006680242 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1033,6 +1033,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; > > -- > 2.31.1 > >
On Fri, Oct 22, 2021 at 12:07:43PM +1100, NeilBrown wrote: > On Tue, 19 Oct 2021, 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. > > Would love to see the comparable tracing results for after the patch. > They're in the leader. The trace figures in the changelog are the ones I had at the time the patch was developed and I didn't keep them up to date to reduce overall test time. At the last set of results, some throttling was still hitting the full timeout; [....] 843 usec_timeout=500000 usect_delayed=12000 reason=VMSCAN_THROTTLE_NOPROGRESS 1299 usec_timeout=500000 usect_delayed=104000 reason=VMSCAN_THROTTLE_NOPROGRESS 2839 usec_timeout=500000 usect_delayed=8000 reason=VMSCAN_THROTTLE_NOPROGRESS 10111 usec_timeout=500000 usect_delayed=4000 reason=VMSCAN_THROTTLE_NOPROGRESS 21492 usec_timeout=500000 usect_delayed=0 reason=VMSCAN_THROTTLE_NOPROGRESS 36441 usec_timeout=500000 usect_delayed=500000 reason=VMSCAN_THROTTLE_NOPROGRESS
diff --git a/mm/vmscan.c b/mm/vmscan.c index 1f5c467dc83c..ec2006680242 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1033,6 +1033,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;