From: Ryan Roberts <ryan.roberts@arm.com>
To: Mark Brown <broonie@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Shuah Khan <shuah@kernel.org>
Cc: linux-mm@kvack.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] selftests/mm: Don't needlessly use sudo to obtain root in run_vmtests.sh
Date: Sat, 10 Feb 2024 07:40:16 +0000 [thread overview]
Message-ID: <17c0b7a1-6ec2-4504-8287-f0fa111b9748@arm.com> (raw)
In-Reply-To: <20240209-kselftest-mm-check-deps-v1-1-19b09b151522@kernel.org>
On 09/02/2024 20:21, Mark Brown wrote:
> When opening yama/ptrace_scope we unconditionally use sudo to ensure we
> are running as root, resulting in failures if running in a minimal root
> filesystem where sudo is not installed. Since automated test systems will
> typically just run all of kselftest as root (and many kselftests rely on
> this for full functionality) add a check to see if we're already root and
> only invoke sudo if not.
I don't really see the point of this. run_vmtests.sh needs to be run as root;
there are lots of operations that depend on it and most tests will fail if not
root. So I think it would be much cleaner just to remove this instance sudo.
The problem that I was referring to yesterday, about needing sudo was for this case:
CATEGORY="mlock" run_test sudo -u nobody ./on-fault-limit
Here, we are using sudo to deprivilege ourselves from root and run
on-fault-limit as nobody. This is required because the test is checking an
rlimit that is only enforced for normal users.
Somebody on list was talking about skipping this test if sudo wasn't present a
couple of weeks back. Not sure if that happened.
>
> Since I am unclear what the intended effect of the command being run is I
> have not added any error handling for the case where we fail to obtain
> root.
>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---
> tools/testing/selftests/mm/run_vmtests.sh | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
> index fe140a9f4f9d..c8ca830dba93 100755
> --- a/tools/testing/selftests/mm/run_vmtests.sh
> +++ b/tools/testing/selftests/mm/run_vmtests.sh
> @@ -248,6 +248,17 @@ run_test() {
>
> echo "TAP version 13" | tap_output
>
> +HAVE_ROOT=0
> +if [ "$(id -u)" = "0" ]; then
> + AS_ROOT=
> + HAVE_ROOT=1
> +elif [ "$(command -v sudo)" != "" ]; then
> + AS_ROOT=sudo
> + HAVE_ROOT=1
> +else
> + echo # WARNING: Unable to run as root
> +fi
> +
> CATEGORY="hugetlb" run_test ./hugepage-mmap
>
> shmmax=$(cat /proc/sys/kernel/shmmax)
> @@ -363,7 +374,8 @@ CATEGORY="hmm" run_test bash ./test_hmm.sh smoke
> # MADV_POPULATE_READ and MADV_POPULATE_WRITE tests
> CATEGORY="madv_populate" run_test ./madv_populate
>
> -(echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope 2>&1) | tap_prefix
> +# FIXME: What if we can't get root?
> +(echo 0 | ${AS_ROOT} tee /proc/sys/kernel/yama/ptrace_scope 2>&1) | tap_prefix
> CATEGORY="memfd_secret" run_test ./memfd_secret
>
> # KSM KSM_MERGE_TIME_HUGE_PAGES test with size of 100
>
> ---
> base-commit: 445a555e0623387fa9b94e68e61681717e70200a
> change-id: 20240209-kselftest-mm-check-deps-01a825e5fed4
>
> Best regards,
next prev parent reply other threads:[~2024-02-10 7:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-09 20:21 Mark Brown
2024-02-10 7:40 ` Ryan Roberts [this message]
2024-02-10 12:35 ` Mark Brown
2024-02-12 8:32 ` Ryan Roberts
2024-02-12 19:13 ` Mark Brown
2024-02-14 8:53 ` Ryan Roberts
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=17c0b7a1-6ec2-4504-8287-f0fa111b9748@arm.com \
--to=ryan.roberts@arm.com \
--cc=akpm@linux-foundation.org \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox