From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 60E493E3DA2 for ; Tue, 28 Apr 2026 10:01:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777370484; cv=none; b=kCJ30Pb4Bfb/S1gKLzhwCxCOMX6hkuxU3Vs+Dew/OAIT8wq0NXDiLZI5bF4yGyTmMgaZItxJenkfU6M8fVyQz1KW9EThhvvyq65hR6FgsCIo2ThX7VtjuvTqvyeWeWe8QB6MPrHGI1pKROYD3CfoFezzqAQuwu1qOP/LjAGoFs8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777370484; c=relaxed/simple; bh=xCeDgVV3DFEdDcHU0rf/MdkWPmIsrxa06kKdteRqfa0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SCVuKoYVwsQBts+PQC2BDDU09zniTDyOkNHiUMbTj9YtGuIt9q9yAK+WIJVqB7Wdzd0qIWWSsiYtJdBWS0BANOCHBFQwWmrdNayP7Q0oQ4f/JZ1ypdk8vr6zykk03lh75W6EDDVHSjlTuq5hziZ1YR4ZEvmF48Uerwe1csVC0U0= 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=iUqz2da3; arc=none smtp.client-ip=209.85.214.180 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="iUqz2da3" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2a871daa98fso73456835ad.1 for ; Tue, 28 Apr 2026 03:01:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777370483; x=1777975283; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6QQkVdRIZwiZco7V8KN8H23FWv9G8K8ad5vKyiX7w88=; b=iUqz2da3p8oxGvDla4xoGzlFAByaoJp+IGVJuVBKWi3WGCVK87c6Vv28E3JG4OyP4z PLpUFsw4EN3b4afCeYX4VPEZNr9c5a9GdNwBkUVHHvZgvrdTHRsxaq6O1XDkYkcEMMwU 6meviduTS/aW/+kC5Ehjbcmv1VL1zEAy9GcQ7vDqsrbpL0ZsxM90caKNqvsrJsgGtSuU DADV0viNKsmi0s4erwWdDIZLdxrdgCGOMzC5UYMxhaDyYtZvvmxHgqTSZfzsqI2rRyaI gAgEw98CwWtoriA7t8DGRGDe5fBKM3I1MyBmOtmsWzW+ygHNv50NiKxrAN/SzM2rno4I aEyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777370483; x=1777975283; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6QQkVdRIZwiZco7V8KN8H23FWv9G8K8ad5vKyiX7w88=; b=X/CRAVouDL9rZFB8zJqYg+7hN+78esUTb7zs8uD8olmJ8zJID7YxonTRpadLGwnk10 2smmuotSZkKDW9xrrsCiHRYsl6+gf7qXKrpx9qWOggFFWmfAH8ZlH0Jo3u1wVq0G064K CLxRoHzarOJzywZP0ofum5xF8bAc4BvKBRAaW4YL4AxEdwXjMv7BifEdoc5vFXS2FbW7 3uMQn+VBKo2DjD7jtm0MRy93LzPqSr0iYl2lVlcIH5zHS/zMCGxZxiAfc56k0MvJSzEW 6LJFqq6P9DnSSZ+AD7ExvJtFye9fkldHHHq/wQMQ2vhWx3uqP3603H6OIVKk8Lk9pHH/ 8IFQ== X-Forwarded-Encrypted: i=1; AFNElJ/Tg6LB3ggYXN+/H1FJS52+0RHPQB1yg19JFPjLWz6zcX1SBC7sfIAp+XSuuZrItQvMiXF/BsV93PEoGdU=@vger.kernel.org X-Gm-Message-State: AOJu0YwAtWCCov+gvrEYjP5ZKvDO0m8l5aDaAUF0bB89h1WPGboeEejV Br2JLKys8g4r9vwVaZPZDuTWyxE1VPUc4F6yL9NA0F5g/w5IzdNIlFYJ X-Gm-Gg: AeBDiesnE3a7C0XbW806Q/6JRsHlWCERCuHYZyC/8Wxa3+m01TgirEaxgO1QcvHyK2X /1rEeLKcDJdWKub4MYPUJ8F6jeHOU2ok/XY+TpXxxTRLTEthAMLzdmiY0EUJwn56VkKR/dJcM1F Z703X96wjcKwi07eor+m7NFIrtRaHgBnkQQboIKHa6K5RXg9hHr6RJ/N0x/AM4bOqvJsiA/jxtZ zfx/ozmmbsGKTrxtNuLHNY+EzJBRSU7uDrDkuRxhsQSzmy9HFsuXFt0q/YEFZYByVveTkgfyqHb rMMJ+BpQ4XQ871xoCanPaRudSEbcM845pqALrnsUifIG3nUcJs4UMB6kHe4QFKiDahrwZa6R8da zRfhpB13OZMsGBZb5PGHxuozzARcTKTcHynNhhS1AdW3qiQd2SCMBr33lxmarH4livkrwUp4mpV RHX9KiTq6sDovYubhasrQ8DPokId+xgpENW+Cnq1NJ X-Received: by 2002:a17:903:1904:b0:2b2:4fcc:2687 with SMTP id d9443c01a7336-2b97c47e638mr27098785ad.31.1777370482430; Tue, 28 Apr 2026 03:01:22 -0700 (PDT) Received: from vini ([2401:4900:8fca:e7b6:f223:6319:a79e:7616]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aaafc9asm21801265ad.34.2026.04.28.03.01.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Apr 2026 03:01:21 -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 v3] selftests/mm: khugepaged: initialize file contents via mmap Date: Tue, 28 Apr 2026 15:30:58 +0530 Message-ID: <20260428100058.62554-1-agarwal.vineet2006@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <3abf09d8-a98e-4f1b-b8d9-77879a8a2733@kernel.org> References: <3abf09d8-a98e-4f1b-b8d9-77879a8a2733@kernel.org> 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() currently allocates anonymous memory, fills it, and writes it into the backing file used for collapse testing. Instead of copying data through write(), resize the file with ftruncate(), map it directly with MAP_SHARED, and initialize the mapped area in place. This simplifies the setup path and avoids the need for explicit partial write handling. Signed-off-by: Vineet Agarwal --- tools/testing/selftests/mm/khugepaged.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selftests/mm/khugepaged.c index 3fe7ef04ac62..57ca4224bd5a 100644 --- a/tools/testing/selftests/mm/khugepaged.c +++ b/tools/testing/selftests/mm/khugepaged.c @@ -369,7 +369,6 @@ static void *file_setup_area(int nr_hpages) int fd; void *p; unsigned long size; - unlink(finfo.path); /* Cleanup from previous failed tests */ printf("Creating %s for collapse%s...", finfo.path, finfo.type == VMA_SHMEM ? " (tmpfs)" : ""); @@ -381,11 +380,21 @@ static void *file_setup_area(int nr_hpages) } size = nr_hpages * hpage_pmd_size; - p = alloc_mapping(nr_hpages); + if (ftruncate(fd, size)) { + perror("ftruncate()"); + close(fd); + exit(EXIT_FAILURE); + } + p = mmap(BASE_ADDR, size, PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + if (p == MAP_FAILED || p != BASE_ADDR) { + perror("mmap()"); + close(fd); + exit(EXIT_FAILURE); + } fill_memory(p, 0, size); - write(fd, p, size); - close(fd); munmap(p, size); + close(fd); success("OK"); printf("Opening %s read only for collapse...", finfo.path); -- 2.54.0