From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mta0.migadu.com (out-148.mta0.migadu.com [91.218.175.148]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BE3D481665 for ; Mon, 7 Sep 2026 12:35:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.148 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788784549; cv=none; b=eEdy2Yatgld5fCY2dGQGkoc+PP1Dj3N2RpVJtnr6UXm6+CkiQp0I/VpjUKayn2jabWL25llni0FacOJHPt5enm07QOJdRhWxCd9X6kqtTrbduJ9wa147llJhmTc8/LgUcORL9M1yqLL2aZlFUT/CKB82m0eNGEQdy3+TFoMP3Ow= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788784549; c=relaxed/simple; bh=9Vrwldiu86hCVdvrUFji2IlPOad8eDYhb/cvDGNbV4A=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=VjrT76ZfjfYL+u5ydUBHSKk5igaEfpQM5CSM4+oMNvaJlxOotU0PfvA/bq2vfHBPiHNab0Cn3GIkFLYRxIbEy92RC7TvftfwOegucOsUbk01qiXxdbWDqEDyG3WBCx9qn+Pm7C5tASzSM7TH18ulvREo5O4qclMj3A0a7NZbW8A= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=ozLwK3Pb; arc=none smtp.client-ip=91.218.175.148 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="ozLwK3Pb" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=9Vrwldiu86hCVdvrUFji2IlPOad8eDYhb/cvDGNbV4A=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1788784545; v=1; x=1789389345; b=ozLwK3Pb65dziwhuS3T7hQnggmdjF3z/rCiFJmrCNG9T2WXRd4yM4DMNHRoekv2yF8hOaQB2 nP2Zc3HnL1+2Zqy+H3PrgrRzJGvd4eQxrKmZgsbG8vtOfEyFDRXDcN4qtFq88yomaFQNPv+w4St CoQsODqU01cGJp37btoEo4QU= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 83939cb49fa7006e; Mon, 07 Sep 2026 12:35:31 +0000 X-Mizu-Trace-ID: 83939cb49fa7006e X-Migadu-Flow: FLOW_OUT From: Zenghui Yu To: damon@lists.linux.dev, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: sj@kernel.org, shuah@kernel.org, akpm@linux-foundation.org, ekffu200098@gmail.com, "Zenghui Yu (Huawei)" Subject: [PATCH] selftests/damon: stop kdamond on error exits of no-op commit test Date: Mon, 7 Sep 2026 20:34:55 +0800 Message-ID: <20260907123455.67246-1-zenghui.yu@linux.dev> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: "Zenghui Yu (Huawei)" The sysfs_no_op_commit_break test starts a kdamond via sysfs, but its error paths (e.g., drgn not installed) exit without stopping it. The leaked kdamond then makes subsequent tests, e.g. lru_sort.sh and reclaim.sh, skip with "Another kdamond is running". Wrap the post-start logic in try-finally so that kdamonds.stop() is executed on every exit path. Fixes: 10725cd2b09a ("selftests/damon: test no-op commit broke DAMON status") Assisted-by: GLM-5.3 OpenCode Signed-off-by: Zenghui Yu (Huawei) --- .../damon/sysfs_no_op_commit_break.py | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/damon/sysfs_no_op_commit_break.py b/tools/testing/selftests/damon/sysfs_no_op_commit_break.py index 2c65cffe6b54..81774ddc55ac 100755 --- a/tools/testing/selftests/damon/sysfs_no_op_commit_break.py +++ b/tools/testing/selftests/damon/sysfs_no_op_commit_break.py @@ -47,26 +47,27 @@ def main(): print('kdamond start failed: %s' % err) exit(1) - before_commit_status, err = \ - dump_damon_status_dict(kdamonds.kdamonds[0].pid) - if err is not None: - print('before-commit status dump failed: %s' % err) - exit(1) + try: + before_commit_status, err = \ + dump_damon_status_dict(kdamonds.kdamonds[0].pid) + if err is not None: + print('before-commit status dump failed: %s' % err) + exit(1) - kdamonds.kdamonds[0].commit() + kdamonds.kdamonds[0].commit() - after_commit_status, err = \ - dump_damon_status_dict(kdamonds.kdamonds[0].pid) - if err is not None: - print('after-commit status dump failed: %s' % err) - exit(1) - - if before_commit_status != after_commit_status: - print(f'before: {json.dumps(before_commit_status, indent=2)}') - print(f'after: {json.dumps(after_commit_status, indent=2)}') - exit(1) + after_commit_status, err = \ + dump_damon_status_dict(kdamonds.kdamonds[0].pid) + if err is not None: + print('after-commit status dump failed: %s' % err) + exit(1) - kdamonds.stop() + if before_commit_status != after_commit_status: + print(f'before: {json.dumps(before_commit_status, indent=2)}') + print(f'after: {json.dumps(after_commit_status, indent=2)}') + exit(1) + finally: + kdamonds.stop() if __name__ == '__main__': main() -- 2.53.0