* [PATCH] selftests/mm: check file initialization writes in split_huge_page_test
@ 2026-05-12 7:49 Vineet Agarwal
2026-05-12 7:57 ` David Hildenbrand (Arm)
0 siblings, 1 reply; 2+ messages in thread
From: Vineet Agarwal @ 2026-05-12 7:49 UTC (permalink / raw)
To: akpm; +Cc: david, ljs, linux-mm, linux-kselftest, linux-kernel,
Vineet Agarwal
create_pagecache_thp_and_fd() fills the backing file for the
pagecache THP tests using repeated write() calls, but the return
value is never checked.
If a write fails or completes only partially, the test may continue
with an incompletely initialized file and produce misleading results.
Check the result of write() and fail the test if the expected number
of bytes was not written.
Signed-off-by: Vineet Agarwal <agarwal.vineet2006@gmail.com>
---
tools/testing/selftests/mm/split_huge_page_test.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/testing/selftests/mm/split_huge_page_test.c
index 500d07c4938b..eab69b0f59a0 100644
--- a/tools/testing/selftests/mm/split_huge_page_test.c
+++ b/tools/testing/selftests/mm/split_huge_page_test.c
@@ -609,9 +609,16 @@ static int create_pagecache_thp_and_fd(const char *testfile, size_t fd_size,
assert(fd_size % sizeof(buf) == 0);
for (i = 0; i < sizeof(buf); i++)
buf[i] = (unsigned char)i;
- for (i = 0; i < fd_size; i += sizeof(buf))
- write(*fd, buf, sizeof(buf));
-
+ for (i = 0; i < fd_size; i += sizeof(buf)) {
+ ssize_t written;
+
+ written = write(*fd, buf, sizeof(buf));
+ if (written != sizeof(buf)) {
+ ksft_perror("write testfile");
+ close(*fd);
+ goto err_out_unlink;
+ }
+ }
close(*fd);
sync();
*fd = open("/proc/sys/vm/drop_caches", O_WRONLY);
--
2.54.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] selftests/mm: check file initialization writes in split_huge_page_test
2026-05-12 7:49 [PATCH] selftests/mm: check file initialization writes in split_huge_page_test Vineet Agarwal
@ 2026-05-12 7:57 ` David Hildenbrand (Arm)
0 siblings, 0 replies; 2+ messages in thread
From: David Hildenbrand (Arm) @ 2026-05-12 7:57 UTC (permalink / raw)
To: Vineet Agarwal, akpm; +Cc: ljs, linux-mm, linux-kselftest, linux-kernel
On 5/12/26 09:49, Vineet Agarwal wrote:
> create_pagecache_thp_and_fd() fills the backing file for the
> pagecache THP tests using repeated write() calls, but the return
> value is never checked.
>
> If a write fails or completes only partially, the test may continue
> with an incompletely initialized file and produce misleading results.
>
> Check the result of write() and fail the test if the expected number
> of bytes was not written.
>
> Signed-off-by: Vineet Agarwal <agarwal.vineet2006@gmail.com>
> ---
> tools/testing/selftests/mm/split_huge_page_test.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/testing/selftests/mm/split_huge_page_test.c
> index 500d07c4938b..eab69b0f59a0 100644
> --- a/tools/testing/selftests/mm/split_huge_page_test.c
> +++ b/tools/testing/selftests/mm/split_huge_page_test.c
> @@ -609,9 +609,16 @@ static int create_pagecache_thp_and_fd(const char *testfile, size_t fd_size,
> assert(fd_size % sizeof(buf) == 0);
> for (i = 0; i < sizeof(buf); i++)
> buf[i] = (unsigned char)i;
> - for (i = 0; i < fd_size; i += sizeof(buf))
> - write(*fd, buf, sizeof(buf));
> -
> + for (i = 0; i < fd_size; i += sizeof(buf)) {
> + ssize_t written;
Do you really need the temporary variable?
> +
> + written = write(*fd, buf, sizeof(buf));
> + if (written != sizeof(buf)) {
> + ksft_perror("write testfile");
> + close(*fd);
> + goto err_out_unlink;
> + }
> + }
> close(*fd);
> sync();
> *fd = open("/proc/sys/vm/drop_caches", O_WRONLY);
Apart from that LGTM
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
--
Cheers,
David
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-12 7:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-12 7:49 [PATCH] selftests/mm: check file initialization writes in split_huge_page_test Vineet Agarwal
2026-05-12 7:57 ` David Hildenbrand (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox