* [PATCH v7 0/7] selftests/mm: skip several tests when thp is not available
@ 2026-03-30 15:13 Chunyu Hu
0 siblings, 0 replies; 3+ messages in thread
From: Chunyu Hu @ 2026-03-30 15:13 UTC (permalink / raw)
To: akpm, david, shuah, linux-mm, ljs
Cc: linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
vbabka, rppt, surenb, mhocko, ziy, baolin.wang, npache,
ryan.roberts, dev.jain, baohua, lance.yang, chuhu
There are several tests requires transprarent hugepages, when run on thp
disabled kernel such as realtime kernel, there will be false negative.
Mark those tests as skip when thp is not available.
Changes in v7:
- patch 1 add reviewed-by from Lorenzo
- patch 4 new patch to make ksft_exit_fail_perror variable length
arguments
- patch 5 change to use %.*s to print the buf when error happened
Limit the buflen arg as 2 minimum. Check the error path (numwritten
< 0).
And use the ksft_exit_fail_perror to print the logs in error path
Chagnes in v6:
- patch 3 add reviewed-by from Lorenzo
- patch 4 handle the errno before and after close(), suggested by AI
Changes in v5:
- patch 1, patch 3 updated reviwed-by and acked-by
- patch 4 adds new patch for robust write_file()
Changes in v4:
- patch 1 update to use thp_available instead of thp_is_enabled,
suggested by ai review
- removed reviewed-by and acked-by
Changes in v3:
- patch 1 update commit message to show the log snippet with where the
fail happens, change the 'false positive' to 'false negative'.
Update reviwed by
- patch 2 update reviewed-by
- patch 3 make write_file to void return
- patch 4 and patch 5 updated reviewed-by/acked-by
Changes in v2:
- replace 'false postive' with 'false negative' in cover letter
- patch 1 and patch 2 add reviewed-by/acked-by
- new patch 3 to add write_file() in vm_util as a common helper
- patch 4 removed the {} in if block, removed the write_file helper
rename chunk in v1. Add reviewed-by
- patch 5 move the exit chunk to the front of ksft_print_headers() as
suggested by David. Add review by.
Chunyu Hu (7):
selftests/mm/guard-regions: skip collapse test when thp not enabled
selftests/mm: soft-dirty: skip two tests when thp is not available
selftests/mm: move write_file helper to vm_util
kselftest: make ksft_exit_fail_perror support va args
selftests/mm/vm_util: robust write_file()
selftests/mm: split_huge_page_test: skip the test when thp is not
available
selftests/mm: transhuge_stress: skip the test when thp not available
tools/testing/selftests/kselftest.h | 21 +++++++++--
tools/testing/selftests/mm/guard-regions.c | 4 +++
tools/testing/selftests/mm/soft-dirty.c | 4 ++-
.../selftests/mm/split_huge_page_test.c | 19 +++-------
tools/testing/selftests/mm/thp_settings.c | 35 ++-----------------
tools/testing/selftests/mm/thp_settings.h | 1 -
tools/testing/selftests/mm/transhuge-stress.c | 4 +++
tools/testing/selftests/mm/vm_util.c | 24 +++++++++++++
tools/testing/selftests/mm/vm_util.h | 2 ++
9 files changed, 62 insertions(+), 52 deletions(-)
base-commit: 7aaa8047eafd0bd628065b15757d9b48c5f9c07d
--
2.53.0
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH v7 0/7] selftests/mm: skip several tests when thp is not available
@ 2026-03-30 15:14 Chunyu Hu
2026-03-30 19:25 ` Andrew Morton
0 siblings, 1 reply; 3+ messages in thread
From: Chunyu Hu @ 2026-03-30 15:14 UTC (permalink / raw)
To: akpm, david, shuah, linux-mm, ljs
Cc: linux-kselftest, linux-kernel, lorenzo.stoakes, Liam.Howlett,
vbabka, rppt, surenb, mhocko, ziy, baolin.wang, npache,
ryan.roberts, dev.jain, baohua, lance.yang, chuhu
There are several tests requires transprarent hugepages, when run on thp
disabled kernel such as realtime kernel, there will be false negative.
Mark those tests as skip when thp is not available.
Changes in v7:
- patch 1 add reviewed-by from Lorenzo
- patch 4 new patch to make ksft_exit_fail_perror variable length
arguments
- patch 5 change to use %.*s to print the buf when error happened
Limit the buflen arg as 2 minimum. Check the error path (numwritten
< 0).
And use the ksft_exit_fail_perror to print the logs in error path
Chagnes in v6:
- patch 3 add reviewed-by from Lorenzo
- patch 4 handle the errno before and after close(), suggested by AI
Changes in v5:
- patch 1, patch 3 updated reviwed-by and acked-by
- patch 4 adds new patch for robust write_file()
Changes in v4:
- patch 1 update to use thp_available instead of thp_is_enabled,
suggested by ai review
- removed reviewed-by and acked-by
Changes in v3:
- patch 1 update commit message to show the log snippet with where the
fail happens, change the 'false positive' to 'false negative'.
Update reviwed by
- patch 2 update reviewed-by
- patch 3 make write_file to void return
- patch 4 and patch 5 updated reviewed-by/acked-by
Changes in v2:
- replace 'false postive' with 'false negative' in cover letter
- patch 1 and patch 2 add reviewed-by/acked-by
- new patch 3 to add write_file() in vm_util as a common helper
- patch 4 removed the {} in if block, removed the write_file helper
rename chunk in v1. Add reviewed-by
- patch 5 move the exit chunk to the front of ksft_print_headers() as
suggested by David. Add review by.
Chunyu Hu (7):
selftests/mm/guard-regions: skip collapse test when thp not enabled
selftests/mm: soft-dirty: skip two tests when thp is not available
selftests/mm: move write_file helper to vm_util
kselftest: make ksft_exit_fail_perror support va args
selftests/mm/vm_util: robust write_file()
selftests/mm: split_huge_page_test: skip the test when thp is not
available
selftests/mm: transhuge_stress: skip the test when thp not available
tools/testing/selftests/kselftest.h | 21 +++++++++--
tools/testing/selftests/mm/guard-regions.c | 4 +++
tools/testing/selftests/mm/soft-dirty.c | 4 ++-
.../selftests/mm/split_huge_page_test.c | 19 +++-------
tools/testing/selftests/mm/thp_settings.c | 35 ++-----------------
tools/testing/selftests/mm/thp_settings.h | 1 -
tools/testing/selftests/mm/transhuge-stress.c | 4 +++
tools/testing/selftests/mm/vm_util.c | 24 +++++++++++++
tools/testing/selftests/mm/vm_util.h | 2 ++
9 files changed, 62 insertions(+), 52 deletions(-)
base-commit: 7aaa8047eafd0bd628065b15757d9b48c5f9c07d
--
2.53.0
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v7 0/7] selftests/mm: skip several tests when thp is not available
2026-03-30 15:14 Chunyu Hu
@ 2026-03-30 19:25 ` Andrew Morton
0 siblings, 0 replies; 3+ messages in thread
From: Andrew Morton @ 2026-03-30 19:25 UTC (permalink / raw)
To: Chunyu Hu
Cc: david, shuah, linux-mm, ljs, linux-kselftest, linux-kernel,
lorenzo.stoakes, Liam.Howlett, vbabka, rppt, surenb, mhocko, ziy,
baolin.wang, npache, ryan.roberts, dev.jain, baohua, lance.yang
On Mon, 30 Mar 2026 23:14:56 +0800 Chunyu Hu <chuhu@redhat.com> wrote:
> There are several tests requires transprarent hugepages, when run on thp
> disabled kernel such as realtime kernel, there will be false negative.
> Mark those tests as skip when thp is not available.
Thanks, I updated mm.git's mm-unstable branch to this version.
> Changes in v7:
> - patch 1 add reviewed-by from Lorenzo
> - patch 4 new patch to make ksft_exit_fail_perror variable length
> arguments
> - patch 5 change to use %.*s to print the buf when error happened
> Limit the buflen arg as 2 minimum. Check the error path (numwritten
> < 0).
> And use the ksft_exit_fail_perror to print the logs in error path
Here's how v7 altered mm.git.
tools/testing/selftests/kselftest.h | 21 ++++++++++++++++++---
tools/testing/selftests/mm/vm_util.c | 14 +++++++-------
2 files changed, 25 insertions(+), 10 deletions(-)
--- a/tools/testing/selftests/kselftest.h~b
+++ a/tools/testing/selftests/kselftest.h
@@ -43,7 +43,7 @@
* the program is aborting before finishing all tests):
*
* ksft_exit_fail_msg(fmt, ...);
- * ksft_exit_fail_perror(msg);
+ * ksft_exit_fail_perror(fmt, ...);
*
*/
#ifndef __KSELFTEST_H
@@ -417,9 +417,24 @@ static inline __noreturn __printf(1, 2)
exit(KSFT_FAIL);
}
-static inline __noreturn void ksft_exit_fail_perror(const char *msg)
+static inline __noreturn __printf(1, 2) void ksft_exit_fail_perror(const char *msg, ...)
{
- ksft_exit_fail_msg("%s: %s (%d)\n", msg, strerror(errno), errno);
+ va_list args;
+ char *buf = NULL;
+ int saved_errno = errno;
+
+ va_start(args, msg);
+ if (vasprintf(&buf, msg, args) == -1) {
+ va_end(args);
+ ksft_exit_fail_msg("vasprintf failed: %s (%d)\n", strerror(saved_errno),
+ saved_errno);
+ }
+ va_end(args);
+
+ errno = saved_errno;
+ ksft_exit_fail_msg("%s: %s (%d)\n", buf, strerror(errno), errno);
+
+ free(buf);
}
static inline __noreturn void ksft_exit_xfail(void)
--- a/tools/testing/selftests/mm/vm_util.c~b
+++ a/tools/testing/selftests/mm/vm_util.c
@@ -782,21 +782,21 @@ void write_file(const char *path, const
int fd, saved_errno;
ssize_t numwritten;
- if (buflen < 1)
+ if (buflen < 2)
ksft_exit_fail_msg("Incorrect buffer len: %zu\n", buflen);
fd = open(path, O_WRONLY);
if (fd == -1)
- ksft_exit_fail_msg("%s open failed: %s\n", path, strerror(errno));
+ ksft_exit_fail_perror("%s open failed", path);
numwritten = write(fd, buf, buflen - 1);
saved_errno = errno;
close(fd);
errno = saved_errno;
- if (numwritten < 1)
- ksft_exit_fail_msg("%s write(%s) failed: %s\n", path, buf,
- strerror(errno));
+ if (numwritten < 0)
+ ksft_exit_fail_perror("%s write(%.*s) failed", path, (int)(buflen - 1),
+ buf);
if (numwritten != buflen - 1)
- ksft_exit_fail_msg("%s write(%s) is truncated, expected %zu bytes, got %zd bytes\n",
- path, buf, buflen - 1, numwritten);
+ ksft_exit_fail_msg("%s write(%.*s) is truncated, expected %zu bytes, got %zd bytes\n",
+ path, (int)(buflen - 1), buf, buflen - 1, numwritten);
}
_
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-03-30 19:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-03-30 15:13 [PATCH v7 0/7] selftests/mm: skip several tests when thp is not available Chunyu Hu
2026-03-30 15:14 Chunyu Hu
2026-03-30 19:25 ` Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox