From patchwork Fri Apr 18 16:57:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fan Ni X-Patchwork-Id: 14057510 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 D6E93C369AB for ; Fri, 18 Apr 2025 17:10:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 79A50280150; Fri, 18 Apr 2025 13:10:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 77562280147; Fri, 18 Apr 2025 13:10:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5CEE6280150; Fri, 18 Apr 2025 13:10:01 -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 39D7D280147 for ; Fri, 18 Apr 2025 13:10:01 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 94F0B120921 for ; Fri, 18 Apr 2025 17:10:01 +0000 (UTC) X-FDA: 83347802202.20.2CBAFF6 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by imf13.hostedemail.com (Postfix) with ESMTP id B63F220002 for ; Fri, 18 Apr 2025 17:09:59 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eM8PgC5P; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.179 as permitted sender) smtp.mailfrom=nifan.cxl@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744996199; a=rsa-sha256; cv=none; b=4MspXkXN8wSuE1qKNB0Bh/gr5i/p9PRfd9/13qx3UDoQGGZCU3RrLAisy8yslWi/+OB229 c3soZGbaiU9y+1RrAX6S67bIxtQrK6w2D3qpHGMM/P3SaLP9fLnQpYCeCRUsFuC4MUrM7a ByeJRbBTnwBwtfcNoe3vfI6ufIVKfdo= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eM8PgC5P; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.179 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=1744996199; 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=KR9npWIv+rGQU+FX1QXLAADj2LmGc+OKrQyDb0uOm+4=; b=Wrn4QodcMrib7+IOTikggbHIC++NT4Omb24+UzUBJVC5XWSdt2ce00QsKWKCqjYdBrRohH Yl9oVWowIoKb8byU6DZAnA2wGMfmoicvRQnxG6i/CweW02msy7sbEgh8x5XrxNYuq3/fhw 1uLcaI2k1kBQWp46+0HWDEK5Yp0+v6c= Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-7398d65476eso1728356b3a.1 for ; Fri, 18 Apr 2025 10:09:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744996199; x=1745600999; 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=KR9npWIv+rGQU+FX1QXLAADj2LmGc+OKrQyDb0uOm+4=; b=eM8PgC5PzNXpuLMrJO5Z0bpb9WEira7Gg5U3nk7hSo8bvMUowEr92agh5cIvXCBo1x g5idJ0ln41lUtKyaaF2JshiO5/rkkboELmpqlXBpQe4UOX4YwIr4QcV8esd8XVS23V/N jSPgh5AXnoMHdcapT456fonjYyLDUsx0BcTRkKY15N8pvjNwvOQmrjrOsZgWPeuVWpE3 MR97XlzudyiE9ipsb42u8cC2ilOrdS1FUc/f9sFzMfWCbtvWnJ14OpoDQFXZWbmJakh4 nikMNTAHpJa8A3cZ2UTdkTxa3+ZB2097Cx57FjkJbMo+juj7HC1B4WNvKaRxs/OS+Iqm P2Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744996199; x=1745600999; 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=KR9npWIv+rGQU+FX1QXLAADj2LmGc+OKrQyDb0uOm+4=; b=KS44Zj6KXZwZyS6GfGK0tiXJPYqQaFznRadUz2EGIZlGON7Qj0lR7JSh531LGqiYAN AhiYaE8DSQr9Qt6um1DkGAXcLZDmJxcckBzmZY8/8WwOKcxtBuglM/77qWDE7o/1rndn zMKijYBBc6kHegRtwB65ddip+8tRlXC4DMs1B/yumEgn7D+eE0yyuTB/XsiuhbjUikxU DJh4ynXqMf8EG+wNnxFyXENf9AQJeqJISyMW+fTPX0CLeuY80ZgTT5+taa3tl50xA9V5 BdxUtvQc3KgDW8K9OdrocLrFthCSBziWcB8seDMe9C/Nuk4R9J9PcMEAwzOyM59At6mP xryQ== X-Forwarded-Encrypted: i=1; AJvYcCVXh0OFFRN5JCC79lwyoUtQRpOXAPvynhl6WPxo3qvmNcTzanKogtOaaI3haI1agklzPjkttTOa0A==@kvack.org X-Gm-Message-State: AOJu0YxSuCdpF6cRMcrOkh3MOwXQiuFA8eF/MkrEV30NXZiqFU8djPwk be/dtDqrYyJ96udc/FzVNv9PflSil+O8YFP+jkEU4Asv1w3H8QLa X-Gm-Gg: ASbGncu/iRIgALNW220atjPjWJqYN0j6uaF6J7UaX9PCkrLpsEuOrZJS0AUwxNLMCy3 ftFlnkNQN+wBO50gudKQYECBA9NXfD5cVX/UCfoYKHPBTKjmFcNboFTuY+D50wGPxY7AbKqhN+d QfO+Rght4nWB8DRTN3+hwZwo76vTiMNFMnzbiTnpa/k2g7be02TWVrz+pWZrAMvicAn9IAJENEn yQcTfE1OmCRR77FpgIhwV3niapR6k3hBBqujAP7M+ZvSyhEC+H1+2Fc9kV5BWS1Zeb+dS/3J5EA 7z6sZTUXWm+TUK5RpcXo15nA3tdHIarv4TuEeXcCUPhtrtoOKnN/r9uOiw== X-Google-Smtp-Source: AGHT+IFFtgchhKrrSgY8IwY+zNPrux+4lRWwT2ZJzGrWP0TbUDOOYlZ/d83wzJ8XRSE77fYFs+SJJQ== X-Received: by 2002:a05:6a00:a904:b0:736:bced:f4cf with SMTP id d2e1a72fcca58-73dc1653f45mr4296795b3a.0.1744996198648; Fri, 18 Apr 2025 10:09:58 -0700 (PDT) Received: from localhost.localdomain ([2601:646:8f03:9fee:5e33:e006:dcd5:852d]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73dbfa59176sm1834069b3a.113.2025.04.18.10.09.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Apr 2025 10:09:58 -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 Subject: [PATCH v2 4/4] mm/hugetlb: Convert use of struct page to folio in __unmap_hugepage_range() Date: Fri, 18 Apr 2025 09:57:42 -0700 Message-ID: <20250418170834.248318-5-nifan.cxl@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250418170834.248318-2-nifan.cxl@gmail.com> References: <20250418170834.248318-2-nifan.cxl@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: B63F220002 X-Stat-Signature: jkicpyd6z9xikqjibu6gsz7krozdab9j X-HE-Tag: 1744996199-423582 X-HE-Meta: U2FsdGVkX1+qSfjRLfbwkTPPukGODHdQWefQc/DCfTG4xCqlXUJm3o4TdWPpRGI0xkFu4b18gmPzRxpGbmEJHMDet551AfyQczca75CQpxhK4rKY0au47F3VzrmmnAbYXUmS8mnA5PP+gGJZJWNp3gA23+7/k0VjBRIdF+va/bjaNcOM6/RLQCMSsZn/L/g6/tqG+fDksEN4XSbxJWrIVOtET8Aukg9vNkS8HU3Nx+0XgSPvXN5qDwUasrCYv4Ts8P9wCwrUgP/Yi4bYRyRO9Zx7+3z3dgEd9vdm76qZcFNty1P1AePrqTvIxIOtWEEZfSzS2WnvVrL3ton5NWbo2DsbmEqOAKwzMw/7/4fRI/TFHgY1DAAVgO0pL6yB7vP64Ahab5UTfqe1y7HjasYbjzyyY4TDJJa5i+mNmmX1+GLYyJLBVjjmfBno16azrRRWcHhUqdydMKUIESEgK0enCD4kARzv7XWCKiQjDz9bNw+yI+uksFy2lkZ6GyvPbsiKEaabaCbCzlIQbS6s0HumWT4dEEZhkVGpDVdX8dOLYTGp+flhzK300b4fvCzOq9m4HoZoPpW323CXJe9eX+7pHNofWL+MYpI3Z1yb4qK+YJQeVM4vP+L3wmzOiq6Zv5dtADXeQ7Mv4kxxbtEjij/N0DCElA6i1ZkmTDhgyzPpZUR0rt2San7lFCWamVibZVtalJUMh7qHcixzI3ghHFSumStWPXKiB07q/36l4CeAV0FHUgjTRmBlAGrO03gva/kLXOvWiPYOg1jE0m1rkFcXOe50aBg66fiJIERNl31mBIQaCrQKOI8zz0+7w0YUafLchHLsvxlb4DOwqdEk8Nc1OHuxGqUkq4aoVkqCgfdG0ulE7N/Ku3ktXLOOdO2ztSIjB4OQ/8/vIgR1tJaEAFQqHBO9UVQiULBaxOXyEVIXJZYclyOidbJgFYu8WTLm28aJQQFgqDoDvRI7cF9uJNc CxjrGpNG CtOovAF0anPbcRbipL+YoZDXFj6B3z1G3Y1/p/fTOb6V8TvwH8OSJ37LOqwnwcCLxv9wnq3V5GD0zoHTi3N7EY/LlErgaSykhB7tX6AOdRYbzlVPo4WJFMrrDzIv/zLxVd8FZaF59/k+9yI/NS4haimDAPMg4EPRZKj2GroPEOV+OYtJh5CXONaxDnFS3iymM2DOQAKZ9FciyS+G2/Hxkyu3h8hSc5rvZgTgvFvxa2Ufzfrl3/lueUVfL++mNQKZkdIIA2gUvZyjthXst3Lg5anG5XqTWt0wt7iAqbpqtchnNh89tEchd+WHzGiG/LqGBccw/YoxAt2ZOAmOnNQ+E9HmpiIvhXVZGjxdhZUpqP4f9KoZrk2TMezFCzX0FaR4a3hnS9RzYjxtW+/85t6H7//pjZU/K0nPghKKjbhrZ0YjH0fzlSWNW6q5hGAgDqBYz2pnxiJrFi9gDp8lkrGzWGXruJVyty43uSsHu3lkc+1Tumo995Ky5s1Burly84rkgt5hSpzZdBBB6YMA= 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 In __unmap_hugepage_range(), the "page" pointer always points to the first page of a huge page, which guarantees there is a folio associating with it. Convert the "page" pointer to use folio. Signed-off-by: Fan Ni --- This is a new patch added to the series based on the discussion here: https://lore.kernel.org/linux-mm/aAHUluy7T32ZlYg7@debian/T/#m2b9cc1743e1907e52658815b297b9d249474f387 --- mm/hugetlb.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 7d280ab23784..8177a3fe47d7 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5840,7 +5840,7 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, pte_t *ptep; pte_t pte; spinlock_t *ptl; - struct page *page; + struct folio *folio; struct hstate *h = hstate_vma(vma); unsigned long sz = huge_page_size(h); bool adjust_reservation = false; @@ -5904,14 +5904,14 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, continue; } - page = pte_page(pte); + folio = page_folio(pte_page(pte)); /* * If a reference page is supplied, it is because a specific * page is being unmapped, not a range. Ensure the page we * are about to unmap is the actual page of interest. */ if (ref_folio) { - if (page != folio_page(ref_folio, 0)) { + if (folio != ref_folio) { spin_unlock(ptl); continue; } @@ -5926,7 +5926,7 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, pte = huge_ptep_get_and_clear(mm, address, ptep, sz); tlb_remove_huge_tlb_entry(h, tlb, ptep, address); if (huge_pte_dirty(pte)) - set_page_dirty(page); + folio_mark_dirty(folio); /* Leave a uffd-wp pte marker if needed */ if (huge_pte_uffd_wp(pte) && !(zap_flags & ZAP_FLAG_DROP_MARKER)) @@ -5934,7 +5934,7 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, make_pte_marker(PTE_MARKER_UFFD_WP), sz); hugetlb_count_sub(pages_per_huge_page(h), mm); - hugetlb_remove_rmap(page_folio(page)); + hugetlb_remove_rmap(folio); /* * Restore the reservation for anonymous page, otherwise the @@ -5943,8 +5943,8 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, * reservation bit. */ if (!h->surplus_huge_pages && __vma_private_lock(vma) && - folio_test_anon(page_folio(page))) { - folio_set_hugetlb_restore_reserve(page_folio(page)); + folio_test_anon(folio)) { + folio_set_hugetlb_restore_reserve(folio); /* Reservation to be adjusted after the spin lock */ adjust_reservation = true; } @@ -5968,12 +5968,12 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, * count will not be incremented by free_huge_folio. * Act as if we consumed the reservation. */ - folio_clear_hugetlb_restore_reserve(page_folio(page)); + folio_clear_hugetlb_restore_reserve(folio); else if (rc) vma_add_reservation(h, vma, address); } - tlb_remove_page_size(tlb, page, huge_page_size(h)); + tlb_remove_page_size(tlb, folio_page(folio, 0), huge_page_size(h)); /* * Bail out after unmapping reference page if supplied */