From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: Song Hu <husong@kylinos.cn>
Cc: akpm@linux-foundation.org, rppt@kernel.org,
sarthak.sharma@arm.com, linux-mm@kvack.org, shuah@kernel.org,
david@kernel.org, liam@infradead.org, vbabka@kernel.org,
surenb@google.com, mhocko@suse.com, peterx@redhat.com,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/3] selftests/mm: emit TAP header and use TAP skip in mremap_test
Date: Mon, 17 Aug 2026 17:44:26 +0100 [thread overview]
Message-ID: <aoM6YivoBU8JXnSO@lucifer> (raw)
In-Reply-To: <20260815080716.3596514-3-husong@kylinos.cn>
On Sat, Aug 15, 2026 at 04:07:15PM +0800, Song Hu wrote:
> mremap_test calls ksft_set_plan() without ksft_print_header(), and its
> get_mmap_min_addr() skip path uses a bare exit(KSFT_SKIP) that prints no
> TAP line, so its output is not valid KTAP. Add the header and switch
> the skip to ksft_exit_skip().
>
> Also fix two more KTAP compliance issues spotted in review:
>
> - get_mmap_min_addr() calls strerror(errno) after fclose(), which may
> clobber errno; save errno before fclose() instead.
>
> - Some ksft_*() messages embed "\n\t", so the text after each embedded
> newline is printed without the "# " prefix. Split those into separate
> messages.
>
> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Reviewed-by: Sarthak Sharma <sarthak.sharma@arm.com>
> Signed-off-by: Song Hu <husong@kylinos.cn>
All LGTM so:
Acked-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
> ---
> tools/testing/selftests/mm/mremap_test.c | 41 +++++++++++++-----------
> 1 file changed, 23 insertions(+), 18 deletions(-)
>
> diff --git a/tools/testing/selftests/mm/mremap_test.c b/tools/testing/selftests/mm/mremap_test.c
> index 131d9d6db867..28f151daabe4 100644
> --- a/tools/testing/selftests/mm/mremap_test.c
> +++ b/tools/testing/selftests/mm/mremap_test.c
> @@ -111,18 +111,17 @@ static unsigned long long get_mmap_min_addr(void)
> return addr;
>
> fp = fopen("/proc/sys/vm/mmap_min_addr", "r");
> - if (fp == NULL) {
> - ksft_print_msg("Failed to open /proc/sys/vm/mmap_min_addr: %s\n",
> - strerror(errno));
> - exit(KSFT_SKIP);
> - }
> + if (!fp)
> + ksft_exit_skip("Failed to open /proc/sys/vm/mmap_min_addr: %s\n",
> + strerror(errno));
>
> n_matched = fscanf(fp, "%llu", &addr);
> if (n_matched != 1) {
> - ksft_print_msg("Failed to read /proc/sys/vm/mmap_min_addr: %s\n",
> - strerror(errno));
> + int err = errno;
> +
> fclose(fp);
> - exit(KSFT_SKIP);
> + ksft_exit_skip("Failed to read /proc/sys/vm/mmap_min_addr: %s\n",
> + strerror(err));
> }
>
> fclose(fp);
> @@ -1164,10 +1163,11 @@ static void run_mremap_test_case(struct test test_case, int *failures,
> rand_addr);
>
> if (remap_time < 0) {
> - if (test_case.expect_failure)
> - ksft_test_result_xfail("%s\n\tExpected mremap failure\n",
> - test_case.name);
> - else {
> + if (test_case.expect_failure) {
> + ksft_print_msg("%s: expected mremap failure\n",
> + test_case.name);
> + ksft_test_result_xfail("%s\n", test_case.name);
> + } else {
> ksft_test_result_fail("%s\n", test_case.name);
> *failures += 1;
> }
> @@ -1177,11 +1177,13 @@ static void run_mremap_test_case(struct test test_case, int *failures,
> * was faulted in.
> */
> if (threshold_mb == VALIDATION_NO_THRESHOLD ||
> - test_case.config.region_size <= threshold_mb * _1MB)
> - ksft_test_result_pass("%s\n\tmremap time: %12lldns\n",
> - test_case.name, remap_time);
> - else
> + test_case.config.region_size <= threshold_mb * _1MB) {
> + ksft_print_msg("%s: mremap time: %12lldns\n",
> + test_case.name, remap_time);
> ksft_test_result_pass("%s\n", test_case.name);
> + } else {
> + ksft_test_result_pass("%s\n", test_case.name);
> + }
> }
> }
>
> @@ -1250,13 +1252,16 @@ int main(int argc, char **argv)
> time_t t;
> FILE *maps_fp;
>
> + ksft_print_header();
> +
> pattern_seed = (unsigned int) time(&t);
>
> if (parse_args(argc, argv, &threshold_mb, &pattern_seed) < 0)
> exit(EXIT_FAILURE);
>
> - ksft_print_msg("Test configs:\n\tthreshold_mb=%u\n\tpattern_seed=%u\n\n",
> - threshold_mb, pattern_seed);
> + ksft_print_msg("Test configs:\n");
> + ksft_print_msg("threshold_mb=%u\n", threshold_mb);
> + ksft_print_msg("pattern_seed=%u\n", pattern_seed);
>
> /*
> * set preallocated random array according to test configs; see the
> --
> 2.43.0
>
--
Cheers, Lorenzo
next prev parent reply other threads:[~2026-08-17 16:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-15 8:07 [PATCH v2 0/3] selftests/mm: TAP output and global-state fixes Song Hu
2026-08-15 8:07 ` [PATCH v2 1/3] selftests/mm: emit TAP header in uffd-wp-mremap Song Hu
2026-08-17 15:37 ` Usama Anjum
2026-08-17 16:40 ` Lorenzo Stoakes (ARM)
2026-08-15 8:07 ` [PATCH v2 2/3] selftests/mm: emit TAP header and use TAP skip in mremap_test Song Hu
2026-08-17 15:44 ` Usama Anjum
2026-08-17 16:44 ` Lorenzo Stoakes (ARM) [this message]
2026-08-15 8:07 ` [PATCH v2 3/3] selftests/mm: restore enable_soft_offline in hugetlb-soft-offline Song Hu
2026-08-17 15:41 ` Usama Anjum
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=aoM6YivoBU8JXnSO@lucifer \
--to=ljs@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=husong@kylinos.cn \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=peterx@redhat.com \
--cc=rppt@kernel.org \
--cc=sarthak.sharma@arm.com \
--cc=shuah@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.