From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68F5D35898 for ; Tue, 28 Apr 2026 06:24:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777357451; cv=none; b=oC4k+KuGCWVrTKPX3mp+TaHDImcQK+TvYRCEVSKQ1d0o3EA7MbtQmz2QRCTdg8Ev75dt4ZXUI+yyoJ8HlDxev3X0zV79cwOLaJKJQq9lQqgoipaMATZMaM4Z5U2UGlh7I5LeWOuVtrCtO7u7kceUy2z+EhGRlFI2X7q0H5d98Ek= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777357451; c=relaxed/simple; bh=G5pZnsK3YRw+anFbPEqRhBrG/5spNqtr4N8O17T6kJ4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=pBD6bu89xVjBRcZLmFbj9XKsh/CqB3ulTPGZ0JgInQw7/vHjNEjdNpNz/BVlTPO/D5zQLsHfCArIMaOFMPMdbJWXsI1LQgFWeuSLFPLTNwvndxQFPmiH3vL1l+y6gT5bGxOZHnMBZV3/BSChvpeP4t+cWhOq4rWuSKJh4fDkNUQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NxXfeHoA; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NxXfeHoA" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-82f69a286dbso8310000b3a.2 for ; Mon, 27 Apr 2026 23:24:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777357450; x=1777962250; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=dCR2byQYfe0lorBCX0yQhVcHegZI42GX5HyJDRNPA3c=; b=NxXfeHoA1pK91VDoaNFCQ8Z7q9Jwp5JHGnyOQPbVOp+r/mDZ9T06K2hwcmZf3CyalU 5SYGtLydxEieC2RjJZONODHB12F0f5evKGCFAUYR2dtNoOIwwPzgxZsdLTPZto9PHuAv JWrygT5j3DAkCakTMJwmpt3/FsqbEBYQHbDJWeM98JOgeuhqQvyFtdfX5ISCD6xGNSWJ tP4jFviqgkek3fc6GWgOyt3rq8pTEOCYYedWINAgqTuBJOTh8dLViRfH7Bmv11BeCL8I 0BacmCh+YEshEKDGZ+jr/+m8j3w+0QMwWl0yq+ylyxwcA9f5a47qUcsRtw8FS+nuvfff 5K0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777357450; x=1777962250; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dCR2byQYfe0lorBCX0yQhVcHegZI42GX5HyJDRNPA3c=; b=fP368PMaYuVJavs+smaD5/sxJFgQy0BrLzBPyp1sgCnW07Dz4TQ9T2tkvNpvGrIlck D8ywBOLCr7pF/DZnBuD/GaSk0XAzjd+xGX6EooSrOzrYOYhJe0rqyg+hJhV5XsiKA586 i2ylWR3smAsLdYutIfhDH5zM2Xrq0nnuN2+Qgil/PYuw1H0F0xWA3yS5o/3XPSAs4Pg2 natANehIEPmOossQ8sNXRlJ7GCRsAxceOx2bry7wwWpXcok/z28dpk44ZbJBFTn/0KiD FQ055aeetz7cC9Ci833RS+ld6jVhkxrM6RhU8NDS5mCmFrimZmeI0ONoM0Fvu6kn3Jnw Feyg== X-Forwarded-Encrypted: i=1; AFNElJ/SE4QC5G4t4LiNrOdTUP0EAjVadIZt7RBdFxuRjYbvGko8XPIdUxYI1jASnheAAwfm6muqrNGDaDlwGMI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw4o71l9gR2R4pyjGVvjiPgnUL8F5rewlx0PUK+s5++xDqt6ftq INjpwuM/5afZVWSoemqlfJpS4glmW4sHPysNZg4qwCGuwreTOxsDk2zeTyqOaVS5vbU= X-Gm-Gg: AeBDiesMucGNJTnEBTs7HMSJAU+/l8t5en5DJzCMlydBDRq8dCy14fTfoms9wsj5qRS CElTHWi1AJRCuyte2pb4Vhk+r3lFUKfGIotl2O5e78Rwv7E69pn9AG4+rK5mH+I77F5DZJEoFdy I7g98caAU+pievukshBwcXLEmKOkwi/R8BusLiP6DG12G+Mgt5KNZS5h4GlxflGT5Ybo3hoiWDI gRDNGUAz7O8BtQmpxwDfeLdaFfGwWM12SPW2Bp+8PLFDWQZPnNH3JtNhhWw4Xlv0K2h5f98wELg ZCzeeKhXsi+Jld3PsHXn0dNDOmOeXeKaKvShDoB//pgkAutbrPmXCUZXLnmTNKdjWnl/BPW3hwX /J3Zcjy0f3xMB4hQIRAliShHUfWEqcviTy7Y3QTesF81DAhxo/z6BQtD3tuBltoyfPA2+/OlqH+ H3QiENXhABnGjZB3Mo8Qmx9LVJAiEwSGp6sdJ2C3hf X-Received: by 2002:a05:6a00:bd0d:b0:82c:247b:ffdc with SMTP id d2e1a72fcca58-834ddc2d14emr1807018b3a.29.1777357449562; Mon, 27 Apr 2026 23:24:09 -0700 (PDT) Received: from vini ([2401:4900:8fca:e7b6:f223:6319:a79e:7616]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-834dae2249esm1514843b3a.21.2026.04.27.23.23.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 23:24:09 -0700 (PDT) From: Vineet Agarwal To: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, shuah@kernel.org Cc: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Vineet Agarwal Subject: [PATCH] selftests/mm: khugepaged: handle partial write in file_setup_area() Date: Tue, 28 Apr 2026 11:53:22 +0530 Message-ID: <20260428062322.20417-1-agarwal.vineet2006@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit file_setup_area() writes initialized test data into the backing file used for collapse testing, but it ignores the return value from write(). If write() fails or completes only partially, the test continues with incomplete file contents, which can lead to incorrect test results and make failures harder to diagnose. Handle partial writes by retrying until all data is written and abort the test if write() fails. Signed-off-by: Vineet Agarwal --- tools/testing/selftests/mm/khugepaged.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selftests/mm/khugepaged.c index 3fe7ef04ac62..c13f06758750 100644 --- a/tools/testing/selftests/mm/khugepaged.c +++ b/tools/testing/selftests/mm/khugepaged.c @@ -369,7 +369,9 @@ static void *file_setup_area(int nr_hpages) int fd; void *p; unsigned long size; - + size_t remaining; + ssize_t ret; + char *buf; unlink(finfo.path); /* Cleanup from previous failed tests */ printf("Creating %s for collapse%s...", finfo.path, finfo.type == VMA_SHMEM ? " (tmpfs)" : ""); @@ -383,7 +385,19 @@ static void *file_setup_area(int nr_hpages) size = nr_hpages * hpage_pmd_size; p = alloc_mapping(nr_hpages); fill_memory(p, 0, size); - write(fd, p, size); + remaining = size; + buf = p; + + while (remaining > 0) { + ret = write(fd, buf, remaining); + if (ret <= 0) { + close(fd); + munmap(p, size); + ksft_exit_fail_msg("write() failed while preparing test file\n"); + } + buf += ret; + remaining -= ret; + } close(fd); munmap(p, size); success("OK"); -- 2.54.0