From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id A94838013F for ; Mon, 31 Aug 2026 23:50:51 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 67VNncA6032355; Tue, 1 Sep 2026 02:49:39 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 67VNncA6032355 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="YNmyd28J" Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 67VNnYXL032338 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 1 Sep 2026 02:49:35 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 67VNnYXL032338 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-47d81cf0c4cso2408212f8f.2 for ; Mon, 31 Aug 2026 16:49:35 -0700 (PDT) X-Gm-Message-State: AFuF++mnAusuVRGFi1lMlh9x3oDAgq3rKaV+gohx6M/7nlZOSlQZPM25 Zan+m+oX1laZ2t9gnbDesaLBVMhhgynaCbS7OdsWhBdvx8HzIqJSNwJ6FVoFWfGneVkLcXNKgaQ d2j4lTwnAevvC4ppQgfejb7BwTjKkvWZVvvGEKu6bRd9VqV+0uyIrqg== X-Gm-Gg: AR+sD10GGDxmpiRAmZCxyBWIPDn+D/ZxIEf7OTV9lBNTkfztlvdpZpGan0I7xSNGq6m MHGqQ6GCGrvJIyo7VsWyxx4XJGvyXL5C/rCi960268L/w3yqBV3CpX5YJFL9/2FcECPl1koepM7 Hmzz9SqxNuUJC3SP9cfroR75jQinztE+eIBKXuQBH1EkEh3MybVFbg+aV+3hmOx9rnCQDgvtzEx KzfpwCz06EhIfzeaX2TUxh4sRnCYgwdIzlvTE14umSCl3pOSjJ/6T4AGVjZmJ9fcMWo8f5J4GTD 9C6aNwJ8eGSwzsQB8ogZvXkdUiUC4yWKaV1McmmrTjai8u1FSpesErmW0dW2tZQdd9TwuhkDlEV qNwNRPFcXf5rTojDJVpgFQGgrsg== X-Received: by 2002:a05:600c:3b13:b0:495:4d5c:903e with SMTP id 5b1f17b1804b1-49cdc4332d4mr70735295e9.7.1788220174690; Mon, 31 Aug 2026 16:49:34 -0700 (PDT) X-Received: by 2002:a05:600c:3b13:b0:495:4d5c:903e with SMTP id 5b1f17b1804b1-49cdc4332d4mr70734815e9.7.1788220174176; Mon, 31 Aug 2026 16:49:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1788220174; cv=none; d=google.com; s=arc-20260327; b=W4kqwzuO/dY3zSlWm/wrY6f2k4L/RujsqmDboLP3GhBwNStQIFjB2Vjhd/IvZumJ3l thWjODuGkYJA08lERHOMPeujlPFCFubCCsDUZfmjauZ3z00KcXH1Yy8u74qWooL0DywR xoJvjgrhw5rYLcR1SPKaCXsETM4lvaMGes/r/bCpuNI89fCSXeUhADKnGzbU0MdM/Vyz L5sVPwMENCS19wFQ37wUWIejYcOmvQKvFP0IcR1MtwQ/1ULsr9CXt3h2o4LL2pzvamv3 +94E2S1loyHNI1xmYjtyT3pGG5vJf0t+tiWpy1hK1JROiRF0Ntnvsbbh3YOJByt6RmDr ZLeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=b86yilbDzJhSDl5aJrpCSZR08h393zeYs3vejjmVPRU=; fh=WpT6aB7RBAGHZeWZzqAr71yzRFbPTYkPWKsRagLn48Q=; b=YgZ4LhRpp+2kBlo9mtsBgxA4DMwUJk+MIi7x2OJ1gfl0Q8WGaaEEHTMGic2kUyNHC6 JmRVg6HXhS+VwsZJoDliczGlxHLpdzGyQTpqXyoJVKLG8yPudmPzrBL24LSZw3UBPEDn C6KTdAkNxo7YjzgOfFAVpwMxRNV+NWBFgAgPUaLf1hFiiqMDtvJSnrecSswbxPxoC+Bg CJ/CRXuwR1lftUUuO40ZHeDwk2xp3iq1KCDkZnjIgKFdsPHQYSugnH5MQSuoyZXK1Tsy ulf4zSFYm/7zvyV4YdRtObsbagahn0tvFkKP+9H/JGFw14Qt4QMj5sNghvz08J4OThSB Acbw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=YNmyd28J; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48442e7cfa1si953295f8f.402.2026.08.31.16.49.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Aug 2026 16:49:34 -0700 (PDT) Received-SPF: pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=YNmyd28J; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=b86yilbDzJhSDl5aJrpCSZR08h393zeYs3vejjmVPRU=; b=YNmyd28JHQdB c/diGMrZTdkVI0osXT0lKhoM0DOfl9ypUf5fKRM76GWOF3y75wNkzIenozbnR+DfYgn7eizs7Ep0u AbbhmJVffScBxDiJueV50/qPNS8DvjaFw+Suk80aC54hn49TIlwV+3W0wlTDFCJhblDnxnwgpQpWs j/c4it2PZ0sPHQ9CiYgH3Ech6NksjTi5sfD7L9BVnBlhjmfyccACU7YOQ3vp3g4AD+n9HXsL6hJhC yaDybMyhSVTLoPDMDq0qJHMZmZjP3JgpWxbaWfWIo/qmM29G2Z4AqmOo1i9I7q/k9/sOcaGdPWcjU kSDBMi6obY5KXKoqj9fBqA==; Received: from ch-vpn.virtuozzo.com ([130.117.225.6] helo=LekKit-T14) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1x1BiV-00AuEb-0K; Tue, 01 Sep 2026 01:49:24 +0200 From: Eva Kurchatova To: khorenko@virtuozzo.com Date: Tue, 1 Sep 2026 02:49:21 +0300 Message-ID: <20260831234932.1651140-2-eva.kurchatova@virtuozzo.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260831234932.1651140-1-eva.kurchatova@virtuozzo.com> References: <20260831234932.1651140-1-eva.kurchatova@virtuozzo.com> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH vz10 2/3] ms/selftests/mm/charge_reserved_hugetlb.sh: add waits with timeout helper X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org From: Li Wang The hugetlb cgroup usage wait loops in charge_reserved_hugetlb.sh were unbounded and could hang forever if the expected cgroup file value never appears (e.g. due to write_to_hugetlbfs in Error mapping). === Error log === # uname -r 6.12.0-xxx.el10.aarch64+64k # ls /sys/kernel/mm/hugepages/hugepages-* hugepages-16777216kB/ hugepages-2048kB/ hugepages-524288kB/ #./charge_reserved_hugetlb.sh -cgroup-v2 # ----------------------------------------- ... # nr hugepages = 10 # writing cgroup limit: 5368709120 # writing reseravation limit: 5368709120 ... # write_to_hugetlbfs: Error mapping the file: Cannot allocate memory # Waiting for hugetlb memory reservation to reach size 2684354560. # 0 # Waiting for hugetlb memory reservation to reach size 2684354560. # 0 # Waiting for hugetlb memory reservation to reach size 2684354560. # 0 # Waiting for hugetlb memory reservation to reach size 2684354560. # 0 # Waiting for hugetlb memory reservation to reach size 2684354560. # 0 # Waiting for hugetlb memory reservation to reach size 2684354560. # 0 ... Introduce a small helper, wait_for_file_value(), and use it for: - waiting for reservation usage to drop to 0, - waiting for reservation usage to reach a given size, - waiting for fault usage to reach a given size. This makes the waits consistent and adds a hard timeout (60 tries with 1s sleep) so the test fails instead of stalling indefinitely. Link: https://lkml.kernel.org/r/20251221122639.3168038-4-liwang@redhat.com Signed-off-by: Li Wang Acked-by: David Hildenbrand (Red Hat) Cc: Mark Brown Cc: Shuah Khan Cc: Waiman Long Signed-off-by: Andrew Morton (cherry picked from commit b618876f2e7055160cc5b98b4ff5cd8917e7b49e) https://virtuozzo.atlassian.net/browse/VSTOR-139679 Feature: fix selftests Signed-off-by: Eva Kurchatova --- .../selftests/mm/charge_reserved_hugetlb.sh | 51 +++++++++++-------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/tools/testing/selftests/mm/charge_reserved_hugetlb.sh b/tools/testing/selftests/mm/charge_reserved_hugetlb.sh index e1fe16bcbbe8..912fc6ec53ab 100755 --- a/tools/testing/selftests/mm/charge_reserved_hugetlb.sh +++ b/tools/testing/selftests/mm/charge_reserved_hugetlb.sh @@ -100,7 +100,7 @@ function setup_cgroup() { echo writing cgroup limit: "$cgroup_limit" echo "$cgroup_limit" >$cgroup_path/$name/hugetlb.${MB}MB.$fault_limit_file - echo writing reseravation limit: "$reservation_limit" + echo writing reservation limit: "$reservation_limit" echo "$reservation_limit" > \ $cgroup_path/$name/hugetlb.${MB}MB.$reservation_limit_file @@ -112,41 +112,50 @@ function setup_cgroup() { fi } +function wait_for_file_value() { + local path="$1" + local expect="$2" + local max_tries=60 + + if [[ ! -r "$path" ]]; then + echo "ERROR: cannot read '$path', missing or permission denied" + return 1 + fi + + for ((i=1; i<=max_tries; i++)); do + local cur="$(cat "$path")" + if [[ "$cur" == "$expect" ]]; then + return 0 + fi + echo "Waiting for $path to become '$expect' (current: '$cur') (try $i/$max_tries)" + sleep 1 + done + + echo "ERROR: timeout waiting for $path to become '$expect'" + return 1 +} + function wait_for_hugetlb_memory_to_get_depleted() { local cgroup="$1" local path="$cgroup_path/$cgroup/hugetlb.${MB}MB.$reservation_usage_file" - # Wait for hugetlbfs memory to get depleted. - while [ $(cat $path) != 0 ]; do - echo Waiting for hugetlb memory to get depleted. - cat $path - sleep 0.5 - done + + wait_for_file_value "$path" "0" } function wait_for_hugetlb_memory_to_get_reserved() { local cgroup="$1" local size="$2" - local path="$cgroup_path/$cgroup/hugetlb.${MB}MB.$reservation_usage_file" - # Wait for hugetlbfs memory to get written. - while [ $(cat $path) != $size ]; do - echo Waiting for hugetlb memory reservation to reach size $size. - cat $path - sleep 0.5 - done + + wait_for_file_value "$path" "$size" } function wait_for_hugetlb_memory_to_get_written() { local cgroup="$1" local size="$2" - local path="$cgroup_path/$cgroup/hugetlb.${MB}MB.$fault_usage_file" - # Wait for hugetlbfs memory to get written. - while [ $(cat $path) != $size ]; do - echo Waiting for hugetlb memory to reach size $size. - cat $path - sleep 0.5 - done + + wait_for_file_value "$path" "$size" } function write_hugetlbfs_and_get_usage() { -- 2.55.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel