All Virtuozzo development lists (kernel + QEMU)
 help / color / mirror / Atom feed
* [Devel] [PATCH vz10] selftests/damon: wait for the merge to apply the new max_nr_regions
@ 2026-08-21 15:13 Eva Kurchatova
  2026-08-31 23:22 ` Eva Kurchatova (Virtuozzo)
  0 siblings, 1 reply; 2+ messages in thread
From: Eva Kurchatova @ 2026-08-21 15:13 UTC (permalink / raw)


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 <eva.kurchatova@virtuozzo.com>
---
 .../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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Devel] [PATCH vz10] selftests/damon: wait for the merge to apply the new max_nr_regions
  2026-08-21 15:13 [Devel] [PATCH vz10] selftests/damon: wait for the merge to apply the new max_nr_regions Eva Kurchatova
@ 2026-08-31 23:22 ` Eva Kurchatova (Virtuozzo)
  0 siblings, 0 replies; 2+ messages in thread
From: Eva Kurchatova (Virtuozzo) @ 2026-08-31 23:22 UTC (permalink / raw)
  To: devel


On 8/21/26 18:13, Eva Kurchatova wrote:
> 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 <eva.kurchatova@virtuozzo.com>
> ---
>   .../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)

Sent v2, replacing this commit with two upstream backports: 
https://lists.openvz.org/pipermail/devel/2026-September/084959.html

Verification: 
https://bitbucket.org/virtuozzocore/vzkernel.vzspecs/pipelines/results/609


_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-08-31 23:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-21 15:13 [Devel] [PATCH vz10] selftests/damon: wait for the merge to apply the new max_nr_regions Eva Kurchatova
2026-08-31 23:22 ` Eva Kurchatova (Virtuozzo)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.