From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 268F8C77B7C for ; Wed, 25 Jun 2025 17:49:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AF43E6B00CE; Wed, 25 Jun 2025 13:49:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AA3B06B00CF; Wed, 25 Jun 2025 13:49:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 96CA16B00D0; Wed, 25 Jun 2025 13:49:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 835EF6B00CE for ; Wed, 25 Jun 2025 13:49:47 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 43BF8121B40 for ; Wed, 25 Jun 2025 17:49:47 +0000 (UTC) X-FDA: 83594660814.18.011D531 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf30.hostedemail.com (Postfix) with ESMTP id 6005180010 for ; Wed, 25 Jun 2025 17:49:45 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jCuvJKm1; spf=pass (imf30.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750873785; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=R7ELidRxv5KKmB1tooy+w2E0Xw3mvApCUwofU9YBKSg=; b=bYIsar/iDiC2Kerv1GLoWe7ReXuhPO7LYCMsXLoFuqYYa467Nd0OpJvSrJbx7wnAJyYKcD W+5jQB+f8Zlmh6H9Tm9dtPsqLw8FVqsYUyXc9TdLJ6hevHwVP+DaTfZOJfmEnJ7LdvdxbH z3QdiNdbJxB8Tn5qHsOr/+1Xr76yH08= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jCuvJKm1; spf=pass (imf30.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750873785; a=rsa-sha256; cv=none; b=Vj1b5CpCO7YBQU69D55O6GKfNoOEaOxrnvS2xp9qwCBnNAtv8h3sB5jjfw+0u3DNXQru0c bR5tuNxSwoS9rLZDArBBd2WZp98nQjB/EVeyRoKkKxmFz83OOqOUGtfrPvDzoBXgOelJn0 rRLjZPj0LVmyjXILm8e3sSkbi2igfpQ= Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-747c2cc3419so216879b3a.2 for ; Wed, 25 Jun 2025 10:49:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750873784; x=1751478584; darn=kvack.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=R7ELidRxv5KKmB1tooy+w2E0Xw3mvApCUwofU9YBKSg=; b=jCuvJKm1s39KSgsPYtcKOiN6gahUogOLpIuUx6xcTibmudyJD+rd2Panckg3T7KQsz vbzZh/8ZRLnXFIO2ZJ6wr+EOfsdIU36c0aaYJAfHthuzUSJixOTvve+trbgH4xaDJ/jo fZ11TKJsPEWNHmgJHJS3Fd5xjnPxamtKoEEBBf25H5q2yecFOVmtMoYi4UEq2vIM7olO f83EJr3goI++OFbHPPpDQR5gi4xQyKXz+xXkRKKcrPtGh1wzEDaCrY+YuQXNWqcSIt8A WcZetlLac33+p014beFxzpT0Yls1w8Jy0IkotN/soE+84dSzTY8hinMSIfTk+Wrs3lI4 mY6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750873784; x=1751478584; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R7ELidRxv5KKmB1tooy+w2E0Xw3mvApCUwofU9YBKSg=; b=GqWLIknhNT3seL+DP10OR4AbH/uDASU7BBTnnhaYeLNm0qK5IP/X1L0BusPbzoJm7L l+BgZRhhME/caOZnE+p7pgHbQYFQnS5F8K0qumDdEI+0VWzJEPmPKIikIrEd2s1UM25C +t5nGaJhib7Y3gtdUOOSB3JfidLSAdqrHNRoblbaS6X/lUg+5pezZGmwq8HmdPIOKpAl nQopDx7/ZqeG1wt+P6jf9bRs2HSLmUEL+9QCxyhW5M6MMgqgtowSDeCOizd7MYWp/QrU DWagIG0eoD2oEjIz/kcC3kc4DnjYnHhSX/10UMaCkPylHOXO363fDf9gnkO8Tqsn5rXo HUmQ== X-Gm-Message-State: AOJu0Yzjj3bsyrXqUj3Tj7cfLYg6T4gr1jr+Mp8cpOBehyHIU8qP0D64 V2W5jMHa6cRKzacyseIFLuVcOHw6imKI2uVaq0mfbAo951gJQ1tY3weHcNfPzGJO X-Gm-Gg: ASbGnctKgCq3k+7W4NcrpysYs61evb6Oze/zPpXlttgHzFpXyQPl53WnKaDXfm39kRH tLWa1T8slogkjPGMU72YkvaK1d9PdnJpGbY1go8Ng6QRzuQJZf28HOQeke0ehYqjih7LvpzTna7 9zl7+Jjo6ID6xJd2eTWO5MV/9LtQwC8IFJklq6zC3s8UndMUQbTjLqVxGMJvaoQhxEIsy1Qa5V0 J6cDK09OnT7dJoYPXvsXc3EAO24FFushclcjmPvqPt+hQzMXf1+bOKWjxDnFfMDk9083kQYrs2V paBQqe0WR8nBtk41KtfJj1QNC6m3jDU2Y60e6VFcZzTrlj7MNiioy7TxVhAJUlZR+cp5W8Ftqne WT4lyiCA+fcp1ryGVii+NxnKJePm4qy0= X-Google-Smtp-Source: AGHT+IFB2gKiuXE84YJDoX3zi/YmAkg3LM7lCafc1Ca+BpzzyJ0vb7ym6lhK+vu+NVwaXRCaonnGpQ== X-Received: by 2002:a05:6a00:2e1a:b0:736:50d1:fc84 with SMTP id d2e1a72fcca58-74ad45bf9cbmr5346890b3a.21.1750873783759; Wed, 25 Jun 2025 10:49:43 -0700 (PDT) Received: from fedora.. (c-67-164-59-41.hsd1.ca.comcast.net. [67.164.59.41]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-749b5e23879sm4944869b3a.57.2025.06.25.10.49.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Jun 2025 10:49:43 -0700 (PDT) From: "Vishal Moola (Oracle)" To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, "Matthew Wilcox (Oracle)" , David Hildenbrand , Jordan Rome , Andrew Morton , "Vishal Moola (Oracle)" Subject: [RFC PATCH 2/3] mm/memory.c: convert __access_remote_vm() to folios Date: Wed, 25 Jun 2025 10:48:40 -0700 Message-ID: <20250625174841.1094510-3-vishal.moola@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250625174841.1094510-1-vishal.moola@gmail.com> References: <20250625174841.1094510-1-vishal.moola@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6005180010 X-Stat-Signature: bo3hjk7pj79u61odmuun3xp99qgpgqnm X-HE-Tag: 1750873785-263561 X-HE-Meta: U2FsdGVkX199YmvaulgEktF8HhNwKtc7dU2C3//k5G/IsYAbSy8iMtGrsuRraaO6oMUEMEz5jyyuqQ6+YAGtmbNTaHzhIPp92b7YXF7AnVMsbMJlTvwcrZMM2dUAY0M9pX79ZQ5vhMDxctXzIBFCqIZpITGuV+axBefwYNVXEi9mYgAbpWq9dUsG4PUVME3Jb4J5vWsGmZCJG7+AvgqNDnT97jCw4pBilIjs4BwVMiuNbmCVtVT5XNE9R4d40pfyJCsFRYJ8FQItH2Z5b0N9ymXaHvo/yTF2rq3bCR8941gW09yd/Kiwjs1/hFGv7KOLXOmz0XJ3CadpEWbKpH14TWi4H5jfBvYGxWfIyeWPT/ieDdS+GRWVFMb4VUsp3H6DR/mQ8xGvtkiD0sCFIKD7YaiTlpcuJTqI/o70P2S6fvS222sdEMmKTZdr3QzA3AiuhllxelTbbq5e+EgGtz8LgYECGvC0IimR2vBqmzMk6IUhf/8VZ/U7+b/82yfkSyM04vE72IW2u0VMYaZ/ZqjDI7vbDt5j5MPHzbLOXirnJxg60hoxqXfAriRo5NfD1s3CpZm1CJgLdlJzr8aCfMhIyAO8ZntblDH5JtVLlRLOR6HAjhyH2p6fSc5m7dL1y0SKvg3MiSZ007LL0FliHJO64H5ALJW/MqnuR6wrsZ8pK1+/MvR2lZi1lJdQXgi2qMgmp644XSjJhRRrXEQ6LUHeUq+Z5Q7s+CgDFnEPwm+ghzK2rGrcMwebkTyXh4ZHzM5Gm2mVKuo6N31YwGs0N1M3QFeh60vzm/6xFVyj/ocm3XjNnFHR6E5tgpOiM+cEPxIlLO6XEVQPNDuu2S6d7WoPgaMDEtguTD16ZX0CJXQarPVY7AIsM3qtDzYkR9DK9Uf4IR/71Hm/qpvXANEaNyR9r9Id0YGb9e6NEHaGGPPkkPWj0XaF2MCelHpZ3QQDvJm/dtJVtvK+el5L1qLSsXg VHym1zNx MN7fEDYQSJ3k0RzOaVTVfxhUEdOiLTH4dA+Fe7js5JUpizr8t0QjYhZntRIbtJux2WQobxFspCVa99imRW3kFwgDpcHfjOvgjQTYlkAWpvZaPBkjjP5U8ez8Ty1zbBStEBGUZqEVHhiLtncpTK1Biuvu2lrO0QGRbzlVwG/CfEMHr9nJxFz68fQUwWx04FFjn6SexgiUFF6+Pc0bEUjmfot3w1r4FuEHVBdEmS21E/gEwQWR5yl0DTBOrwDcAYCZWE+GllZ+DOtAvxQD6J/7rmhvZ9vLZF0A2+zEPS4W6CivhIqYmstNskU91Iy3HXFID1WZoWCziu7lvzY/64n9ASya0uclYngyobuGg5wiVKwLDbtETi8GMJgKS0Bnqq09/EbRd6rMzjIH146GGPtV4mugyQ9K8YOgB3Q1sGhLZbyMwVrYeJAM3AMLw4L4v/jxzKa4RSefFwY52j4QAXyv584RF743Cfi8DXryQYxhowexk9I+VKWq7kRP1A7zxPlx4laaVmqSNGGsmznNLFf2B9g+2tAPO7+fH5JDA0h6uHXXC04sdXupI96zo66knU8ChVvZLHs46hgXbFQ732mSt31qiGZhQW0r3XInU7/7/yFvwFLutKLuwmSDEEDI2KGrzfcH2 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Use kmap_local_folio() instead of kmap_local_page(). Replaces 2 calls to compound_head() with one. This prepares us for the removal of unmap_and_put_page(), and helps prepare for the eventual gup folio conversions since this function now supports individual subpages from large folios. Signed-off-by: Vishal Moola (Oracle) --- mm/memory.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 747866060658..5eeca95b9c61 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -6696,8 +6696,9 @@ static int __access_remote_vm(struct mm_struct *mm, unsigned long addr, /* ignore errors, just check how much was successfully transferred */ while (len) { - int bytes, offset; + int bytes, folio_offset; void *maddr; + struct folio *folio; struct vm_area_struct *vma = NULL; struct page *page = get_user_page_vma_remote(mm, addr, gup_flags, &vma); @@ -6729,21 +6730,25 @@ static int __access_remote_vm(struct mm_struct *mm, unsigned long addr, if (bytes <= 0) break; } else { + folio = page_folio(page); bytes = len; - offset = addr & (PAGE_SIZE-1); - if (bytes > PAGE_SIZE-offset) - bytes = PAGE_SIZE-offset; + folio_offset = offset_in_folio(folio, addr); + + if (bytes > PAGE_SIZE - offset_in_page(folio_offset)) + bytes = PAGE_SIZE - offset_in_page(folio_offset); - maddr = kmap_local_page(page); + maddr = kmap_local_folio(folio, folio_offset); if (write) { - copy_to_user_page(vma, page, addr, - maddr + offset, buf, bytes); - set_page_dirty_lock(page); + copy_to_user_page(vma, + folio_page(folio, folio_offset / PAGE_SIZE), + addr, maddr, buf, bytes); + folio_mark_dirty_lock(folio); } else { - copy_from_user_page(vma, page, addr, - buf, maddr + offset, bytes); + copy_from_user_page(vma, + folio_page(folio, folio_offset / PAGE_SIZE), + addr, buf, maddr, bytes); } - unmap_and_put_page(page, maddr); + folio_release_kmap(folio, maddr); } len -= bytes; buf += bytes; -- 2.49.0