From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eva Kurchatova Date: Fri, 21 Aug 2026 18:13:24 +0300 Subject: [Devel] [PATCH vz10] selftests/damon: wait for the merge to apply the new max_nr_regions Message-ID: <20260821151326.794546-1-eva.kurchatova@virtuozzo.com> List-Id: damon_nr_regions sleeps 0.3s after committing max_nr_regions and then reads the number of regions back, which assumes the merge has happened by then. On a machine that is not idle it has not, and the test fails on a region count that is still the old one. Poll until the count settles instead of sleeping for a fixed time. https://virtuozzo.atlassian.net/browse/VSTOR-132453 Feature: fix selftests Signed-off-by: Eva Kurchatova --- .../selftests/damon/damon_nr_regions.py | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/tools/testing/selftests/damon/damon_nr_regions.py b/tools/testing/selftests/damon/damon_nr_regions.py index cb31cd140d22..39063ce5b27d 100755 --- a/tools/testing/selftests/damon/damon_nr_regions.py +++ b/tools/testing/selftests/damon/damon_nr_regions.py @@ -4,6 +4,7 @@ import subprocess import time + import _damon_sysfs def test_nr_regions(real_nr_regions, min_nr_regions, max_nr_regions): @@ -114,27 +115,31 @@ def main(): proc.terminate() print('commit failed: %s' % err) exit(1) - # wait for next merge operation is executed - time.sleep(0.3) + # wait for the merge operations to apply the new max_nr_regions + nr_tried_regions = 0 + for _ in range(50): + time.sleep(0.1) - err = kdamonds.kdamonds[0].update_schemes_tried_regions() - if err is not None: - proc.terminate() - print('tried regions update failed: %s' % err) - exit(1) + err = kdamonds.kdamonds[0].update_schemes_tried_regions() + if err is not None: + proc.terminate() + print('tried regions update failed: %s' % err) + exit(1) - scheme = kdamonds.kdamonds[0].contexts[0].schemes[0] - if scheme.tried_regions is None: - proc.terminate() - print('tried regions is not collected') - exit(1) + scheme = kdamonds.kdamonds[0].contexts[0].schemes[0] + if scheme.tried_regions is None: + proc.terminate() + print('tried regions is not collected') + exit(1) + + nr_tried_regions = len(scheme.tried_regions) + if 0 < nr_tried_regions <= 7: + break + proc.terminate() - nr_tried_regions = len(scheme.tried_regions) if nr_tried_regions <= 0: - proc.terminate() print('tried regions is not created') exit(1) - proc.terminate() if nr_tried_regions > 7: print('fail online-tuned max_nr_regions: %d > 7' % nr_tried_regions) -- 2.55.0