From patchwork Thu Jul 13 13:54:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312253 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AB1DC00528 for ; Thu, 13 Jul 2023 13:54:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59427900016; Thu, 13 Jul 2023 09:54:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5413690000B; Thu, 13 Jul 2023 09:54:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3BB1D900016; Thu, 13 Jul 2023 09:54:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 2CB0490000B for ; Thu, 13 Jul 2023 09:54:55 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CC1C9A02C1 for ; Thu, 13 Jul 2023 13:54:54 +0000 (UTC) X-FDA: 81006734508.10.FF493B5 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf13.hostedemail.com (Postfix) with ESMTP id 24EFF2001A for ; Thu, 13 Jul 2023 13:54:52 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf13.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256493; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1UY/dJEooJnNbfAHm7UE9cYo3rXDScw1JA9mM8Arq2c=; b=5QQvfvjG+Tz4Y4Xg54XHlW/wl+EaIsG/nVZo3DT7q2u+R63FrlGj1P4x0nna9YeooHiyBB 9q4LYw7iHOFALrjjXg5XG7QqgtidCONi3XmHyDKVPpCKl9DVJD+mUfvHZ+nRALgYc1qZui hkpvBan//3e43Fg11E20Jfu9UO6xb6k= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf13.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256493; a=rsa-sha256; cv=none; b=QuSjZqHw2rm0OwCEXTpZkrKN2xN7mFarmsm1Y+fvc/PwKfefZQwJYMbZiIlc4AH+NZ5ajl IYfHwbep3Gz6pvq1Zyx2DMp7lL9bQZ0kvlypz5bghwUw4Q3O/RHKB/qBi/roExtoa84m+2 oBB+zPP4x+YUOe7IuJHaJUdUXQKaCpk= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B25D71576; Thu, 13 Jul 2023 06:55:34 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A829D3F73F; Thu, 13 Jul 2023 06:54:50 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 1/9] selftests: Line buffer test program's stdout Date: Thu, 13 Jul 2023 14:54:32 +0100 Message-Id: <20230713135440.3651409-2-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 24EFF2001A X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: xhig7nzrtrtizpug63m4cg3odjr9p5y8 X-HE-Tag: 1689256492-849452 X-HE-Meta: U2FsdGVkX1+4RmHNMBfJ06Clr+oegke7fgC4cDPxLh2S6s74O8GZ4s2HKoNGI86b6KQZwfxnWOXLgMfJOY8LmpiUzrqnuzEqQLhKX40hrpwD/7mRUGS7wNO0x+sPCtfrWD432hvTrzEpceUAhcIzpEod4+yCvObYwjipGCMStjOAHWpocSXZ0qskkjvQIGI2Ss629MkVsepzMyNRjWV1X9dsba/BaKZci4pLUDb6g6aeE/u3KKc8iPS6/XIeIEQJMl0/OQk/lTLjmroVHtUb1RPHjRg5SDIL2IE65tZOltmXZWOQCQRsxW96/BpgYuKqqC5Fc+ycFuq9+xXdBzeUuORT3DG2zU/CraA9MfjPplEkQsg2kusX1+OCVwcCJmSsfP/oOQkBx0hv1As/WK16MsZDbvqdO0M9+IWGFYELnXDeO0p/1gZCOL8nu0CxcWYKlnDS1QXAPO3Jr0KjI2yt0Krwdu+FJexMz617VC/L8VfkDEpe8uopigirLNj0Nt6SMLca9ojFzXBdxUEp5mg9XzbUmdm4yGCSCopj9T7b6UaX5tKGAmXyDLV/j9RnEDSKgnJToVl7hp0dXvGbirDvghf+Gw0WRk2voqftgJ0mYmnc5UWnGBqbOaloh+H+WB165q2pPjM/pC/DFq0ZkAR//zziP/mJ1atw1gjeCulOzS2FfFj8Ad53Qv0p+XvWikjE2oBjUSlCL50jV9sHjHbxFwQQNwjxKC8KL/K/2nARJF04zNOeNhpzjrO9FkUwca5UMkHQdwxwKkxhcSIuHqgb9bRul+YZuQjn+HXrOXUZdpsd68OJPf8M8WTdGS+aDyjox4Q1vLlvSUykU9QEIWlfDtNrUKDKUjiVVpbRovHGhYQ6efH55YiqmVYQr2JwgeoKoifqddM3U3bGG0rNkbPwTraxf5r7gimBILg8M14Jqnyr4QEqtKV1aFR1O+GaScjRTea0LOzCrPcLXaLM+Y2 iGMnmV1e vzJ1Uoy5ew9dKFay5oPhsY86FG0ZI3cOvg4cCL9/cYri2WRA68psTUj33NtuLxHRbpr0Hu4v/vrXPdq5TTuogHEsEe0Pm8rZ5y4pzCj8KSKz/st780c+f8H9jXZHp4mMuifnOqmfJ2u6BMmFh6TbO0EQL/TN56pld2Oke X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: The selftests runner pipes the test program's stdout to tap_prefix. The presence of the pipe means that the test program sets its stdout to be fully buffered (as aposed to line buffered when directly connected to the terminal). The block buffering means that there is often content in the buffer at fork() time, which causes the output to end up duplicated. This was causing problems for mm:cow where test results were duplicated 20-30x. Solve this by using `stdbuf`, when available to force the test program to use line buffered mode. This means previously printf'ed results are flushed out of the program before any fork(). Signed-off-by: Ryan Roberts --- tools/testing/selftests/kselftest/runner.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/kselftest/runner.sh b/tools/testing/selftests/kselftest/runner.sh index 1c952d1401d4..cb2b395ae296 100644 --- a/tools/testing/selftests/kselftest/runner.sh +++ b/tools/testing/selftests/kselftest/runner.sh @@ -105,8 +105,11 @@ run_one() echo "# Warning: file $TEST is missing!" echo "not ok $test_num $TEST_HDR_MSG" else + if [ -x /usr/bin/stdbuf ]; then + stdbuf="/usr/bin/stdbuf --output=L " + fi eval kselftest_cmd_args="\$${kselftest_cmd_args_ref:-}" - cmd="./$BASENAME_TEST $kselftest_cmd_args" + cmd="$stdbuf ./$BASENAME_TEST $kselftest_cmd_args" if [ ! -x "$TEST" ]; then echo "# Warning: file $TEST is not executable" From patchwork Thu Jul 13 13:54:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312254 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0820EC04A6A for ; Thu, 13 Jul 2023 13:54:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E6BC7900017; Thu, 13 Jul 2023 09:54:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DF48490000B; Thu, 13 Jul 2023 09:54:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C952D900017; Thu, 13 Jul 2023 09:54:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id B237490000B for ; Thu, 13 Jul 2023 09:54:56 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6B46CB038C for ; Thu, 13 Jul 2023 13:54:56 +0000 (UTC) X-FDA: 81006734592.25.49A80D1 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf05.hostedemail.com (Postfix) with ESMTP id B4BE3100019 for ; Thu, 13 Jul 2023 13:54:54 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf05.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256494; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yIADLCW8ozAl6AFw8ZxNQyL6kxz5rjSce+zRJErHvIk=; b=kSFso3l+LyVjBLmAgciiDBxLApZhwD3icpNx+Um4olr7szobsWeN+4/LBKmGP2Dx8tJxM/ QPHJ8iwKwBvfRpGN0nZYLZWMg2PZdN1+x7yfbB8ahgLhqaTNqzm/2970gBS0CG1cU/D92n /qUq78h9pETeS5GvqZzA4ChNwc5hoA8= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf05.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256494; a=rsa-sha256; cv=none; b=c+RJB3j6CellqrqChEG76mVeSPZ3+waj6kAmLNyLiAga9dmeTxMye1fQ/GylyMOUK7HBTS txoAQexW1afPovztXa2uWiWyDSTDtotEQ6Wq6vtzKncUq/mqAEKG164W5KXqzc+wuIV3os A7HdrT+3WZGgIBZm9VdAhLeMqzMnjlQ= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 75C6C1595; Thu, 13 Jul 2023 06:55:36 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6BABF3F73F; Thu, 13 Jul 2023 06:54:52 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 2/9] selftests/mm: Give scripts execute permission Date: Thu, 13 Jul 2023 14:54:33 +0100 Message-Id: <20230713135440.3651409-3-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: B4BE3100019 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 7tc8jpaou569aax7of8ji6o57qrmi17d X-HE-Tag: 1689256494-171444 X-HE-Meta: U2FsdGVkX18vh/9oELEwACZtuj5zh7ryd5nXeCizVpy0crwoTTQ/kuKZrVk8LocAS9cGS57yXMlqEHxPe1VdvMwDxKVy3rnLLXsflG6A87VgI3sslf73MLr27JsMmGgoBAEPsbiNGYYyr56vKpNDOmbVBPMu1YoF3r1tng/rmGniqSCMS6nCqn6+pN6V/zamF0Jxm1yW0uT8LV70AHyQNWiqBvSIgYwpFYjoX+vLW65ewfos1CHDF4p5eP8dA48fgQtGIssU1tyJtLZ8x+bs33JDH+de4W1nErxXEusfNOwRuh8crGbPPpMp5APUuVHv/zjeLXi1kOKenA9w3a+YfRdtONjTzDkdJ6fFOW2WBUIWWAqk35k0qWdfw0wCICg9qWFuQ875Mt59XEyLdMkjDD+5OqutsTbJy5CcsslioQdZfsvxB3fFRBnSTDJipm8hjJFkwi9IDnCTyFIhBeu1qRruBD89Srp7sHkigfUCQxF5X1xzZPEC0TNze3YlUX9cRYUxUPO0Z+0QDdArsGmk9stZKW1dOANKkhN6jc0UCI77tmeSp2Vp3Ks6t8tJ4iC0f33P4MLj4wJ4fyS4JM+NZWK1bxBXOyhSkNP3qNFt7H/AzWYccZTirbcR/96TToDU+vPQonNm3ayZZ7nlHjR4oDcFsIbun71r3SOb19nAX73En1HjHrCrKY1VQvol5wKH1HtI3K8d65PlCe5LtLEnMnaxsbBeePwZQ5NcydP51Zpb6EAep96aD6BmY+R2XR/9cpWlJVww2a5JephPirVvf2Cdc37SiQ5OVsip+UpLixT3jsFsH6lNY1bRaXs0ybe68LSzq7192yzDDLzicsePvjCr6Qrlq7/9G0eTWIut7S9c7j4EgkghlNs0nOq5AO4Z1hL1k0qHrAgIlDEThW+22bteFULpaTirwo0rA+W2hsIa/QGlVHWiPf0Lm52dlJc5Fq/gjHB7JGg7Su+XltE YOEQqZ5o J6XbW7uAfNibXO4VPgm84KwYyYH9x8XWN517OUQ+d/xucrF0biyQdDeq859OuzKi4iTgLJLedqLMdSXvjYoqtkXXwIztGvhGGzFtQ/31a+OkuNx0hDRoONPCrsbLIc6ylUZB18dOwA59gLrxxapGBSzbH+AQNpGwApjsM X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: When run under run_vmtests.sh, test scripts were failing to run with "permission denied" due to the scripts not being executable. It is also annoying not to be able to directly invoke run_vmtests.sh, which is solved by giving also it the execute permission. Signed-off-by: Ryan Roberts Reviewed-by: David Hildenbrand --- tools/testing/selftests/mm/charge_reserved_hugetlb.sh | 0 tools/testing/selftests/mm/check_config.sh | 0 tools/testing/selftests/mm/hugetlb_reparenting_test.sh | 0 tools/testing/selftests/mm/run_vmtests.sh | 0 tools/testing/selftests/mm/test_hmm.sh | 0 tools/testing/selftests/mm/test_vmalloc.sh | 0 tools/testing/selftests/mm/va_high_addr_switch.sh | 0 tools/testing/selftests/mm/write_hugetlb_memory.sh | 0 8 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tools/testing/selftests/mm/charge_reserved_hugetlb.sh mode change 100644 => 100755 tools/testing/selftests/mm/check_config.sh mode change 100644 => 100755 tools/testing/selftests/mm/hugetlb_reparenting_test.sh mode change 100644 => 100755 tools/testing/selftests/mm/run_vmtests.sh mode change 100644 => 100755 tools/testing/selftests/mm/test_hmm.sh mode change 100644 => 100755 tools/testing/selftests/mm/test_vmalloc.sh mode change 100644 => 100755 tools/testing/selftests/mm/va_high_addr_switch.sh mode change 100644 => 100755 tools/testing/selftests/mm/write_hugetlb_memory.sh diff --git a/tools/testing/selftests/mm/charge_reserved_hugetlb.sh b/tools/testing/selftests/mm/charge_reserved_hugetlb.sh old mode 100644 new mode 100755 diff --git a/tools/testing/selftests/mm/check_config.sh b/tools/testing/selftests/mm/check_config.sh old mode 100644 new mode 100755 diff --git a/tools/testing/selftests/mm/hugetlb_reparenting_test.sh b/tools/testing/selftests/mm/hugetlb_reparenting_test.sh old mode 100644 new mode 100755 diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh old mode 100644 new mode 100755 diff --git a/tools/testing/selftests/mm/test_hmm.sh b/tools/testing/selftests/mm/test_hmm.sh old mode 100644 new mode 100755 diff --git a/tools/testing/selftests/mm/test_vmalloc.sh b/tools/testing/selftests/mm/test_vmalloc.sh old mode 100644 new mode 100755 diff --git a/tools/testing/selftests/mm/va_high_addr_switch.sh b/tools/testing/selftests/mm/va_high_addr_switch.sh old mode 100644 new mode 100755 diff --git a/tools/testing/selftests/mm/write_hugetlb_memory.sh b/tools/testing/selftests/mm/write_hugetlb_memory.sh old mode 100644 new mode 100755 From patchwork Thu Jul 13 13:54:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312255 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 401FFC001DF for ; Thu, 13 Jul 2023 13:55:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CBD79900018; Thu, 13 Jul 2023 09:54:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C472090000B; Thu, 13 Jul 2023 09:54:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE8BE900018; Thu, 13 Jul 2023 09:54:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 91D1990000B for ; Thu, 13 Jul 2023 09:54:58 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 678CAB027F for ; Thu, 13 Jul 2023 13:54:58 +0000 (UTC) X-FDA: 81006734676.03.E233827 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf18.hostedemail.com (Postfix) with ESMTP id 7F8661C0025 for ; Thu, 13 Jul 2023 13:54:56 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf18.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256496; a=rsa-sha256; cv=none; b=gtOcHIv0J+fMm54bnsAW5RVoNKYnUsdiWNZTTrE1JlH7YXu/yebS+oth8y2rPZI1vBWonP uoMtC8MLezm+H32ziiK0pTp7arFRyP/XJ2rViY5TTRO9o9Ih1AnuA2mnA2zq7OgXawAlx1 4EYo5HYckaCronTKi+FxRTpXMIKOEiw= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf18.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256496; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EOmj+hjrtgQIQSn4ZRGZjPSIqR/XjaDog302aSVz6lM=; b=Fnzv9YCZZXn2p4NPg6DTSUdmQgKw+7uu+Jtu3k4jCOsRvHcb4WhfOpjlclZhY4UiMlHH03 dFUeNdfVFZgnCVAw5/dW2Qlm3MxrzmpwySY/PwlUCMxBQOz8LGO/WDVRT9jVwV+cLrpPu1 ChkCS8e2cryLGX2GtwWGrRzS4XZEBL4= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3B9D61570; Thu, 13 Jul 2023 06:55:38 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2F5A53F73F; Thu, 13 Jul 2023 06:54:54 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 3/9] selftests/mm: Skip soft-dirty tests on arm64 Date: Thu, 13 Jul 2023 14:54:34 +0100 Message-Id: <20230713135440.3651409-4-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 7F8661C0025 X-Stat-Signature: tktnqp4daogq4hsky3yxx7pm6rhu4u45 X-Rspam-User: X-HE-Tag: 1689256496-229659 X-HE-Meta: U2FsdGVkX1+7AygCg/2rLkUxxwgaLnagiB7GQ7c6RJUQi5T1wh1UiqjyatzLNEHdTvjoGH6O46kJ2RkhZJuPvB2R6Mr+KijCExEmmo1XyCzldGyRzAPdMkD7aGwiyeT+z1nexqPCBcLKcTEO5psEfjP2ObN/QZjK4TDlRbRuG1vqTtV3mna/z+SGoWR5bYVi8PT2xa2WwOJt8wADrvGTvhRxaOI/o1hkQsvxyGHsZhrXVI8JfFcKjXrJejyQUqmMkLsrrrupirujzHqIHe/UOsbnU7TlyQrbpEmdojI2A9okI6b9laRxSdBthqijyp6Nxh61zBpu6kcTQVUYcph2updAPUfPpI2NCOPiUOt7e0tVZL9VxNJmfPFrBBfkINY2XAndYfxXMtSG1u/rLDZ0jkOjgzdujEe74a0s+y4pEVsJUH8M85LqehsuCNWHzdwDGy20n+X8C4+u6hbfT2ifjNU4ipfmHp77GerwYt4ZVWmZyfAZKr6Gairv+zouvCULw/y0v2A0XDge6TmJuGJgiRGOhCWoyj5L4MHMeeM+f+oDNETLo+krnXzPH0Rd0+YNftW0XuHUSDZhux/pEqslKo8YN7HYxKo7eGp67iG8r5ByX6expYUv613dmlW8Hu9uJQ2GZxIPt57rXYp2+LeYYYzEQ5I3EsdXtiFwEN/AJsNaJDcAqheTOzmw+ObiXj+VRsB7n/YMPc7zCoTNL4/DxozAimDBRmecRj4Ks8g4UF5nWg77JOp1frBUMg5X1RFTamyfHjyEP6WubNjt0pbnPoGlinFPy8W8hwPfEj0Y9rHgGpOLh0qPH91kMpmVTTPYd1s0TcZywEH86V532szdL1M0dN5s1DeE76wPsIU9U2xSzNwDSPYey7F+w7nUzEaQLFqLv9JlPHK+mh/oDRUEeuSSEBs2E1RFQmHtVUcg6pAywIapeOU4z8i/rdP14xdGzPgV7WaYB9CALWoYo2W 3/Kz4DE0 pfj9mckNovX8hepQM53meI+4hfH8rg9hvXB3ib4P7nd/gHz1TaOw/dl483DLeDSlhcWLg+8+AKR0r/213SdqHuF8N+EgUHumbev7lgvfl4a514vZjk+0MCcIg8gimaxc0PIhvVp5XogLj8h7qth83LwDm7+5cpperrCDv X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: arm64 does not support the soft-dirty PTE bit. However there are tests in `madv_populate` and `soft-dirty` which assume it is supported and cause spurious failures to be reported when preferred behaviour would be to mark the tests as skipped. Unfortunately, the only way to determine if the soft-dirty dirty bit is supported is to write to a page, then see if the bit is set in /proc/self/pagemap. But the tests that we want to conditionally execute are testing precicesly this. So if we introduced this feature check, we could accedentally turn a real failure (on a system that claims to support soft-dirty) into a skip. So instead, do the check based on architecture; for arm64, we report that soft-dirty is not supported. This is wrapped up into a utility function `system_has_softdirty()`, which is used to skip the whole `soft-dirty` suite, and mark the soft-dirty tests in the `madv_populate` suite as skipped. Signed-off-by: Ryan Roberts --- tools/testing/selftests/mm/madv_populate.c | 18 +++++++++++++----- tools/testing/selftests/mm/soft-dirty.c | 3 +++ tools/testing/selftests/mm/vm_util.c | 17 +++++++++++++++++ tools/testing/selftests/mm/vm_util.h | 1 + 4 files changed, 34 insertions(+), 5 deletions(-) -- 2.25.1 diff --git a/tools/testing/selftests/mm/madv_populate.c b/tools/testing/selftests/mm/madv_populate.c index 60547245e479..5a8c176d7fec 100644 --- a/tools/testing/selftests/mm/madv_populate.c +++ b/tools/testing/selftests/mm/madv_populate.c @@ -232,6 +232,14 @@ static bool range_is_not_softdirty(char *start, ssize_t size) return ret; } +#define ksft_test_result_if_softdirty(cond, ...) \ +do { \ + if (system_has_softdirty()) \ + ksft_test_result(cond, __VA_ARGS__); \ + else \ + ksft_test_result_skip(__VA_ARGS__); \ +} while (0) + static void test_softdirty(void) { char *addr; @@ -246,19 +254,19 @@ static void test_softdirty(void) /* Clear any softdirty bits. */ clear_softdirty(); - ksft_test_result(range_is_not_softdirty(addr, SIZE), + ksft_test_result_if_softdirty(range_is_not_softdirty(addr, SIZE), "range is not softdirty\n"); /* Populating READ should set softdirty. */ ret = madvise(addr, SIZE, MADV_POPULATE_READ); - ksft_test_result(!ret, "MADV_POPULATE_READ\n"); - ksft_test_result(range_is_not_softdirty(addr, SIZE), + ksft_test_result_if_softdirty(!ret, "MADV_POPULATE_READ\n"); + ksft_test_result_if_softdirty(range_is_not_softdirty(addr, SIZE), "range is not softdirty\n"); /* Populating WRITE should set softdirty. */ ret = madvise(addr, SIZE, MADV_POPULATE_WRITE); - ksft_test_result(!ret, "MADV_POPULATE_WRITE\n"); - ksft_test_result(range_is_softdirty(addr, SIZE), + ksft_test_result_if_softdirty(!ret, "MADV_POPULATE_WRITE\n"); + ksft_test_result_if_softdirty(range_is_softdirty(addr, SIZE), "range is softdirty\n"); munmap(addr, SIZE); diff --git a/tools/testing/selftests/mm/soft-dirty.c b/tools/testing/selftests/mm/soft-dirty.c index cc5f144430d4..8a2cd161ec4d 100644 --- a/tools/testing/selftests/mm/soft-dirty.c +++ b/tools/testing/selftests/mm/soft-dirty.c @@ -192,6 +192,9 @@ int main(int argc, char **argv) int pagemap_fd; int pagesize; + if (!system_has_softdirty()) + return KSFT_SKIP; + ksft_print_header(); ksft_set_plan(15); diff --git a/tools/testing/selftests/mm/vm_util.c b/tools/testing/selftests/mm/vm_util.c index 558c9cd8901c..f014fafbd2d3 100644 --- a/tools/testing/selftests/mm/vm_util.c +++ b/tools/testing/selftests/mm/vm_util.c @@ -53,6 +53,23 @@ unsigned long pagemap_get_pfn(int fd, char *start) return -1ul; } +int system_has_softdirty(void) +{ + /* + * There is no way to check if the kernel supports soft-dirty, other + * than by writing to a page and seeing if the bit was set. But the + * tests are intended to check that the bit gets set when it should, so + * doing that check would turn a potentially legitimate fail into a + * skip. Fortunately, we know for sure that arm64 does not support + * soft-dirty. So for now, let's just use the arch as a corse guide. + */ +#if defined(__aarch64__) + return 0; +#else + return 1; +#endif +} + void clear_softdirty(void) { int ret; diff --git a/tools/testing/selftests/mm/vm_util.h b/tools/testing/selftests/mm/vm_util.h index c7fa61f0dff8..5a57314d428a 100644 --- a/tools/testing/selftests/mm/vm_util.h +++ b/tools/testing/selftests/mm/vm_util.h @@ -36,6 +36,7 @@ bool pagemap_is_softdirty(int fd, char *start); bool pagemap_is_swapped(int fd, char *start); bool pagemap_is_populated(int fd, char *start); unsigned long pagemap_get_pfn(int fd, char *start); +int system_has_softdirty(void); void clear_softdirty(void); bool check_for_pattern(FILE *fp, const char *pattern, char *buf, size_t len); uint64_t read_pmd_pagesize(void); From patchwork Thu Jul 13 13:54:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312256 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F59EC001B0 for ; Thu, 13 Jul 2023 13:55:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 76720900019; Thu, 13 Jul 2023 09:55:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7170990000B; Thu, 13 Jul 2023 09:55:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4CCE6900019; Thu, 13 Jul 2023 09:55:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 341DE90000B for ; Thu, 13 Jul 2023 09:55:00 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0B0921C7E24 for ; Thu, 13 Jul 2023 13:55:00 +0000 (UTC) X-FDA: 81006734760.17.7B44A54 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf22.hostedemail.com (Postfix) with ESMTP id 45E32C0019 for ; Thu, 13 Jul 2023 13:54:58 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256498; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Djiu/9OJ7MlYuTUobmA/ktywqApJW6btXzTBM5bZSFY=; b=enAUV3GgUPv8TpgNnvo6bCrmCpKidJgUTLR/MbcLLtZ074nheal3kgIRX4tmiGRUCzC9J7 wHPLjbB5C3lN6QrHLFf6xZYWDzsk1p+5YWgxSpzpYmFTeWVZdvnUaWJbFVmCu573kVW4nv at18fceWxrFRPqIUIs6EvDGWnAwbZiY= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256498; a=rsa-sha256; cv=none; b=DG+PJgMAedOpguiyRZadsytAOlKqa9aXCKiWYj9Ac3095blI2k1l9XYCh10mTylKzngCa6 nhpe7/E6d5lfLwxv9SZIsBHhWIOniAppNxKRl8z7BictRmncYs+NTHPPgSsjXFsN/66bEq djEVtJcLNNzZXk94b3HdKwuTAorTJc0= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F34181576; Thu, 13 Jul 2023 06:55:39 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E95573F73F; Thu, 13 Jul 2023 06:54:55 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 4/9] selftests/mm: Enable mrelease_test for arm64 Date: Thu, 13 Jul 2023 14:54:35 +0100 Message-Id: <20230713135440.3651409-5-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 45E32C0019 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: brtnfagoft7dxtxn6jcxef4unmnn6r7c X-HE-Tag: 1689256498-673882 X-HE-Meta: U2FsdGVkX1/E1pKxjR8f8Arc5hLHM1TyuisZF0tQIloW11325Gxl6RQtKCUdcirBpE+jgbRmXy+dTiD5bbYso8gEl6Bq00cMDboks56XFkmPmAaImqCPAFKE83V8f26C14ZDiqTVPZLpdMvKH/4Ug9xZ21hQ1jkaXm5afIntf47UyKeBv7ZsA/f69X2iUQHFd6lgp82p3AkzN5Gj3tkVTMbJK+kbnnSACy/8U+ryKPPypodVtHN1aJaC75GIntXZ2vM4JmBxykZUDqYBVL9I9hN5xTbBsOTJ74+CN3Wm25amkoBsXJJdElRMR2VieI2yHyrkG7O76MrI3ZErvhJzvVjonF/V7CGqBcQF85XbAoTriav0975qZNIYMw3iJZF0A1BgHjSulwegHwyLNLQVyOtYixZWJab28ewWalor3dpjtxfKiZU00GtUBItUlPb6unEgTWeugmto7aoDsjKoJf9VeD3b47Y15j9NO+DrJZNGak+albtW6v0VW8gqu50t5ZCumoEP5ld25e4Gh5rzEpUlzwa2U1QkZcnVpfuzlYcWGu7iPUveYcDzRhjrC8bWW9PVCRL53QyvNf0MBhp1fzoC7k/Ddp7WgzarriWXHzwWUmMfwXQnZXnpxdWdVUgfPetITAKbNFqzfHkieYBYdtDKJxS08Ffx0dli66yaoBBihCH5/TH/W+xj9r+1km5+S44gqNPFLkwiL/oJ1S9l/RCEb7KCN3uycmNwti9vjHPv63xeWYtRBuHxTz36gP8g/QIugOI7EAFx8VrXMIWhIlNG5xd2kCQF2JCKyrxeTWDARv3NYwNpK5ArgAVd0tSS0ZOisYGYHpAX5bNdTn+oNZQEd2OVtEbgWXOOi6YcBIXnE3raHYZeyblbsal4Zt5CW1btimi169Rd9DMuTsQkRQXOjLJCTcAGPe+AagTA4lSdyWdxB4slRwko6akmE7S9xOumPYU/lVqiYiyvg7t udGsegKn FfvdBAWf/ZoYU/X9mufKvVRQRiQdEuadTr1UnfEwOB3bsZ3vgP4NjRzhpuqDBEmjqWhcNRiWcUJliSYLX7LOOcblrKTSb1gdcN9pY5o4ka3qqamIRHKx42t2Nbyx82orhbIr41kWu9bpcvId3lnWE1i33qVumDwVuP4iVtIasd4eMuX/Z04UeCIfGVMSC3se8lb/2O4un74fp5SVbe/1Z00PlK1m8dwF3jLsYhG7bROUWgjQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: mrelease_test defaults to defining __NR_pidfd_open and __NR_process_mrelease syscall numbers to -1, if they are not defined anywhere else, and the suite would then be marked as skipped as a result. arm64 (at least the stock debian toolchain that I'm using) requires including to pull in the defines for these syscalls. So let's add this header. With this in place, the test is passing on arm64. Signed-off-by: Ryan Roberts Reviewed-by: David Hildenbrand --- tools/testing/selftests/mm/mrelease_test.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/mm/mrelease_test.c b/tools/testing/selftests/mm/mrelease_test.c index dca21042b679..d822004a374e 100644 --- a/tools/testing/selftests/mm/mrelease_test.c +++ b/tools/testing/selftests/mm/mrelease_test.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include From patchwork Thu Jul 13 13:54:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312257 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 827A4C001DF for ; Thu, 13 Jul 2023 13:55:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E21AE90001A; Thu, 13 Jul 2023 09:55:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D7EB790000B; Thu, 13 Jul 2023 09:55:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C201590001A; Thu, 13 Jul 2023 09:55:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id AEBB590000B for ; Thu, 13 Jul 2023 09:55:01 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7EF1E1402BC for ; Thu, 13 Jul 2023 13:55:01 +0000 (UTC) X-FDA: 81006734802.05.399A9EC Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf18.hostedemail.com (Postfix) with ESMTP id A3C521C001A for ; Thu, 13 Jul 2023 13:54:59 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf18.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256499; a=rsa-sha256; cv=none; b=a6GVeLRi9Z4WNeTgmDHWfhakXDt745XWvLtnJyxupM2IDIn1hvptj/Ki2W8gPfYiBLMH1f jDAm3hSitYWEQrIlBZMyvejgd/HjTkNsS8g7/ZjqMw/kcKBpoUFA2tZuepV4rY7XNrvIj2 pfNBVdPW630f24hZm9aH+J+NwTO8R8k= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf18.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256499; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/uEzG53FLjd2glqlFJWx0HAfJNrq3vkp38/U3IednXU=; b=gZdDRY+TYF+DvbDCrb1ytjzOrBXzAddX2hX9JhYjddK2f9EB+I3hvQ66PNc6y511ENO00D jAEjqeAwa0as/0r6SrOwBNCQsaUlO7Xr+FjHCDzXDguA0/KdXAIpa44rPY+PJayvXy/V7G H5mr9sseHTeJuSMlQaFqnhvYs2gUNsY= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B6F501595; Thu, 13 Jul 2023 06:55:41 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id ACC483F73F; Thu, 13 Jul 2023 06:54:57 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 5/9] selftests/mm: Fix thuge-gen test bugs Date: Thu, 13 Jul 2023 14:54:36 +0100 Message-Id: <20230713135440.3651409-6-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: A3C521C001A X-Stat-Signature: ii775fcbdif4if1kknh8jus39q5dodhe X-Rspam-User: X-HE-Tag: 1689256499-173324 X-HE-Meta: U2FsdGVkX1+KlncIkJ5kXj9WfoOxsWPZDQMAed5H89KK3qNRo8J8kPoUAFoQUk6rhYKSE75cqicgCTQO70E4gkZQzvj6XzSttDNJmh1DKxBHrLBIONXu8o+RmWa6BRtprSktVms3Gb+o2xjqKg0xJMHLgU7/ir/U0ppgI7hyhQaWL45SZlm0mEZj8mRknZkZl8BBQIom/EY0uOVNK/NcN2rey6Aluozn4OvA7l2ZNKrE0oyP2wa0ZRLn0sUl8VGqt/XKBdl6aDdTmys4aRjI16qcGdhpXOVHFpNZdx1x0i/0Y1U2cMWa3Lqzvre578gBTocSFquAlhQJWnBF0kmi75gSxPZKMud9iqdeaPHDyBA5d26ZobcIKClVkd8jgYtWM1/zaZL9DeYKEFMbvIHTLyLkKLCRfZj16omPbC1T1m7Gl3zl9rjkMSU/es93m7w/rQF++eKnjdzujDj5SKEi/80KQ+hyj30AJy6sCAe84YmKKS6ig+Zg9aA4RQmHgpeslePohZ8OWq7Ee8dcrby6KfgHRXQMX982j4Tht5HRzD1MD3jTfuwqY4P+QF573juolZ3QIXiR9O0i2wVls5xv3SWw6d/WIw7DjIKULokW1xUQnLjIPhDZSuf+0nkGfOBCwnjRXNDa75YOTMKhlPpq7uDc9W8+GD/K5irt+f3cFMy6+v8CpgecmlaCP5/d0Q/L4lyUp9/kqPVL37jRRxC8ptcwGM6F191dOhCJJyjPG8+OjomlKS93NyRslR56pWkoqSbSfOCATpbmCakgh36Xkuru5pP66Wc52q96h6AvpewW4WiC0H5mg6+688usGVOD2e91lbGFjNqeSEeDH4K6V3anuowvJIRCblunM3jGeRO2VSgLoyO2eoui+Gxt1p+E7h8H5HNIlspvLntJ+fYDUxhXY1oACg0CqAVF403mvfLewE8T2vJZwM4+OqbezC2MABhaeEIRKv6gb1tlvFs OEvvlm++ JIn/FIZWnY1J86Hy3rn5Duvh/ysxUqbkJIiB/xYlk7OkQxBSUdjZ49KVqN4u1h1aYijkW6xzomnqR4tL7Y3D9tdkOsdaAKcbDg30j4sjQe7IfcloK7PlB2MCUp9Gx79MzRpQUosmNllVt+F2nLagIFrEABI3R93GvEHV9 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: thuge-gen was previously only munmapping part of the mmapped buffer, which caused us to run out of 1G huge pages for a later part of the test. Fix this by munmapping the whole buffer. Based on the code, it looks like a typo rather than an intention to keep some of the buffer mapped. thuge-gen was also calling mmap with SHM_HUGETLB flag (bit 11 set), which is actually MAP_DENYWRITE in mmap context. The man page says this flag is ignored in modern kernels. I'm pretty sure from the context that the author intended to pass the MAP_HUGETLB flag so I've fixed that up too. Signed-off-by: Ryan Roberts --- tools/testing/selftests/mm/thuge-gen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/mm/thuge-gen.c b/tools/testing/selftests/mm/thuge-gen.c index 380ab5f0a534..16ed4dfa7359 100644 --- a/tools/testing/selftests/mm/thuge-gen.c +++ b/tools/testing/selftests/mm/thuge-gen.c @@ -139,7 +139,7 @@ void test_mmap(unsigned long size, unsigned flags) before, after, before - after, size); assert(size == getpagesize() || (before - after) == NUM_PAGES); show(size); - err = munmap(map, size); + err = munmap(map, size * NUM_PAGES); assert(!err); } @@ -222,7 +222,7 @@ int main(void) test_mmap(ps, MAP_HUGETLB | arg); } printf("Testing default huge mmap\n"); - test_mmap(default_hps, SHM_HUGETLB); + test_mmap(default_hps, MAP_HUGETLB); puts("Testing non-huge shmget"); test_shmget(getpagesize(), 0); From patchwork Thu Jul 13 13:54:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312259 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3CFAC001B0 for ; Thu, 13 Jul 2023 13:55:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D40290000B; Thu, 13 Jul 2023 09:55:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 25C7190001C; Thu, 13 Jul 2023 09:55:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D6C390000B; Thu, 13 Jul 2023 09:55:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D869790001C for ; Thu, 13 Jul 2023 09:55:05 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B7FC1802A7 for ; Thu, 13 Jul 2023 13:55:03 +0000 (UTC) X-FDA: 81006734886.16.595575C Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf22.hostedemail.com (Postfix) with ESMTP id 8FC63C0022 for ; Thu, 13 Jul 2023 13:55:01 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256501; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Cz2iEEBGyYF+rSb/J/At2npEIiP2rZZS/45ogfF1Shk=; b=6vZlnz6pEpbU0ARF1M704dOXImq0nIou/Hu08Zqy3yI43ATyYZ7dc69wUuu5y5hxdcrd5v N8ikkB/0Ymh1RNwHygrSKX7xF9u+g3nDWqKgU8X5o8rldO2roGa+DBZl/AmSt2UmetrKJz sAh/5pjmq338xC3/zGtsvPQ7ZvTYvaY= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256501; a=rsa-sha256; cv=none; b=rYpibCvsUzbNcaPSFbCjF0gCtjcQwqH9ToueKCiuelYIc4xEp9th5qORtJBM1J+XUihRdi 4tX3CodbEEiwdNhcWhCdVWnSAVFjcqzzv0ro8c3LGz+ov63oeKJiqBtXB1t8vjRrDsO79V 5QFUD3UhWlooow0uKZk6UHQwVB1Gtyk= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7AA1C1576; Thu, 13 Jul 2023 06:55:43 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 70A523F73F; Thu, 13 Jul 2023 06:54:59 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 6/9] selftests/mm: va_high_addr_switch should skip unsupported arm64 configs Date: Thu, 13 Jul 2023 14:54:37 +0100 Message-Id: <20230713135440.3651409-7-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 8FC63C0022 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: aegx4oqth7bqo47b4afgizxk8jcofwmd X-HE-Tag: 1689256501-161036 X-HE-Meta: U2FsdGVkX185LThyLh0QKrQCrspIRWyIp/ij+7Hw9jiY8i0H92AkRqE66oAElSq3xZI8fSEwLXRTTLGPSRmfMZVOSAHq/QSpRrltxm3aEDXMy4KG7MXF7aKRIR6GinP0RtjfMnLRvkull0Tac9bKMUxI3E5hKNIRIAexnutxZ2VZ3g0Eh567eGQX1w1ygjDnWrHqJscRecsszJqNa/N12llKUqez4RvfJwp20pLK9XpOjm9iJIcLsNBqeSnFBBZ0YgnItD3YFq7EMlOFNLiIoi+2Wgdbf5q+fcxfr60Aj66BGyvJz6oe0YYpHojORnoqpYF+sYeWClmwO7YpBmoKSiWdzjxefjK6u3/+ZCbK34egPsLKBCEgrgvzz62fa75WVDvM3HMzBr0mllhNTo9JFJ5G1JnIN6U02SL4m0mPTgsIKZDUloe90dvltKUEqY92ce+muWIPm1RNjcVhnniQwjrbv2LZh9TTKppV1VN20OlEyFG6iYRWwx3snW1Q2+xuJWGAkrrSOgwEBz/d74/OpP2aXh/B5PkI71fKxNX2eKUGLtlvQgVBTVsd+5gm85tKK3XMQo6ys/wTvECiCupkqaAH1AO+D5I+WaWtZ/BMhfQN9X11zc4hoNhA8qDigE6+4AJNgZgFll1YILsKNQPt36BokgwrzPnV0gNwL2lPlXlP6HepZI59pZ/Axc/6Neb1qoApcsFrHbBup28EkFeMHiste7tPCbRR/c5qHP/vnXoIGYJ4zFfyZVtamvuthIg0kBHUcrzFQOTOF2uaT6b+GWx6ehJqkMztksVbRVpUdHr4lYhNKdHOzt0j+nb7FIDHuCfF+QxQ+/It2vWS56zStN/CFm3Q72Unv73TzYlvdy0J2qLfb6jZFdpBTJmH39TfQ82vjSJ9MbBziu5mC9Q5cXkCafvTlxDDhVv8Z1Kumy1JFjq/memBXI5yjxN3MRo9moeHmOcUfCfxio2XWMA uJI2BJG4 dI+oPeZ1CXoWfH34n8VqIiBoPixcik5DYi2oytNoGQzmmHvl56eWsgm80nrQ1LPuaX9FRrCm+larijG4fSs632KNuXJIpOPXMq/pY1Zq9poZjeyTqzQHDjLfhvpCcWpx5UZFyadQuAU3BGn+WyHAIAh3tJbZx0aUdSV/fTLejV1TIIyfFA+ja12GOJpSnfENalaHYpQlSNixI0xM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: va_high_addr_switch has a mechanism to determine if the tests should be run or skipped (supported_arch()). This currently returns unconditionally true for arm64. However, va_high_addr_switch also requires a large virtual address space for the tests to run, otherwise they spuriously fail. Since arm64 can only support VA > 48 bits when the page size is 64K, let's decide whether we should skip the test suite based on the page size. This reduces noise when running on 4K and 16K kernels. Signed-off-by: Ryan Roberts Reviewed-by: David Hildenbrand --- tools/testing/selftests/mm/va_high_addr_switch.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/mm/va_high_addr_switch.c b/tools/testing/selftests/mm/va_high_addr_switch.c index 7cfaf4a74c57..4b6f62c69a9d 100644 --- a/tools/testing/selftests/mm/va_high_addr_switch.c +++ b/tools/testing/selftests/mm/va_high_addr_switch.c @@ -292,7 +292,8 @@ static int supported_arch(void) #elif defined(__x86_64__) return 1; #elif defined(__aarch64__) - return 1; + size_t page_size = getpagesize(); + return page_size == PAGE_SIZE; #else return 0; #endif From patchwork Thu Jul 13 13:54:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312258 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D233C0015E for ; Thu, 13 Jul 2023 13:55:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE57390001B; Thu, 13 Jul 2023 09:55:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C949090000B; Thu, 13 Jul 2023 09:55:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B0EE590001B; Thu, 13 Jul 2023 09:55:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 9C17290000B for ; Thu, 13 Jul 2023 09:55:05 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 6F54F120293 for ; Thu, 13 Jul 2023 13:55:05 +0000 (UTC) X-FDA: 81006734970.24.75C9A40 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf22.hostedemail.com (Postfix) with ESMTP id A5BDDC0006 for ; Thu, 13 Jul 2023 13:55:03 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256503; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rHtD/pnAHEzhlHxmKN5MIBCps4aYfm1NZFwHzfIO8rs=; b=x08GLZYq8UxHZ+wW0FRX7RG9AKBDHWHb9gumGwJVO7eJuwsbxIqOzIRuxxG2nnBPnqJC+5 /SLyJz78tEh13mDohG/xSxXv4pUuMTnyhGMMgx7vZxLoWzA5bWyIG5d9hJC/g8YoLEIQjf uKfg+JSantDm427b+p9enQvnCcKpi44= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256503; a=rsa-sha256; cv=none; b=V0xJKe0dfJv4wfpsv6W+w6dYRrmadmyBxO9iiyTNjQ/i7g/3Q631VWG32BT9+oQuDp9Vhv TF2m71e3EnOMig47bDLTjfoU6WSVsODNqJ9YWQKduyHdbi6Cf0x1RnoLh58MbjeRTiAZQm HqrIOGn6haX8HK/r9XVKB4zsS9BlCII= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3E61C1595; Thu, 13 Jul 2023 06:55:45 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 341AA3F73F; Thu, 13 Jul 2023 06:55:01 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 7/9] selftests/mm: Make migration test robust to failure Date: Thu, 13 Jul 2023 14:54:38 +0100 Message-Id: <20230713135440.3651409-8-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: A5BDDC0006 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: xmwz81wtpqgmjs6nbi1wz7ima3yif6p7 X-HE-Tag: 1689256503-465402 X-HE-Meta: U2FsdGVkX1+U34CrDznEf7GxI98fkymLmLaYKrnFKAnvnNgVLmF9sQhOfy7TBo4a7D8UbgJmp/MA90ai5vcz1aPvUw9WWTG4sz74Ol/UcmrXDioXO0oRQ3u7tAOYtObBBsNb0xDnt2d8gtdxSpzJzprybnCOfr6dkeQl6dfKcyew34+/A8KBY7VaFxqqi/5ir1jWodK8quQ7CBACQZtm12+KtDuCCxGri2t6F+IEPKxsPBJdVV7g08UFWEXDCdBAxI1w1JgQkkE3U/f5nJ1jSZuRVEZ6EmoX2zxoygVS1e49K8F9yn9kApfCux6/7bdWhHgqJiSy+lX9wwjbg8Avt0qJWgcllodjpW3Jbxh/8gdBoTBCaDqfUVatb7jnmJWMbJQg9H0BdjqSmDcQJhJz/QTtGnddehY/d6c9WSEOav1UUE4LuXhS6Z2KeY4aL+7MjHs5zCJxOI4DihEWhXh8u26/oqErNfyAZD6ibHNKidfos+BukpueLaUNnLYrW9/l7Zo4hbaWHtEZKbJOQpuYTwkqhKlIePkbPOVp3F/tnZrP3mC0UG34HFslja+CYEjKDxmaX/E1l8ysPD8bV9+zxYgZIyHNA+CVVhj2SiYlWk9knNaJJPVChe0P+zz/68DE7CCnN2jkSEdaf512HUMIaYRpTz0cm4PROiUUaoOHRpqh0yWjaviOp3b0r21GCECpQG23L0dGjKuFwhnSbDB14Sk3f9wtEVCCxbqv9B94p70ps6Gk+qDJPROfcRKFm71ikHJ6WIzxXtmou4ykgZQhtGl5Rbow9kGwjlWSwuqAjrehL/zVB1JUKs+jyVbIDPo/A2yFNUNh+b8ObAOuHthtQ0maQwzSpnMTJmu2v4Yan5yWFVNII0vUpKbrXBM76BNNH0U//KqaU869zaiLwArq0AOkJQ70TEYBwA9zpIzP/IMPAnQkMhGsk8hlJIoB4AWQNi2ko6eFgPn0304otmN 9R/j8TDv pRPus8wHuNdyzUaVM3pNIu+3CaveaOTcIck5osUASw4SpJVGMJYephr0qutQlXY/JWn8V5nPh3MUjwxrTe/u6LusOVxFr73jW5tGHvJl5MuBqjwItmZEGP5fDQ91QJtFis05FADl/j1FPxdPC9RGa975Yp5yjjPvekBA2 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: The `migration` test currently has a number of robustness problems that cause it to hang and leak resources. Timeout: There are 3 tests, which each previously ran for 60 seconds. However, the timeout in mm/settings for a single test binary was set to 45 seconds. So when run using run_kselftest.sh, the top level timeout would trigger before the test binary was finished. Solve this by meeting in the middle; each of the 3 tests now runs for 20 seconds (for a total of 60), and the top level timeout is set to 90 seconds. Leaking child processes: the `shared_anon` test fork()s some children but then an ASSERT() fires before the test kills those children. The assert causes immediate exit of the parent and leaking of the children. Furthermore, if run using the run_kselftest.sh wrapper, the wrapper would get stuck waiting for those children to exit, which never happens. Solve this by deferring any asserts until after the children are killed. The same pattern is used for the threaded tests for uniformity. With these changes, the test binary now runs to completion on arm64, with 2 tests passing and the `shared_anon` test failing. Signed-off-by: Ryan Roberts --- tools/testing/selftests/mm/migration.c | 14 ++++++++++---- tools/testing/selftests/mm/settings | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/mm/migration.c b/tools/testing/selftests/mm/migration.c index 379581567f27..189d7d9070e8 100644 --- a/tools/testing/selftests/mm/migration.c +++ b/tools/testing/selftests/mm/migration.c @@ -15,7 +15,7 @@ #include #define TWOMEG (2<<20) -#define RUNTIME (60) +#define RUNTIME (20) #define ALIGN(x, a) (((x) + (a - 1)) & (~((a) - 1))) @@ -118,6 +118,7 @@ TEST_F_TIMEOUT(migration, private_anon, 2*RUNTIME) { uint64_t *ptr; int i; + int ret; if (self->nthreads < 2 || self->n1 < 0 || self->n2 < 0) SKIP(return, "Not enough threads or NUMA nodes available"); @@ -131,9 +132,10 @@ TEST_F_TIMEOUT(migration, private_anon, 2*RUNTIME) if (pthread_create(&self->threads[i], NULL, access_mem, ptr)) perror("Couldn't create thread"); - ASSERT_EQ(migrate(ptr, self->n1, self->n2), 0); + ret = migrate(ptr, self->n1, self->n2); for (i = 0; i < self->nthreads - 1; i++) ASSERT_EQ(pthread_cancel(self->threads[i]), 0); + ASSERT_EQ(ret, 0); } /* @@ -144,6 +146,7 @@ TEST_F_TIMEOUT(migration, shared_anon, 2*RUNTIME) pid_t pid; uint64_t *ptr; int i; + int ret; if (self->nthreads < 2 || self->n1 < 0 || self->n2 < 0) SKIP(return, "Not enough threads or NUMA nodes available"); @@ -161,9 +164,10 @@ TEST_F_TIMEOUT(migration, shared_anon, 2*RUNTIME) self->pids[i] = pid; } - ASSERT_EQ(migrate(ptr, self->n1, self->n2), 0); + ret = migrate(ptr, self->n1, self->n2); for (i = 0; i < self->nthreads - 1; i++) ASSERT_EQ(kill(self->pids[i], SIGTERM), 0); + ASSERT_EQ(ret, 0); } /* @@ -173,6 +177,7 @@ TEST_F_TIMEOUT(migration, private_anon_thp, 2*RUNTIME) { uint64_t *ptr; int i; + int ret; if (self->nthreads < 2 || self->n1 < 0 || self->n2 < 0) SKIP(return, "Not enough threads or NUMA nodes available"); @@ -188,9 +193,10 @@ TEST_F_TIMEOUT(migration, private_anon_thp, 2*RUNTIME) if (pthread_create(&self->threads[i], NULL, access_mem, ptr)) perror("Couldn't create thread"); - ASSERT_EQ(migrate(ptr, self->n1, self->n2), 0); + ret = migrate(ptr, self->n1, self->n2); for (i = 0; i < self->nthreads - 1; i++) ASSERT_EQ(pthread_cancel(self->threads[i]), 0); + ASSERT_EQ(ret, 0); } TEST_HARNESS_MAIN diff --git a/tools/testing/selftests/mm/settings b/tools/testing/selftests/mm/settings index 9abfc60e9e6f..ba4d85f74cd6 100644 --- a/tools/testing/selftests/mm/settings +++ b/tools/testing/selftests/mm/settings @@ -1 +1 @@ -timeout=45 +timeout=90 From patchwork Thu Jul 13 13:54:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312260 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F872C04A6A for ; Thu, 13 Jul 2023 13:55:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DCEFA90001D; Thu, 13 Jul 2023 09:55:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D313490001C; Thu, 13 Jul 2023 09:55:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BF86990001D; Thu, 13 Jul 2023 09:55:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A249590001C for ; Thu, 13 Jul 2023 09:55:07 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 42CEDC027D for ; Thu, 13 Jul 2023 13:55:07 +0000 (UTC) X-FDA: 81006735054.05.1935FC2 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf16.hostedemail.com (Postfix) with ESMTP id 32061180012 for ; Thu, 13 Jul 2023 13:55:04 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=none; spf=pass (imf16.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256505; a=rsa-sha256; cv=none; b=mq6LK5C/ebpbMwuJGVuCGkwND0qkU73Ua9wCeO8a4DgWCantKF+Xt3MnsXGakwBoOlBH6P vPCi9NdZ1+KnhZHoQq5JUV1g3kxVidYr06fwgongZWzcZueNsLIqE7z43U7lsuuDiZvjwo LuW64WPq5/aTlsrcdUh0O12Wi7etgtE= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; spf=pass (imf16.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256505; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HXaz2BG8nd6sNHnpf1UWxQkbMfGOr+JlGHxrRhsm3QQ=; b=V7qTbCveylMVltjzjqsCfyxaO7TsrVBb1Yj7MK8f+sYIBTa8aPOlm6+FWUVGm6j0X3gVdr Y7zdOo1WY5A27l/atVHkfyED5ejdmhcckxO9htlzO6o6C8Xtu4E3d8ckEUdFdYnR6D0tq/ fMktx3YIOoKmDN5FAcTbzOBNlN2HisI= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 01FAE1576; Thu, 13 Jul 2023 06:55:47 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EC0623F73F; Thu, 13 Jul 2023 06:55:02 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 8/9] selftests/mm: Optionally pass duration to transhuge-stress Date: Thu, 13 Jul 2023 14:54:39 +0100 Message-Id: <20230713135440.3651409-9-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 32061180012 X-Stat-Signature: juhkg4qgokycbfqgsh6odmdc4e749sza X-HE-Tag: 1689256504-405265 X-HE-Meta: U2FsdGVkX1+k/ygkSxVXQZxDUBrsOVG9ahSC1RaeMv7QVGF2Y5Q2KMlWneW7rvo1MLCV8VLj+Zr3l5cFmiq374ndBPDNRl4UgoDr0ShmPH9A2XmfPPk7TjbltXTtn/6bRP4qwsi82wBwdEZVAbHljmlJOw0nX1k5pNinbzoGk3XfNh/iauNMIGi9eXmCtZnglyddBMWuDRuLZDOsYQilLbSkUqiF7tz+Q70rA1LbinwMUrmbp7hQC9PzFiXVX3y8SQ/vd2FZAYq9hloghR1oo1NJOw1n7qrNVf3gGfjBFeceNuVCatmusHcV6n2O39JuCp/i8syX/d+QbGAE4wkZ5ftHVBESQw592JbvBG/8FGSuWe0QkH82zi5ds99oQjTEowcHfAWhmSROi6UfjcJRM8Xdv/Em23ISCccldiXWAG7hrSFc7YiNRks5Z6oe2Qa9/WeLPXVXghG7c1Iyyb+Vrrs+cvGb5XDWX/vQKgmABHA817JHCar/A3loz/bxsAWD/f7+NS6z6RM264N2riYE/lVLl7uMxzvrp3kB/QA/6/lYAdDap4Ubf6QRLDms82T8ePRZTLvh9gpGiD/XNQO5oRv7EPrhaXGmzKq1/9JapXHkxIjQ5jt7jLOg0y6X27IfOiTbjIRcO3kJWaS3doFE9Uy/GzI/S/Hhng6aJRaGI7f2IL/BLyxiVQ919/hAIzzGCk0C7Rg4SnebeSFqMdlUUugackTooxzZJw1ecESMGgPHw1Z4/Fkat4I4q3MsJ2t4yYKhkm849Dy/pVGFHxwfFj5B5AQjX+6tXR+UNpakIfudsBHLJQpAxppG2YP/pX9gcXGwD0z7n4nhoqV1Ni9Xd6kV4S8Q+aYry7sMF+yUFnNsELqUG9ZKFYJsgE42CZjIvzhS8jqvIk0zGk59vroLtK92Rno4oUTSE+d6FrjZXaRnvXNY78ilpfO4KkJfCbJW+1HAnSUKiqyqYCn3P9B xqModGE8 G6Lq3NMVbUlSaA5hebPpcVFveoKGxxFjT0W/oAOs60euVVMGnnGf+dwkhE5/RFAzxiSDyCV6q3HT15ba3RKSTGuIUi1xd20a9Hk/9splDd/+mLJcP9agPYqIOLiDnKVwMmiE+wtpPNdifXVPZ8oPBorRO3TkvM5goWUqD X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Until now, transhuge-stress runs until its explicitly killed, so when invoked by run_kselftest.sh, it would run until the test timeout, then it would be killed and the test would be marked as failed. Add a new, optional command line parameter that allows the user to specify the duration in seconds that the program should run. The program exits after this duration with a success (0) exit code. If the argument is omitted the old behacvior remains. On it's own, this doesn't quite solve our problem because run_kselftest.sh does not allow passing parameters to the program under test. But we will shortly move this to run_vmtests.sh, which does allow parameter passing. Signed-off-by: Ryan Roberts --- tools/testing/selftests/mm/transhuge-stress.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/mm/transhuge-stress.c b/tools/testing/selftests/mm/transhuge-stress.c index ba9d37ad3a89..c61fb9350b8c 100644 --- a/tools/testing/selftests/mm/transhuge-stress.c +++ b/tools/testing/selftests/mm/transhuge-stress.c @@ -25,13 +25,14 @@ int main(int argc, char **argv) { size_t ram, len; void *ptr, *p; - struct timespec a, b; + struct timespec start, a, b; int i = 0; char *name = NULL; double s; uint8_t *map; size_t map_len; int pagemap_fd; + int duration = 0; ram = sysconf(_SC_PHYS_PAGES); if (ram > SIZE_MAX / psize() / 4) @@ -42,9 +43,11 @@ int main(int argc, char **argv) while (++i < argc) { if (!strcmp(argv[i], "-h")) - errx(1, "usage: %s [size in MiB]", argv[0]); + errx(1, "usage: %s [-f ] [-d ] [size in MiB]", argv[0]); else if (!strcmp(argv[i], "-f")) name = argv[++i]; + else if (!strcmp(argv[i], "-d")) + duration = atoi(argv[++i]); else len = atoll(argv[i]) << 20; } @@ -78,6 +81,8 @@ int main(int argc, char **argv) if (!map) errx(2, "map malloc"); + clock_gettime(CLOCK_MONOTONIC, &start); + while (1) { int nr_succeed = 0, nr_failed = 0, nr_pages = 0; @@ -118,5 +123,8 @@ int main(int argc, char **argv) "%4d succeed, %4d failed, %4d different pages", s, s * 1000 / (len >> HPAGE_SHIFT), len / s / (1 << 20), nr_succeed, nr_failed, nr_pages); + + if (duration > 0 && b.tv_sec - start.tv_sec >= duration) + return 0; } } From patchwork Thu Jul 13 13:54:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13312261 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19C47C04A94 for ; Thu, 13 Jul 2023 13:55:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BFA1D90001E; Thu, 13 Jul 2023 09:55:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B82BE90001C; Thu, 13 Jul 2023 09:55:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9ADE090001E; Thu, 13 Jul 2023 09:55:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8854690001C for ; Thu, 13 Jul 2023 09:55:08 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 51DAE1A0294 for ; Thu, 13 Jul 2023 13:55:08 +0000 (UTC) X-FDA: 81006735096.27.681DA43 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf22.hostedemail.com (Postfix) with ESMTP id 83797C000D for ; Thu, 13 Jul 2023 13:55:06 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689256506; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rgNh+VVG4rnJeUIVls+H/r6KasnE8DWQu2bfgPlapXg=; b=PeIfdFneeLgXxeHvNK1iZz++szFues6BeCwc9gE+mf+VA+Ks1wESabCExs1cNQjKk0D83X XwNMXcGCSM+HuHNJ6Y6zDPsQAzimxkVS7VuSR//8tNnvoh8Jj/6OxEy0RGGp7SYBRnJJ25 3MJS9HN7PWWNUz7LFmGzOI52hDOzLyQ= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf22.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689256506; a=rsa-sha256; cv=none; b=rXwj/V3QeMXT1FFRhackr/a5pjpE4V1+ExLXYs1f8PDlECzn4wIF/zqC6l3c6G61UOuejp XRfABoXSkmeENM49ujnB8QeXpm+172A3l6zPH1z2Zirrb6wrICmLkgDPKRFH9E1I33k4No IeAcv/ds4Unc4bqsMX20mCWfOe/CpDU= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BA4191596; Thu, 13 Jul 2023 06:55:48 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.26]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AFCEC3F73F; Thu, 13 Jul 2023 06:55:04 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Shuah Khan , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , David Hildenbrand , Mark Brown , John Hubbard , Florent Revest , "Liam R. Howlett" Cc: Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 9/9] selftests/mm: Run all tests from run_vmtests.sh Date: Thu, 13 Jul 2023 14:54:40 +0100 Message-Id: <20230713135440.3651409-10-ryan.roberts@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230713135440.3651409-1-ryan.roberts@arm.com> References: <20230713135440.3651409-1-ryan.roberts@arm.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 83797C000D X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: drcxfekcnpmokeh7cw1pyqz95gdkurid X-HE-Tag: 1689256506-723681 X-HE-Meta: U2FsdGVkX1/TgfID/qCEyzzNtiCHmP3b0jyTAGiizr7r3x4LsZNvkhIyyYfNQ2U1kSsxD35w9lPphX68W7BSDWm6W8Rw73K6k69lb5D2CdMRlLqpc3vQI7USidLc/Lb32N2eDwh6cilVK1Jsgh74o6TAWrsVlWODxQhEudBUl393dn0NRQ7qSaMlXFnPBBI8OgkhZ40j/grMB7eWPVCQQsvW3ggMp6E2gZbdZhU44amMKn+5Jh/K84E/URLPEpMNu/3C/NpH4mtWtrNRq9CjuobXZ5ti/Qda3tu1TLOVgsJBSg8epIooTuywEIBkWsXMTzbyxMygEOSxc4Eo34nmPxTvAt9RyYYGrZaTmFZ87ofufE67ICt0XFwbORPufC9ytNhKsV5ZRsLt8EOk0RQiBVmgmhtxtLeDJwnMMhASjpFoR2iT2/iXR5RjQFR6g/NsXxVlDpTV32oCaKGolKGPwV086G0LuJof+ZLS/Ps6K+pJJ8savGANmKwdtZljqV/vXhzBNZ0kEVZx4P1BMBhaZWylmExDU2q+UdorJbR5PcOziAsvWiaJlf0WXlY3Rp45b7L9ROrUQ2/Clwh1T06JPsb2ULahBy82VNcRkERkDX6E6xSuliZWOBz69AKzK+ecL6Zm8dj7qk/8Eg/8uIRkNF0KThs4YU+aQfbmOxi7alOKAZlsR8euXg6pdxpQNqyTx9Q/oQJT/Mn3e0tbJzznNSBgWaOrMyZgqz/YwvrlWRJbgh7J6WA1zC9sH2F19siXugdIlUJ8GExhTXawAi7pEPH91A/jVMWkxiUiMm+4ksf3XmEVe5kQZJaj7/1U3qXMAerLWf0fqGTngy0vObLtDPW+WYPpL4J8ItJ7EI+ZJWrOUDSEUoE6BQgSdbBhBqdZZ+J2OElqBIlvILuAaBMITedcsLybIURkmpi4L86n2pe4GVX13tJX3qjKhwxpPj6RUkxD6XeKVp3Ypdeaj3f mgxTNS0x is0OhF4HK/hvla8ngB4Oa6x9hH6hodbIvwgKQiHypE/dSKEpQuL16fYL2eIKAMyt/nV/usyhwGZf82jEPDljQIVjroERmhKJZYwSVIoydn/PDlDDY8kmyRB6PONXKC2uViRPH+zNmai06Aia9gg3CexVqnbtuAvNJRIqL/hLyX64Yw09hWuo2AFYh6Dif2jzSg5c0BLRRFw7REkvekzeXv5B7hQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: It is very unclear to me how one is supposed to run all the mm selftests consistently and get clear results. Most of the test programs are launched by both run_vmtests.sh and run_kselftest.sh: hugepage-mmap hugepage-shm map_hugetlb hugepage-mremap hugepage-vmemmap hugetlb-madvise map_fixed_noreplace gup_test gup_longterm uffd-unit-tests uffd-stress compaction_test on-fault-limit map_populate mlock-random-test mlock2-tests mrelease_test mremap_test thuge-gen virtual_address_range va_high_addr_switch mremap_dontunmap hmm-tests madv_populate memfd_secret ksm_tests ksm_functional_tests soft-dirty cow However, of this set, when launched by run_vmtests.sh, some of the programs are invoked multiple times with different arguments. When invoked by run_kselftest.sh, they are invoked without arguments (and as a consequence, some fail immediately). Some test programs are only launched by run_vmtests.sh: test_vmalloc.sh And some test programs and only launched by run_kselftest.sh: khugepaged migration mkdirty transhuge-stress split_huge_page_test mdwe_test write_to_hugetlbfs Furthermore, run_vmtests.sh is invoked by run_kselftest.sh, so in this case all the test programs invoked by both scripts are run twice! Needless to say, this is a bit of a mess. In the absence of fully understanding the history here, it looks to me like the best solution is to launch ALL test programs from run_vmtests.sh, and ONLY invoke run_vmtests.sh from run_kselftest.sh. This way, we get full control over the parameters, each program is only invoked the intended number of times, and regardless of which script is used, the same tests get run in the same way. The only drawback is that if using run_kselftest.sh, it's top-level tap result reporting reports only a single test and it fails if any of the contained tests fail. I don't see this as a big deal though since we still see all the nested reporting from multiple layers. The other issue with this is that all of run_vmtests.sh must execute within a single kselftest timeout period, so let's increase that to something more suitable. Signed-off-by: Ryan Roberts --- tools/testing/selftests/mm/Makefile | 79 ++++++++++++----------- tools/testing/selftests/mm/run_vmtests.sh | 23 +++++++ tools/testing/selftests/mm/settings | 2 +- 3 files changed, 64 insertions(+), 40 deletions(-) diff --git a/tools/testing/selftests/mm/Makefile b/tools/testing/selftests/mm/Makefile index 66d7c07dc177..881ed96d96fd 100644 --- a/tools/testing/selftests/mm/Makefile +++ b/tools/testing/selftests/mm/Makefile @@ -35,39 +35,39 @@ MAKEFLAGS += --no-builtin-rules CFLAGS = -Wall -I $(top_srcdir) $(EXTRA_CFLAGS) $(KHDR_INCLUDES) LDLIBS = -lrt -lpthread -TEST_GEN_PROGS = cow -TEST_GEN_PROGS += compaction_test -TEST_GEN_PROGS += gup_longterm -TEST_GEN_PROGS += gup_test -TEST_GEN_PROGS += hmm-tests -TEST_GEN_PROGS += hugetlb-madvise -TEST_GEN_PROGS += hugepage-mmap -TEST_GEN_PROGS += hugepage-mremap -TEST_GEN_PROGS += hugepage-shm -TEST_GEN_PROGS += hugepage-vmemmap -TEST_GEN_PROGS += khugepaged -TEST_GEN_PROGS += madv_populate -TEST_GEN_PROGS += map_fixed_noreplace -TEST_GEN_PROGS += map_hugetlb -TEST_GEN_PROGS += map_populate -TEST_GEN_PROGS += memfd_secret -TEST_GEN_PROGS += migration -TEST_GEN_PROGS += mkdirty -TEST_GEN_PROGS += mlock-random-test -TEST_GEN_PROGS += mlock2-tests -TEST_GEN_PROGS += mrelease_test -TEST_GEN_PROGS += mremap_dontunmap -TEST_GEN_PROGS += mremap_test -TEST_GEN_PROGS += on-fault-limit -TEST_GEN_PROGS += thuge-gen -TEST_GEN_PROGS += transhuge-stress -TEST_GEN_PROGS += uffd-stress -TEST_GEN_PROGS += uffd-unit-tests -TEST_GEN_PROGS += soft-dirty -TEST_GEN_PROGS += split_huge_page_test -TEST_GEN_PROGS += ksm_tests -TEST_GEN_PROGS += ksm_functional_tests -TEST_GEN_PROGS += mdwe_test +TEST_GEN_FILES = cow +TEST_GEN_FILES += compaction_test +TEST_GEN_FILES += gup_longterm +TEST_GEN_FILES += gup_test +TEST_GEN_FILES += hmm-tests +TEST_GEN_FILES += hugetlb-madvise +TEST_GEN_FILES += hugepage-mmap +TEST_GEN_FILES += hugepage-mremap +TEST_GEN_FILES += hugepage-shm +TEST_GEN_FILES += hugepage-vmemmap +TEST_GEN_FILES += khugepaged +TEST_GEN_FILES += madv_populate +TEST_GEN_FILES += map_fixed_noreplace +TEST_GEN_FILES += map_hugetlb +TEST_GEN_FILES += map_populate +TEST_GEN_FILES += memfd_secret +TEST_GEN_FILES += migration +TEST_GEN_FILES += mkdirty +TEST_GEN_FILES += mlock-random-test +TEST_GEN_FILES += mlock2-tests +TEST_GEN_FILES += mrelease_test +TEST_GEN_FILES += mremap_dontunmap +TEST_GEN_FILES += mremap_test +TEST_GEN_FILES += on-fault-limit +TEST_GEN_FILES += thuge-gen +TEST_GEN_FILES += transhuge-stress +TEST_GEN_FILES += uffd-stress +TEST_GEN_FILES += uffd-unit-tests +TEST_GEN_FILES += soft-dirty +TEST_GEN_FILES += split_huge_page_test +TEST_GEN_FILES += ksm_tests +TEST_GEN_FILES += ksm_functional_tests +TEST_GEN_FILES += mdwe_test ifeq ($(ARCH),x86_64) CAN_BUILD_I386 := $(shell ./../x86/check_cc.sh "$(CC)" ../x86/trivial_32bit_program.c -m32) @@ -83,24 +83,24 @@ CFLAGS += -no-pie endif ifeq ($(CAN_BUILD_I386),1) -TEST_GEN_PROGS += $(BINARIES_32) +TEST_GEN_FILES += $(BINARIES_32) endif ifeq ($(CAN_BUILD_X86_64),1) -TEST_GEN_PROGS += $(BINARIES_64) +TEST_GEN_FILES += $(BINARIES_64) endif else ifneq (,$(findstring $(ARCH),ppc64)) -TEST_GEN_PROGS += protection_keys +TEST_GEN_FILES += protection_keys endif endif ifneq (,$(filter $(ARCH),arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sparc64 x86_64)) -TEST_GEN_PROGS += va_high_addr_switch -TEST_GEN_PROGS += virtual_address_range -TEST_GEN_PROGS += write_to_hugetlbfs +TEST_GEN_FILES += va_high_addr_switch +TEST_GEN_FILES += virtual_address_range +TEST_GEN_FILES += write_to_hugetlbfs endif TEST_PROGS := run_vmtests.sh @@ -112,6 +112,7 @@ TEST_FILES += va_high_addr_switch.sh include ../lib.mk $(TEST_GEN_PROGS): vm_util.c +$(TEST_GEN_FILES): vm_util.c $(OUTPUT)/uffd-stress: uffd-common.c $(OUTPUT)/uffd-unit-tests: uffd-common.c diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh index 3f26f6e15b2a..55fe1d309355 100755 --- a/tools/testing/selftests/mm/run_vmtests.sh +++ b/tools/testing/selftests/mm/run_vmtests.sh @@ -55,6 +55,17 @@ separated by spaces: test soft dirty page bit semantics - cow test copy-on-write semantics +- thp + test transparent huge pages +- migration + invoke move_pages(2) to exercise the migration entry code + paths in the kernel +- mkdirty + test handling of code that might set PTE/PMD dirty in + read-only VMAs +- mdwe + test prctl(PR_SET_MDWE, ...) + example: ./run_vmtests.sh -t "hmm mmap ksm" EOF exit 0 @@ -295,6 +306,18 @@ CATEGORY="soft_dirty" run_test ./soft-dirty # COW tests CATEGORY="cow" run_test ./cow +CATEGORY="thp" run_test ./khugepaged + +CATEGORY="thp" run_test ./transhuge-stress -d 20 + +CATEGORY="thp" run_test ./split_huge_page_test + +CATEGORY="migration" run_test ./migration + +CATEGORY="mkdirty" run_test ./mkdirty + +CATEGORY="mdwe" run_test ./mdwe_test + echo "SUMMARY: PASS=${count_pass} SKIP=${count_skip} FAIL=${count_fail}" exit $exitcode diff --git a/tools/testing/selftests/mm/settings b/tools/testing/selftests/mm/settings index ba4d85f74cd6..a953c96aa16e 100644 --- a/tools/testing/selftests/mm/settings +++ b/tools/testing/selftests/mm/settings @@ -1 +1 @@ -timeout=90 +timeout=180