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 94B4AC369D5 for ; Mon, 28 Apr 2025 17:18:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AAAE16B00A6; Mon, 28 Apr 2025 13:18:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A34CD6B00A8; Mon, 28 Apr 2025 13:18:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 885F76B00A9; Mon, 28 Apr 2025 13:18:24 -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 5EE576B00A6 for ; Mon, 28 Apr 2025 13:18:24 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7BBD0160E8E for ; Mon, 28 Apr 2025 17:18:24 +0000 (UTC) X-FDA: 83384111328.09.5364C03 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by imf23.hostedemail.com (Postfix) with ESMTP id 94991140008 for ; Mon, 28 Apr 2025 17:18:22 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fPODrM4f; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.219.51 as permitted sender) smtp.mailfrom=nifan.cxl@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745860702; a=rsa-sha256; cv=none; b=1I7JJbKghdAH18itK9TaEQcYhdo9mZLR2sJYbssJDRuBHet27pEZjmb9APfoATO1/3K1qZ QOfrnLmyZoBRFJLIyV/9iIh2+39byA6u9TZeOspeaywXdzddZB/kQc7N+AbMsUQKTsWGxK +y3f8L3kNhkF8ny+o98SS2nk61RG96Y= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fPODrM4f; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.219.51 as permitted sender) smtp.mailfrom=nifan.cxl@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745860702; 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=OiKX0SdCfE9sy/GIOsIW6ZqQMoygzHfnTOodJbxC6o0=; b=3qoaj1YITODkZH56dACxrVV84sBgBSU6eNPJFv9fByDRY3NFUijTexgSjfXK1CGnLLtwjm uOt+lSnovI8AiB8UqTnzx1cfwf0nbOYa4i1NtkmLOzMNxTOjMNftVMeXGu3/lJVZM5vDIx m75CBz/YD0WZZcbNPy605KWyj5W3dYU= Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6f0ad74483fso57816196d6.1 for ; Mon, 28 Apr 2025 10:18:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745860702; x=1746465502; 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=OiKX0SdCfE9sy/GIOsIW6ZqQMoygzHfnTOodJbxC6o0=; b=fPODrM4fLTsQB0+evbPHbEfmRaHD863Fe9i4JITAmGNtkcpJSbpkWd5v8JQ3e2nV1M HfVXEfn9DxiEtA7xTaJe2s6Xbi0c1HhbxXSDUbUWGBQuDyw2Am1UZF20EtDBoSSgZRM0 TT4FYgVvlOr02RLJjYP6j0wZH63izX/YJxVHqmu5+aTo691o4mUKpSB7B0dVkyStgla0 rvcL3bzmBTf0mmAGZs4LmxiT8YWO7C9YqLHhUjs7GtpcxPoP2Lhtc6B16km6ywtwCSCT qCXcBhMQhZgBfQwpjHZd/J/Rkz2/WEkuknVtus9+jfzcQPBeOOGuTAZMXR68/Ij9leUo XcLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745860702; x=1746465502; 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=OiKX0SdCfE9sy/GIOsIW6ZqQMoygzHfnTOodJbxC6o0=; b=Jge7ZpYfmz9LYOdOdYh64xY11dV3PQwAvGp7oeQixcyy8H1dsRzbBs7buRe6eoqClW o+MtnD5DfXHMZx8NcvnszBJyOnAgOcgFIaAgkBFiLU0oS7p/JFv2BqMWObPZyRP3LMTh VdpCXgqf7u0mwJbHM3/x5C/+0FK+CtOfWkCwziUKFupH4RKhH/9kQ+QJmm9G2SLv+4NR GDjYT4jYQNyEuCN6LYWT2Tu9EBAXjUs9BjHCc0EW8zaqQKrzP8e0SjJTpjItMbqhMTDp TS40CSV+5Zk8bXdvgQsmHL2+TUABXYm5rZaJ7KUv3UyFjun43ZPkl2cwy4c1rtYlJvhU lQmg== X-Forwarded-Encrypted: i=1; AJvYcCVvbAxqxbdDHxdZ5JMkLvdenJCF5NFFtU5qHJXDCx3WU/uJxKZHhjBLI7eClnF4a6QM1CJe/Lwqhg==@kvack.org X-Gm-Message-State: AOJu0YwlnYr7Z5AHbejalv3b7hS4vwlA8/qqKwcEO0km2m2e3IypLoz8 HU7barjKGpNBpgRp/pwmDVW1FgHCLDW8KC3Gq39lXfdgCdfGGWtXoNSuPA== X-Gm-Gg: ASbGncvdZnPvbaVxMSxIa2UmXYIYJMtdyBHENeQAnDIMIy3m1H0qOsz6+D6mnSiohsH FInPuxgN8T6dpe70HgiUwWbALtLGuCOqt799l/JyifVM0z5S1EKYqBjphGVbb/7E0Au2o8XsgG3 wQDSgFIm/9ZnVr2Gfb61YGDBfOPcutkA5+fgZxLwEVZ9W6f5jFx0lu9NRlOPaA+VD9ilZ3zN+zj BRJoH2AWa1DPsF1Ug/l7YtjrVo3w8ZZBloGxbGBdbm9+aLhky0HDfVkjmgA/ihD5Ikbgj90lZvL lIQOzkudlI4Adl2XYdxNbr2DLOggmujxRNf9Fx9m3vzyTjlqSYm1cGXE5MmWePf4o5no X-Google-Smtp-Source: AGHT+IFE0qo/MVZB0ZrufpjHZWbt8KIsvVRYQ2v99+CxEj7pkIQ3bll3fYSmXWeDkacZXT9gZTajTQ== X-Received: by 2002:a05:6214:21a2:b0:6ed:1545:65c3 with SMTP id 6a1803df08f44-6f4cb9ba479mr223255616d6.2.1745860701630; Mon, 28 Apr 2025 10:18:21 -0700 (PDT) Received: from localhost.localdomain ([2607:fb90:8ee2:8c9a:73d0:fe8a:86bb:e664]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c08ef3e7sm63443436d6.6.2025.04.28.10.18.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Apr 2025 10:18:21 -0700 (PDT) From: nifan.cxl@gmail.com To: muchun.song@linux.dev, willy@infradead.org Cc: mcgrof@kernel.org, a.manzanares@samsung.com, dave@stgolabs.net, akpm@linux-foundation.org, david@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Fan Ni , Sidhartha Kumar Subject: [PATCH v3 2/4] mm/hugetlb: Refactor unmap_hugepage_range() to take folio instead of page Date: Mon, 28 Apr 2025 10:11:45 -0700 Message-ID: <20250428171608.21111-5-nifan.cxl@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250428171608.21111-3-nifan.cxl@gmail.com> References: <20250428171608.21111-3-nifan.cxl@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 94991140008 X-Stat-Signature: skkbta8ugn7uun1t5sbo8gzipcsekkbz X-Rspam-User: X-HE-Tag: 1745860702-263224 X-HE-Meta: U2FsdGVkX1/UitM9NOpH0OSIbzLPN5wdNJkMiWoARmmxy7VkOVretqKIZ2jtT+lPuBSroHD6H99JQ6iKlSwajEI8ahtBaKvoAGI9w5Ku6dbyQW1zSjNHsB7bApwhZiOsWqSdOIUOL6IZALPuowMydRQbbfPKz51JghOk5x17u53s9zpUezH4fwIiRQocD98t6snGVhEIIH4nBD6oqDe+uxCPEzF1lrFmzVI8TJkeCLKBUWAe5J8NaiXll4N/Nhiq1uHIo9pMJ9RdK9IsNX+PHR1qzeSZkoGbsyBD35Ij0l5t3hCLZc9Ctsjfo9UWqF7R8EI4WyLqYnxC0lSaz7+VvT0P9GlVn7ffBkGo3haFzXJI0bGHWNAtU5DCzK5Wbu3XKPo6huCembv5w7R1FsK7v7xRr9mJbJT7iCeETbD6eoOpgy/3dQQyYg6td14PTS8T2FAvAi47haBokUen6jgcW+NGwYPSJ4qHP1p5LiK+CLQAsRqCUhpudjntJabAMS8vZZzaWbFhtyeZ5QB+w5tKijhAYx6TfZz1BbWVawyA/PGEVK1pg5dXVSGAfHmjiJUvrOEGpY82Q+wr4GVmSBWu+42vbdX67oQH9+kvPdzvc1kbhTCCDwoVS3AWG9IMyF8b8dicJUkf2hRAa9wuRxfekqQyP2jTSFFtqherhgcH+C911Z+s9v84siWzxXYPUD8tafHxECZClY4YdfsWSqGL59YDrSZdeF/y5/O6XEV+If2rddG7v8rtQgXbQCy7dpNPKiA1RpWDj/Blc1ISDwG/QjPhvvA8N0RA7FBHrrFtanK9dYLPMqOquzbezTjan9i9AJ2YvvjI2qwWjiHlvmXzszxfjgl1CqX2ul3wurHeMGVUk5oxEzx7WOVuLG3LJxwmwm13SrYSv0YFiWZTkv7VpscWJYXH/t0vprwozI8d+ea8AfFOYhARWwSZPdiIzuJspR5fJvqB9IY/kmMZoaK aij4DitZ PD2SkPH6gRynf8JKFGXdoNpSQrDLLuHQ0LnkNKTakPEKNLCPj/QG2Sb31SHGTJe4Uj+E/ttX5GjBy9knl1O0DbyNiWLvgx6C8j7QQinljYZ6zLcQHz0lMZjdatnPd7PkB0U4YuUnlC0Spz3VTPesYRfjDYSL0cyORXKx066is8j1egmJVz+R3PqohbdQixzAdIENWFlrtBxbt7eBe2Ak38N/zIluo5SMtK5Itiy0sZWHkKw1zxDXanjbld1tPIy5WAerOzQosz5PsKnlvj9PSmWpmI+0GEkaig6L0l6CTel83PNJpKTwNfFdq/GpQ/Mpmth0boZTRISEL7a695ic710dM+KcpMyt921VkAYcPw9wuDmYlbPkBj7gzyGCsBdrS5fm6ni41MvRQvCfyF8XYsQ+CL8NDIXbnysr75jahQiJ7R3jsfPwh4UGR1H2OfMO0ycTUxS14iNUGa5aKktnqXQJyzzfKYEqw3WQ/uAJITHCaiq6fTQJJexmqty4mAvSmE//IcTJ+nEMSgFE= 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: From: Fan Ni The function unmap_hugepage_range() has two kinds of users: 1) unmap_ref_private(), which passes in the head page of a folio. Since unmap_ref_private() already takes folio and there are no other uses of the folio struct in the function, it is natural for unmap_hugepage_range() to take folio also. 2) All other uses, which pass in NULL pointer. In both cases, we can pass in folio. Refactor unmap_hugepage_range() to take folio. Signed-off-by: Fan Ni Reviewed-by: Muchun Song Reviewed-by: Sidhartha Kumar --- include/linux/hugetlb.h | 4 ++-- mm/hugetlb.c | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index a57bed83c657..83d85cbb4284 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -128,8 +128,8 @@ int move_hugetlb_page_tables(struct vm_area_struct *vma, int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, struct vm_area_struct *, struct vm_area_struct *); void unmap_hugepage_range(struct vm_area_struct *, - unsigned long, unsigned long, struct page *, - zap_flags_t); + unsigned long start, unsigned long end, + struct folio *, zap_flags_t); void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, diff --git a/mm/hugetlb.c b/mm/hugetlb.c index b1268e7ca1f6..7601e3d344bc 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -6014,7 +6014,7 @@ void __hugetlb_zap_end(struct vm_area_struct *vma, } void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, - unsigned long end, struct page *ref_page, + unsigned long end, struct folio *folio, zap_flags_t zap_flags) { struct mmu_notifier_range range; @@ -6026,7 +6026,8 @@ void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, mmu_notifier_invalidate_range_start(&range); tlb_gather_mmu(&tlb, vma->vm_mm); - __unmap_hugepage_range(&tlb, vma, start, end, ref_page, zap_flags); + __unmap_hugepage_range(&tlb, vma, start, end, + &folio->page, zap_flags); mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); @@ -6084,7 +6085,7 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, if (!is_vma_resv_set(iter_vma, HPAGE_RESV_OWNER)) unmap_hugepage_range(iter_vma, address, address + huge_page_size(h), - &folio->page, 0); + folio, 0); } i_mmap_unlock_write(mapping); } -- 2.47.2