From patchwork Thu Mar 28 22:58:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13609725 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 3C7DFCD11DF for ; Thu, 28 Mar 2024 22:58:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4881A6B0082; Thu, 28 Mar 2024 18:58:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 435BA6B0085; Thu, 28 Mar 2024 18:58:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2D67E6B0087; Thu, 28 Mar 2024 18:58:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 1242A6B0082 for ; Thu, 28 Mar 2024 18:58:41 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 944D2121039 for ; Thu, 28 Mar 2024 22:58:40 +0000 (UTC) X-FDA: 81947964000.11.F5B82DC Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf14.hostedemail.com (Postfix) with ESMTP id B2EF410000B for ; Thu, 28 Mar 2024 22:58:38 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="Ns/P3EQT"; spf=none (imf14.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711666719; 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=ldZ17F3Adq/6bP/s+Hr86QyI0PsgoP/z7Yss7kselIU=; b=tG/6M0j6uYCAfM80RrgGKLiUcZhINufyCWgLCF5BOPEtc4ndfszWNYIW6Mv3h3aeI+jvHa UIrY1Fcx0N2NOdNiBryuJUfEEks/WBtwNnsRK+Iz8TWFPHcgQA4Q4xcz/wA21MwqhExQ7A DHtuNlsPo13L/1Db/KAmYxlAgv38/4Y= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711666719; a=rsa-sha256; cv=none; b=5M7ARJlaMpxdM0i345GNZb/Lzq/P5BfgKrc3+E8j9gv8DaJpJ8J5GgA9B76Lr37si7isni 7d6z6mMcHES2ghOQI15Gu71PACMxTak1II1St7yGd3pTtWh3BhelqOF/6bP6Fqerfqth0G W/eATfnVV4Q9CGocw7N82I2V60x6Rzw= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="Ns/P3EQT"; spf=none (imf14.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=ldZ17F3Adq/6bP/s+Hr86QyI0PsgoP/z7Yss7kselIU=; b=Ns/P3EQT3Ej42nCXHhX+aXMKTV 3qFcIUpVmynFcPeFzMT+F1GvFwvrb3KnZ913+kLJ7B0xj3UX09PT6ZgG8w/8NSyLpg3T+jmK0P9lw BNAtNvCBkUBz5u1z6J45Qf0xrcuH6v/HwokiieRQdQduPAOwaVl+LmxwiTbP4sL/6aQgHlt9TlHWL y1nhuZ0083cO+0Nkn16H02IqIdzZDwtF2/gMyyVseUQr7lgZEqo3tmpAXctqcm9hu628qom7ne/AA HbFI/E1csvdj3vpe4WZWVeOPDYPHSxkZspuP31fKR/R3ybyn+ibLUIMYphDTp7bMDaN809pTNYwed Mg3kNqzA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpyhd-00000007PFS-2vJY; Thu, 28 Mar 2024 22:58:33 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH 1/3] mm: Correct page_mapped_in_vma() for large folios Date: Thu, 28 Mar 2024 22:58:27 +0000 Message-ID: <20240328225831.1765286-2-willy@infradead.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240328225831.1765286-1-willy@infradead.org> References: <20240328225831.1765286-1-willy@infradead.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: B2EF410000B X-Rspam-User: X-Stat-Signature: gf79bnxx39kswok856q1cd6r9d97eag4 X-Rspamd-Server: rspam03 X-HE-Tag: 1711666718-967484 X-HE-Meta: U2FsdGVkX1+389kPqqiPrhQc3qFn7DLGeXW/pHD4GyNk9gdSsq7oYpM/h+o57WshrAqrRhIusaiWYQ4UUjtMNgQ2HHBdCGWBuLBVmW+9WgnD2f1Bp5s05UioHIAyeEBQvSjEEo4tAExH/aedrPtW3DnyppQ3R7kCmDpTTtIvkaSjzSukkOQkXTtpO7OFhES80oyJ6sGTI2fOT5j5sDxIM06kVLbQAB36AjJ/CZbMz51bAu9tOSkRThzyZ8vd1N05AvwnLoSrU6gZ6eu7bOEJ9gcRGD4wzzAHbuQSkwQI99uySJ+gmeCl8ZV42SH9ZMAv7mtWZPFGu2iNnCUIJXymHtKe1HNJShSkqKe/C0ecNCAp9n/rK5WpFOAejskV8PODNqfjok7XtMRbj1ltabl14f+oX/0/C0d1/Di9dN397aqOszWGSnctlK8dlKkl3xyQ3jE2Lm45tdNZPl3cteJrcZoDRdqoYcW+6n4XUTkF5RqDi5oJAzOc5uhOFXvW4UI/SScGtQT6PUizrdM0soKGJWb2F/g1YhMnSSVGMA5AVbUSXUIX0QJPeCONDqGbIidkSfCJJsDSWzoWQpNsAhDWtkCoPDi/OS0MFaTAj73dwmMTExHavvksTZknEVSTBrQy9vAgCA74LMZ2J72VxfWc+DnKhAihyZHauClykygecueNSz6EOW3KoYWIdEBqwaC0L0se8dazmubqWj+BmSKGMT6dZUenkjb+5HnBR6KVUGUD3y7jvIAGR5iSgnPyw/llQSwh9WIfbFsDBScHCGmkPsU/MaBmM0A1NYIYp60PPkXyNw/HHWL9tLwiFP8m0M70wFU2ZChibVynLuDFgv5BYDhsButJLsuSOQ41n5N4eSMMMqDv0KDPZAgf6N623RMbpmrSg472zhAfzkL1gGViUcDwJRM7jrbq 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: If 'page' is the first page of a large folio then vma_address() will scan for any page in the entire folio. This can lead to page_mapped_in_vma() returning true if some of the tail pages are mapped and the head page is not. This could lead to memory failure choosing to kill a task unnecessarily. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: David Hildenbrand --- mm/page_vma_mapped.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c index 74d2de15fb5e..ac48d6284bad 100644 --- a/mm/page_vma_mapped.c +++ b/mm/page_vma_mapped.c @@ -325,6 +325,8 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw) */ int page_mapped_in_vma(struct page *page, struct vm_area_struct *vma) { + struct folio *folio = page_folio(page); + pgoff_t pgoff = folio->index + folio_page_idx(folio, page); struct page_vma_mapped_walk pvmw = { .pfn = page_to_pfn(page), .nr_pages = 1, @@ -332,7 +334,7 @@ int page_mapped_in_vma(struct page *page, struct vm_area_struct *vma) .flags = PVMW_SYNC, }; - pvmw.address = vma_address(page, vma); + pvmw.address = vma_pgoff_address(pgoff, 1, vma); if (pvmw.address == -EFAULT) return 0; if (!page_vma_mapped_walk(&pvmw)) From patchwork Thu Mar 28 22:58:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13609727 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 13D5FCD11DF for ; Thu, 28 Mar 2024 22:58:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 437786B0087; Thu, 28 Mar 2024 18:58:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E7916B0088; Thu, 28 Mar 2024 18:58:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B1866B0089; Thu, 28 Mar 2024 18:58:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0E4CD6B0087 for ; Thu, 28 Mar 2024 18:58:47 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B685A12103B for ; Thu, 28 Mar 2024 22:58:46 +0000 (UTC) X-FDA: 81947964252.26.210AD94 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf29.hostedemail.com (Postfix) with ESMTP id 276C312000B for ; Thu, 28 Mar 2024 22:58:44 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="jdDSs/hz"; spf=none (imf29.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711666725; 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=ieduGj/M1Dn1/rUPQVc/wVFmakvjaD+ZGlY2ZfmDEW8=; b=8dHe4EMjhmiaLqZAFF/t6vCcLSZEFhM0pXbpnob43RNH0JCHrgB1+dc3pEb0dn9hzbmZ0l j7HcBUlvSqmWEx6+wG3tpwfc8FTyhvnLOVWOwiUWlUpR01KNQbTq6WIRQvfHhZ7Ul+PpZT XtP8rggFYZW01+5VwxEQeU7ka01j7q8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711666725; a=rsa-sha256; cv=none; b=NGkNf4kuT3POV207urVC1wmWutLQdpRoBjDgBcgV+4TfrA1/o5BbIvPdp82rZ1fbMTLllj YWHkQYn/BJ8ORrap5GHYtVZO1cMEagBVFBzgogmBILKdJUxK5fLlnObJgcaYgAd46PXf5P GmTesLzYN1d0j9xTwFD4FkfGzUjNQWw= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="jdDSs/hz"; spf=none (imf29.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=ieduGj/M1Dn1/rUPQVc/wVFmakvjaD+ZGlY2ZfmDEW8=; b=jdDSs/hzFgxKSGv+KT0BHI7OQz fbILRKYXtrRVSVxzZedwcesrrM+2dM0tPonIlQRN0tXT8fJupagssToy06xpG/paSmzDvOFDOZRHQ 6diYGXRWeCsWgPr5ZY7ePTvFi+r/MR49Ma8HwtVIebSH13QYT2Xsp8n2LYC8zE1+G1uOrUfSgkCZ+ MHupNjCGJCvgZWuMec/DiggdyuYFSBivLVjO1l6kDM/4PT2j8/tOZLBu6YGKPhWr3CcbViYI1KDjs kgExOBjDN6yoLN1eBkNBrHodzxacN6D/MEAb5MAsOegiW50Qe/7WK9jr2FKTtkjPNIitAyqedXw+5 Pu98lZgg==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpyhd-00000007PFU-3HEm; Thu, 28 Mar 2024 22:58:33 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH 2/3] mm: Remove vma_address() Date: Thu, 28 Mar 2024 22:58:28 +0000 Message-ID: <20240328225831.1765286-3-willy@infradead.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240328225831.1765286-1-willy@infradead.org> References: <20240328225831.1765286-1-willy@infradead.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: 276C312000B X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: rmdt7gmd35usbsbcha6pxfwp7ptpgtyq X-HE-Tag: 1711666724-504820 X-HE-Meta: U2FsdGVkX1/SyRlrc0jEhHQ7It8J93hQk1GSp8AfIsTPM2fcXR+n1l1cEWNtoxhraI6e8Jm93ZuIsBrvTI9udDj01H5En4Jz89OZ7jKIEQNEQMUe0BUFRSupZSG9k9US6XyTILbhkUZAb9WWI62eNCtXCLwtI4a8A0E+NN2Ny9gcpft+r1fxOsZ4JJjGoBjYDjWcDIiGxIxP2JzhKquHA8IUOyPblX+EdGyS3b/tSRyDlwFOqxWkNx+LNbiINSogjHxcWh9XZyCQOQ3jBrAHzKOd7koPdGluVApGe3vb7BTcXLQZO6fgE199yDeXJSH5rkdcUtCRFvh1VMAK8xYS/KTSd5T9eWhxNekHn07IKN6IW+5OgJEzJNeiHVpg3OlDOJOUT18vBnUKEdXtXh5ttZzANIiI2JcVaF7udD/g/qoF2d5IfzFRfCTPwxaKxenvvryxK+QAa/3JJuhIVKmosVBWJQ7LTLWshkakTtWjPDaHeozRD8MZPugxrNxAhfhEUhL7ivzrmmsKQp+D++P6IDCWufIqUAguiJcEYfQv36ZNb08SkTF/3GVbj3xhHQsRJdpKEFQqYDw/5gcsOg8g288BhrsoRS7rw6W9KROnwYxjPy4RlKJ7wLvw8elFVfA4yGUL0NDg685UCxC9eFo/PVT8u63e1n8xWyWMr6F+DEum9qP0TZkifhZakqW793VVcRIpUDuvOwS9XtU7O0W4ZgRfFHrW9mzn6cCf15iFxIOdnM0xIPJLQryhDLRdQ4pjhi9i3jvE912aW7m44Ol9mE/Ah1GvEmYbv2yUXSpIKTEx4uhnsigd0O5ga1bhcHDX8sDme69OKkg2k2QRCyTiTAvhj7l8khxGkF5zpOxqNVhRQl6SWW5dkR9Kjgv7ekcNmZMtKTGp/22vCYI6vUhdM8UVUscPLEYzCfNkzcFSIZ/Ombudzzju204uAjO3RH9DGGTu9Zp8GkdSQCSMF5A XgjV7oi/ 0c5M1soEjV3SJyprRxxoM3yCrGQxymEoKZceaVz5xj73bW93y8ReGy+RTes48u68iSokC8AhNblWdGUk6hEGuD8LZ4bQtibZ0QwJci9IoG3UPLbWGy7BTIv+Omqbzmk/ucXnlJas982vkj/Csab8AC7O8QxzELwljpjlYes97hrHXjc8Mx+e2r0OlTTplcaW7DP7BbGBWqiMNizI0IL3V5KyJcTqISk20Cb4z 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: Convert the three remaining callers to call vma_pgoff_address() directly. This removes an ambiguity where we'd check just one page if passed a tail page and all N pages if passed a head page. Also add better kernel-doc for vma_pgoff_address(). Signed-off-by: Matthew Wilcox (Oracle) --- mm/internal.h | 23 ++++++++--------------- mm/rmap.c | 12 +++++++++--- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 8e11f7b2da21..e312cb9f7368 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -803,9 +803,14 @@ void mlock_drain_remote(int cpu); extern pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma); -/* - * Return the start of user virtual address at the specific offset within - * a vma. +/** + * vma_pgoff_address - Find the virtual address a page range is mapped at + * @pgoff: The page offset within its object. + * @nr_pages: The number of pages to consider. + * @vma: The vma which maps this object. + * + * If any page in this range is mapped by this VMA, return the first address + * where any of these pages appear. Otherwise, return -EFAULT. */ static inline unsigned long vma_pgoff_address(pgoff_t pgoff, unsigned long nr_pages, @@ -828,18 +833,6 @@ vma_pgoff_address(pgoff_t pgoff, unsigned long nr_pages, return address; } -/* - * Return the start of user virtual address of a page within a vma. - * Returns -EFAULT if all of the page is outside the range of vma. - * If page is a compound head, the entire compound page is considered. - */ -static inline unsigned long -vma_address(struct page *page, struct vm_area_struct *vma) -{ - VM_BUG_ON_PAGE(PageKsm(page), page); /* KSM page->index unusable */ - return vma_pgoff_address(page_to_pgoff(page), compound_nr(page), vma); -} - /* * Then at what user virtual address will none of the range be found in vma? * Assumes that vma_address() already returned a good starting address. diff --git a/mm/rmap.c b/mm/rmap.c index 5ee9e338d09b..4b08b1a06688 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -775,6 +775,8 @@ static bool should_defer_flush(struct mm_struct *mm, enum ttu_flags flags) unsigned long page_address_in_vma(struct page *page, struct vm_area_struct *vma) { struct folio *folio = page_folio(page); + pgoff_t pgoff; + if (folio_test_anon(folio)) { struct anon_vma *page__anon_vma = folio_anon_vma(folio); /* @@ -790,7 +792,9 @@ unsigned long page_address_in_vma(struct page *page, struct vm_area_struct *vma) return -EFAULT; } - return vma_address(page, vma); + /* The !page__anon_vma above handles KSM folios */ + pgoff = folio->index + folio_page_idx(folio, page); + return vma_pgoff_address(pgoff, 1, vma); } /* @@ -2588,7 +2592,8 @@ static void rmap_walk_anon(struct folio *folio, anon_vma_interval_tree_foreach(avc, &anon_vma->rb_root, pgoff_start, pgoff_end) { struct vm_area_struct *vma = avc->vma; - unsigned long address = vma_address(&folio->page, vma); + unsigned long address = vma_pgoff_address(pgoff_start, + folio_nr_pages(folio), vma); VM_BUG_ON_VMA(address == -EFAULT, vma); cond_resched(); @@ -2649,7 +2654,8 @@ static void rmap_walk_file(struct folio *folio, lookup: vma_interval_tree_foreach(vma, &mapping->i_mmap, pgoff_start, pgoff_end) { - unsigned long address = vma_address(&folio->page, vma); + unsigned long address = vma_pgoff_address(pgoff_start, + folio_nr_pages(folio), vma); VM_BUG_ON_VMA(address == -EFAULT, vma); cond_resched(); From patchwork Thu Mar 28 22:58:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13609726 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 80F3ACD11DD for ; Thu, 28 Mar 2024 22:58:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 08E196B0085; Thu, 28 Mar 2024 18:58:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 03E876B0087; Thu, 28 Mar 2024 18:58:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E21AE6B0088; Thu, 28 Mar 2024 18:58:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C75B96B0085 for ; Thu, 28 Mar 2024 18:58:45 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 5AAC51C1220 for ; Thu, 28 Mar 2024 22:58:45 +0000 (UTC) X-FDA: 81947964210.25.B4A0A7D Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf23.hostedemail.com (Postfix) with ESMTP id 9ED5614001E for ; Thu, 28 Mar 2024 22:58:43 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="M9B/HFIu"; dmarc=none; spf=none (imf23.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711666723; 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=Vu5CwXDNBuOWiSxR3N5sLbOyG+5OrNL0WRTk+klYQDI=; b=fT6ldXtfmawieNeWjRMF2OQjRtRVabZHFXuG1WHe53UkEvjX6xOWNXjus5l5QyYevZdsGT kYtywlmqz/h8b5PCirf9QuGuTxJ7d4oYvrw/njtHtlP/NGR2phPRP9mVJJdV6l3aT4419g eezAnX0jXQ5oRVOG62hq3Y+Dk4583pA= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="M9B/HFIu"; dmarc=none; spf=none (imf23.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711666723; a=rsa-sha256; cv=none; b=hOtFvAs+4Uq2NcnS8nX0a9OGpTNAo1CFQdLEcvK9tMhLubKusmgUgJX5fsPHts50pNgx81 QlJgQazXeZvpU7uMHKcOAzsLxA0BPS0NzA/dulfI9e+8WSokwrzbMIjHDs+CLnxFRDLlMj oYpuYdBHhvrP2W+kiTEtvHdTxjRbQeA= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=Vu5CwXDNBuOWiSxR3N5sLbOyG+5OrNL0WRTk+klYQDI=; b=M9B/HFIui6M92XML4VuZ8lLv/9 f9ZKuNk1EdMCmzkkVJEhdi/DRBIAxR1cz8T/WyyYPb5XFM/LfUOqnQkxL+nsRBei4C5w2SkoI4udu LwP6IQlmBlnr4oHLFuBxfUnbq62bFdIU/OmeGYZ1WsWW9WrnO3+iBhfE1bqgX8V0cIBGA1G0eyJ1u llUKBAKpFfFzyo0hC9D7VnXP5e6cMVZtwhwn/UHnb2jK0fwRazQG+zoVnsWNZang9aF73K+BSelex 2AnuErS2i2fxke2teakcmL3XEgdQ3Pfkt+WtE6mQoNvONnO2HKAa/5iJuqADORka3e17Kgubx+2qu K3PQIn+Q==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpyhd-00000007PFW-3f9B; Thu, 28 Mar 2024 22:58:33 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH 3/3] mm: Rename vma_pgoff_address back to vma_address Date: Thu, 28 Mar 2024 22:58:29 +0000 Message-ID: <20240328225831.1765286-4-willy@infradead.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240328225831.1765286-1-willy@infradead.org> References: <20240328225831.1765286-1-willy@infradead.org> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: byttuirfnc6fkj6owa85w83ayjstt9ag X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 9ED5614001E X-HE-Tag: 1711666723-721704 X-HE-Meta: U2FsdGVkX19ztZjgzNOTOmbRp7Olo9p3497jjGtLoS/7MvE7vEhuAehKH32cIV8BsnG19eulpFNjQPorVEU+bC3FB5GAh528uhdj4jQkUEkN60X1lbjpAuRRNKQ9vjel/++wVCHagu0B47ummJn2if0NRglwpBXPGqdgESF2Tho4CbWGzgsXpsBpoewBhiNDrhxwhrUVLserKiVPpQJoH0yJaJkPZLYDo2/P22/0MyCI+ukMeJZyVh0buXxD+8ZdgPv47f6MXHixVsDCqdhxjtauY6pgJXiVRkzglBm+J6jptU70D8GnAa/Gx4aYJ7gS8C1/y57LJTtbqvst8L/unhrj0n+zot26RdsC1qVQzsZ1nACAcUQ+pR2HdwMJfrNf4N43DNX9HvG/0f6xPCbnVHQZQihD+IpKfIJWCNk5Qmt7XMKva64VIC5V7GgN4RM11DTeMOprIhdL0K9eemYFIyNNUxPfOfoLmVQ4mxcO7y7Xl1TtX2HfiRMO7/JlhVJoaa4RumoQNX03n8GzsCxiKZY/vawhOKrIBDLkFhXWbvzLxNvz7BUnZnNXgYBNvrg689gbOAei+4N8P80RVktQCEXOBSxvGS2U7IIuprC+tCGbAlXvaw6v1tyDK3iUoNHkdVpOE1QlApzvQ17nbqNJjGxV4j9EAqQOSW0MCgf6GAiF6XmtiJ3u+7Zs1rojy6XvJ+VyOzEAcmIJLugAmVWCYNyKuto2hC/xSb+dcqrwbVk8ZZv3iYP6OrbUG/7MPr85fUFVO0E78Qi35ffewJkMzfYUkOm8+TariOTXcGc8LfkzU2DTDlQ2FFSVtUK3eLIKYA7vcjN9NoUsGCmVMkUw5RbdkEzMI8w/STJNKwd1MtJA3yQq6QXxSBbOJfsAxf7IQhDSG7ROerABsAA2xfgKn19Y30WFfZgZES2aWkGLbkl3ek2u/FXSuVfvY2UTykoOBlARnNnjt5lrimikmw3 5psMD/E/ fVmccYL4BKV2gZi/saJ+gts+scFajr4b5MixZkkSiUGovmoTrksDVGNizpk2e2mdIokdm+45PCYWiFVZxdbG98rsDtLB7cx/GLmrDMUYIFAVinhAYd1G/NoiYTuse7H4gfyWmFc7/ZI2AvgqPuzOQjMvxApCZhMlMkNePEMHSqq6+VCr1RUC6DyqXIfi5sItB0yrb71yltoLtcL8Mi0h+f/Swr953EJ/AZetu 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: With all callers converted, we can use the nice shorter name. Take this opportunity to reorder the arguments to the logical order (larger object first). Signed-off-by: Matthew Wilcox (Oracle) --- mm/internal.h | 9 ++++----- mm/memory-failure.c | 2 +- mm/page_vma_mapped.c | 2 +- mm/rmap.c | 12 ++++++------ 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index e312cb9f7368..19e6ddbe7134 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -804,17 +804,16 @@ void mlock_drain_remote(int cpu); extern pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma); /** - * vma_pgoff_address - Find the virtual address a page range is mapped at + * vma_address - Find the virtual address a page range is mapped at + * @vma: The vma which maps this object. * @pgoff: The page offset within its object. * @nr_pages: The number of pages to consider. - * @vma: The vma which maps this object. * * If any page in this range is mapped by this VMA, return the first address * where any of these pages appear. Otherwise, return -EFAULT. */ -static inline unsigned long -vma_pgoff_address(pgoff_t pgoff, unsigned long nr_pages, - struct vm_area_struct *vma) +static inline unsigned long vma_address(struct vm_area_struct *vma, + pgoff_t pgoff, unsigned long nr_pages) { unsigned long address; diff --git a/mm/memory-failure.c b/mm/memory-failure.c index bdeeb4d2b584..07d40d40ec96 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -443,7 +443,7 @@ static void __add_to_kill(struct task_struct *tsk, struct page *p, tk->addr = ksm_addr ? ksm_addr : page_address_in_vma(p, vma); if (is_zone_device_page(p)) { if (fsdax_pgoff != FSDAX_INVALID_PGOFF) - tk->addr = vma_pgoff_address(fsdax_pgoff, 1, vma); + tk->addr = vma_address(vma, fsdax_pgoff, 1); tk->size_shift = dev_pagemap_mapping_shift(vma, tk->addr); } else tk->size_shift = page_shift(compound_head(p)); diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c index ac48d6284bad..53b8868ede61 100644 --- a/mm/page_vma_mapped.c +++ b/mm/page_vma_mapped.c @@ -334,7 +334,7 @@ int page_mapped_in_vma(struct page *page, struct vm_area_struct *vma) .flags = PVMW_SYNC, }; - pvmw.address = vma_pgoff_address(pgoff, 1, vma); + pvmw.address = vma_address(vma, pgoff, 1); if (pvmw.address == -EFAULT) return 0; if (!page_vma_mapped_walk(&pvmw)) diff --git a/mm/rmap.c b/mm/rmap.c index 4b08b1a06688..56b313aa2ebf 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -794,7 +794,7 @@ unsigned long page_address_in_vma(struct page *page, struct vm_area_struct *vma) /* The !page__anon_vma above handles KSM folios */ pgoff = folio->index + folio_page_idx(folio, page); - return vma_pgoff_address(pgoff, 1, vma); + return vma_address(vma, pgoff, 1); } /* @@ -1132,7 +1132,7 @@ int pfn_mkclean_range(unsigned long pfn, unsigned long nr_pages, pgoff_t pgoff, if (invalid_mkclean_vma(vma, NULL)) return 0; - pvmw.address = vma_pgoff_address(pgoff, nr_pages, vma); + pvmw.address = vma_address(vma, pgoff, nr_pages); VM_BUG_ON_VMA(pvmw.address == -EFAULT, vma); return page_vma_mkclean_one(&pvmw); @@ -2592,8 +2592,8 @@ static void rmap_walk_anon(struct folio *folio, anon_vma_interval_tree_foreach(avc, &anon_vma->rb_root, pgoff_start, pgoff_end) { struct vm_area_struct *vma = avc->vma; - unsigned long address = vma_pgoff_address(pgoff_start, - folio_nr_pages(folio), vma); + unsigned long address = vma_address(vma, pgoff_start, + folio_nr_pages(folio)); VM_BUG_ON_VMA(address == -EFAULT, vma); cond_resched(); @@ -2654,8 +2654,8 @@ static void rmap_walk_file(struct folio *folio, lookup: vma_interval_tree_foreach(vma, &mapping->i_mmap, pgoff_start, pgoff_end) { - unsigned long address = vma_pgoff_address(pgoff_start, - folio_nr_pages(folio), vma); + unsigned long address = vma_address(vma, pgoff_start, + folio_nr_pages(folio)); VM_BUG_ON_VMA(address == -EFAULT, vma); cond_resched();