From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 9FD9A3D75B9 for ; Tue, 28 Apr 2026 09:44:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777369459; cv=none; b=mMT9ktlhHLvjShozqqgqNYPZ/cWg0J077JNyZ6QE3JsZpVzz/sPQWDKfjICwiL8+0lrqgtWzAyotBLGp6/PVUUQ42+0GwKUcAs0nunupfJvRCz3+yIw2I2/SMVdboa/jn2LPrc6tSPIrseNTkOzPJPkqmy7gNXxhHJVWrNr08u8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777369459; c=relaxed/simple; bh=DeWJxjbLIolKMcSrmMuJw9zc9LM8Faz8SK7Ib6yqngs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gj98MNruyP3NshBNGnVL6D4uc0pjpj2xyXaquoEV1HWHfgDO/AjvTHhyzRd97yeJTb1LXIQDymvaK2trmc/WQIEdZCN6rUEkQKj6mYXl9XSJlchUZRP9P0PXIYInHU9MrHmoLOWOHeLYIHgUVLdWiMrUgaVBpzdMpac9idPNaEU= 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=avLSWovu; arc=none smtp.client-ip=209.85.214.175 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="avLSWovu" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2ad617d5b80so67676235ad.1 for ; Tue, 28 Apr 2026 02:44:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777369458; x=1777974258; 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=C0tY05QQvlWHs+V2WEHsXr/YdchRNZ2bEMNFCy2QVF8=; b=avLSWovuhT8vFpFEBCz2J58Ike2129ElpzKGECEcZxsVhlWEBPWur2ZEd8NOeGqqgR /vEn5pc9xYXC8+MiBcV5dgEf7OO1rxRBg82uuberIByj4VQBYrNVsnHDK2lcCGURKkmF sZ+nDNgLHBMb2NDgp2u7NueVzYCVIoYtbqzKN1Bndz32MBnDoqDHZzLRx3h73IpAdK5m 3Kzo/qmEi8MOc4NMmxaW/MRGDBwg3SQYHPlWlpV3Nu+iLitUvF+eMPXdFOOuOLwD7lh7 nZuAfQt/ThzkV/gDZ5Xmd7700JhX2AZI1ldb1vxKlb3K0u5WAGmqzLIEPUr8Rp02C5VD suyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777369458; x=1777974258; 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=C0tY05QQvlWHs+V2WEHsXr/YdchRNZ2bEMNFCy2QVF8=; b=lCE5xCC8qmf9WwzoqDtHHUuLh66e7rELawpdoG4BV1WyDfIV0k+k9+Q44C0UF/WBt4 h7qm7Iixt6YXbUybbXfIX3DNQvqjNuk1zq/Dz5x7Q8VkAJ6zgi4gFnimy9IRwhR0b+8S 29WJ2pmnUqs39GeP25n+fxTYPMAi/pAMAG4uCmQByCSsz0yeuRo65kqbjbf3gHJ8GnTi bMR5SaEevSe4+4OO/r7WRXFLhxDMLdHDogAj8lABGIg9+gW1rYht8BQ+4gR3sYNPPZHg 4XLEgvFf/nbq1SDOROa9CAyes4sGAVZ3RZakJ9WSgnPrn6hE9hQ+eM6baJ5JzQmtACSx ZxUw== X-Forwarded-Encrypted: i=1; AFNElJ8r7gUiXkhvf6m8nzEHci47vvec2Cuo9yChrwNBjW8o199N7dsLn3+n5Caf3XesCf2/h52OcUEd6z40uSk=@vger.kernel.org X-Gm-Message-State: AOJu0Yzqopgq5utI9vVQz81G0Y1CR2DoRBEOxC/SmgSabPQxp4l2cExX f49spXcIjNI3gh8eWC1qO5l+Gb+g0DSEMmYlNl2DF7uk0GynfUcTZzSg X-Gm-Gg: AeBDietzqRs5sxZCGRnMYmIckJVP8NdihqFRHA+qylS8eKBGeg4I6WOv5qZttK4t6WQ W/6pNJqKVenolNICYgPdMVBOmFKvW5CYjGzAE00z/KOytsPXjJSkH2vKx9AGNGlcBlhn09ZH4xK 6k8ZzyvaV5+RV1VxjCjH6Z2q+88+cN4DT3naWjoumM9UxoxFsQ/VWWpCmCmugySLO+of3ttGlZj sVnJqUGSw+6kg9Uqihn2uUI2ZRU7Fh8u8BYFyM2BKXD5ipljlixyvSkRZZWW3Y1Opc4ZKtrZlc5 T4Yu4P7TsI+YTHd6LoqKIp5XT7uOBgOUEKlbSYnWvO1ELfrGfKWAFxgpJDzO+fmnHrU5p/+6+xE dwyRyAZ/wzD2eyX1UKTRdol3gPmCG6ngtjZciJBPwT29OiUJNuCY+ecJ/FWrSwMrhfEktOpLP2v ZCMghvZUISaoetksmsSDQCcueE0GY3b0SI819cAjXo X-Received: by 2002:a17:903:c48:b0:2b0:b41e:c5c3 with SMTP id d9443c01a7336-2b97c47b448mr18768865ad.29.1777369457950; Tue, 28 Apr 2026 02:44:17 -0700 (PDT) Received: from vini ([2401:4900:8fca:e7b6:f223:6319:a79e:7616]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b97aa9f410sm20403125ad.25.2026.04.28.02.44.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Apr 2026 02:44:17 -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 v2] selftests/mm: khugepaged: initialize file contents via mmap Date: Tue, 28 Apr 2026 15:13:56 +0530 Message-ID: <20260428094356.60415-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(), map the file directly with MAP_SHARED after resizing it with ftruncate(), initialize the mapped area in place, and sync it with msync(). 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 | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selftests/mm/khugepaged.c index 3fe7ef04ac62..f6e171e1da4f 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,29 @@ 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); + + if (msync(p, size, MS_SYNC)) { + perror("msync()"); + munmap(p, size); + close(fd); + exit(EXIT_FAILURE); + } + munmap(p, size); + close(fd); success("OK"); printf("Opening %s read only for collapse...", finfo.path); -- 2.54.0