From patchwork Fri Apr 18 16:57:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fan Ni X-Patchwork-Id: 14057507 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 71DA2C369CA for ; Fri, 18 Apr 2025 17:09:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 016BA280148; Fri, 18 Apr 2025 13:09:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F06BF280147; Fri, 18 Apr 2025 13:09:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D83D0280148; Fri, 18 Apr 2025 13:09:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B219B280147 for ; Fri, 18 Apr 2025 13:09:56 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 11883C0964 for ; Fri, 18 Apr 2025 17:09:57 +0000 (UTC) X-FDA: 83347802034.14.3D3A992 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf21.hostedemail.com (Postfix) with ESMTP id 416581C000A for ; Fri, 18 Apr 2025 17:09:55 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IGLLUm3G; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=nifan.cxl@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744996195; a=rsa-sha256; cv=none; b=bDtxG2Mjx9kyG1ZX7cks8yI1TI6XQcN3UtreC4S63Wf1yyrXFDeXMWRbuWHP1Z8H0lO7yW netNTMqlTO4ZX+TGxPApsukeZxKxs6rZfT4DVzan1Hvy+Gq1wY0jerYpKqZ6yDvKSVEMWY k8/1F9l5I061vzBpDWLtxISWyEaz1qk= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IGLLUm3G; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.178 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=1744996195; 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:references:dkim-signature; bh=8DJIBJ38EnpEWPm08LJcINJN9maxALKgya+vxd8o0eY=; b=PcXG8BTqn7L8cvCWG89IcDC5g627zemMIMnba9ChcxYlBQNENMErilCxytkKTdKOGqs6oV SNZ9EDU1atO8dkGrKaFnUsc+5BPCvLSzYj4L0/5txwlJE2Su2ZoXsWh5ykvG2Dx/O6Nnza oTr4W8N/d4tDMoB0UXDRcWgweMi6M/E= Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-739b3fe7ce8so1910928b3a.0 for ; Fri, 18 Apr 2025 10:09:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744996194; x=1745600994; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=8DJIBJ38EnpEWPm08LJcINJN9maxALKgya+vxd8o0eY=; b=IGLLUm3GcADeHrrCz9gOwRsBorcCzbAFYeQI6wKajTpBFSR3SCwhVrujPlUyNU0JGS SV4cGle6yIsaFULqGjhsXm3fp4RcKpJlUHgnlWa8XyHBZcHEIRP71ri80uLcnzSLnre4 qi8fi1XO0aV9rZXBERwqGWmJM4lTgwXPnr77HaBj0o3i/YYthuVk4kOEshBMbLzKWMmA m8v7s3J3Zn3uum7ATwmYowrvNRXj6j/4OAM/nkHzRCWt36BDLqwetd6ZtnKhrtIUcyFw 4o5W1GdCgivuOQA+PQWhgwY/dPrsj5JfL73Nwt3QhhhBDasUBsmgOgSiQ8RSny9Bh3Tl ukzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744996194; x=1745600994; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8DJIBJ38EnpEWPm08LJcINJN9maxALKgya+vxd8o0eY=; b=sZXTtaYP160M66EWK44LVQbrqYlbEMkRbJxVrTVVUxzd1fBf73EeCiZcGWMet/r9jp uFt/6nlV52730+m4YTSS5w2HhP8qU4qnkRUMf7bOhHVBP6M6MeWMco5XQsJAiQg2rWqx DMcc+KzK+rAiKr/QD64Fl9XOndwNKfEYXvK+NDtNks5IOruR9WZhRoiumk2/zw3IzrdA OiHyy8ztfdxKb+MFQLZW0hhYpgLvHTfuGsdEVKNjkh3BfN5trf8fWekQpjKMutE3RXOC +LTBpkXshgY+5aB20nNVJjsG+j022BeWVwTs7/oGzvaNMrU9gOoRZpYNJpY7ZHxf8C4v 0DRg== X-Forwarded-Encrypted: i=1; AJvYcCW/WNO6ahaJ+ksW6J90PRedCwF+PXbOOUQUeUmVykvRNhUkkzDnAz9g02kKSNuu2BWcg7KyuigThQ==@kvack.org X-Gm-Message-State: AOJu0YzJV7stoYA5p03WMsuVIdl6JXjZ5D4LdL5DlB1s8SUbOCGhD+iU AzHUFg16cCsYHo4l2imv8hkMqmwGb5b8d8CSukv+H+ovQBdgshQd X-Gm-Gg: ASbGnct6bVWxTcyV+W5wZJSpwCusBfvlU2lOXWLuEE1q8p7NclGmSLj5fN3wWQqS0py qk44sF2Sncu8TjuSos3zj0TvV8haxGg5tc9gohx0yoP8+n7lH/fbxomrMN2RFBnRIe89R3YBo8Q oL5gMK9/Joaq/Fypn8JuBPCurVt4FdMZnMS7N+RP7kbCvG6pJqSM8TI1jDKzxxRk3p4SCc3Q4R8 lPPkXKxfW1WUj8esn4Vdcy2pi8TaHAEgFh2BfavZBdrfvVr0wd2qFNpVFvlQNuFP8gWI4Oj6VvL d+lMdiYcn638u8zAuUuLILY8xb7rXxgKx40pC1mE6rUEwZcRJfWEhi5e8A== X-Google-Smtp-Source: AGHT+IHtSkXRjE5kLbVrgFHYUZGqL8t43yfDxEcVnaqVty7Bxqms0EUkMScDbF3lTbhnxKvvjnnbHA== X-Received: by 2002:a05:6a21:3417:b0:1f5:7fcb:397d with SMTP id adf61e73a8af0-203cbc52403mr4988566637.16.1744996194008; Fri, 18 Apr 2025 10:09:54 -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.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Apr 2025 10:09:53 -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 v2 1/4] mm/hugetlb: Refactor unmap_ref_private() to take folio instead of page Date: Fri, 18 Apr 2025 09:57:39 -0700 Message-ID: <20250418170834.248318-2-nifan.cxl@gmail.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-Rspamd-Queue-Id: 416581C000A X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: c3aatp8orrm3i8qza5x4pnckfs6zaamr X-HE-Tag: 1744996195-450190 X-HE-Meta: U2FsdGVkX18Uw3G2FRgKKm5QXOo9OttEKncyeZLkcLrtaX3XUsI73gwgsvGSoshYxfU+re3Pd69uc0cfxbyqyIgNTykMe1DJY+FW2Uqh/jD7U3R/LQr+lK0HLrt7eSyVbNsvNmbyyzrRQRo2vrlp4ElIpn9xg5Yjm73V2+mCjrKcR537K+V/5D1JDWmsmHJ4vYqni3KvnAWTPxBCB90kE3Z9/koR0qvAteI4QHWIJod4wmyKf42RYjhidiXCPQBrP2r541bCxAMA+b4cYy4BmAARBAwU3+UwFrHEPsk5zyPFPg57NY17yJjdb0iuwrbnPCtoPpTRXzHUlcG7HJojo0C76SgP0QEg6GtSkIS8wN7yBJGeftQ2sA2scpDPHDohqP7z7VxIz7GK+vsPjgxBKEUGfYVUl/i1U5Ron35w0afSNn+6gvv2Hf/N915Sabfy+ddwx/MuVinChXFp8x/nEfIN7V5p0qFS+hxFgxLhG/VCeoJjp9jFkJ2lUyTuNeCCRyjBJsxUMwBabihbJLzzJ9cVwr4TGSeoSdxyKuMfr5FEM4bZ0HDfDVn5upES2HH2jnBN/Y8yhwoZ2fkSKv3BPFMLyKrUeJ2QfjePdRqhC/DBW61ClROgSTEtGL0oJGY1XggZVXT3oHQgR5+R8FyVYJZeQTh1Rlt/OsIGNy85PB2MIlKOQuOLTMeigJRHF5vFOnAeG9et946kcG0wmkTi4+Cag56LGImJ5FpTzc3WfIWA+4QcjWw4zrXHn7ERoQ0iqWPmlwlGxcB/+Py0EMrfatQzIQh9UpSXpPA/keH8e+YJkRs2cZs4PdOqSKSR95hND4rAqSUPfK2n3DDmJhfax0X2XllIo6rB3VGFzu7Q33Alar/fc4acVq1FX7wHEUYtNjDG4ClDjK0TtV+2KctjbtKMFYgNTYor7pM0/4/xacz0xph9F3ajuR161hhv6pZw464jhMs88WiAzLjAEdY 5Cjiz5eG RZoRMvxNNxr1UC5aTfU2jFyxQrgJUspX3kb20+6ckgwx+e0lJpVbpaK9MahohZH/12Ut6dJXzXg9nuEJj1ga6/gwDO04BUzXE7vI+qK7o+Qk9IfjrDe4Idi3ydPFioGBN6Ms7i7iJp1Dmp3Ce428k6TSt38zTpXtEJgmvoVdCzGMjyzuXGEfFy98tle46zOtqw91D/Jrk4tGNuzUWinvdK8Cyptgo+3vSvJJVVqXzE7/JtVWBPzfAMpMaLV3sEssuyRT5+Rcq6PmqZAdFDyJTT1jpXEHfZWB5X19wYQMeVDNAtbmeAg4HrLudV0l2I+8U70VHxfpwxKKjxYn719z7FtFlRtPnUDYKTkOAoEdmWZ+r+BYpbNO3ts4EWcUZnFSiey9YLP/vOZHksT+GkWN4HHToC00bpa+oiK+Nc6xPlpwl15hK5xxzY1QrBnHpqTx37AuxCS3eJx+LiW+99Gmp8Hc8Nu8RMiEBJgtE8oq2xY1iRPsoWeMwS8UxtNiM113RoedpEunAlrhOnk6wwsApPv9qnKB9kCSg0lYQ X-Bogosity: Ham, tests=bogofilter, spamicity=0.001101, 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_ref_private() has only user, which passes in &folio->page. Let it take folio directly. Signed-off-by: Fan Ni Reviewed-by: Muchun Song Reviewed-by: Sidhartha Kumar --- v2: Picked up Reviewed-by tags; v1: https://lore.kernel.org/linux-mm/aAHUluy7T32ZlYg7@debian/T/#mbf9f3e8b49497755b414e1887b2376b3902ffb76 --- mm/hugetlb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index ccc4f08f8481..b5d1ac8290a7 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -6064,7 +6064,7 @@ void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, * same region. */ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, - struct page *page, unsigned long address) + struct folio *folio, unsigned long address) { struct hstate *h = hstate_vma(vma); struct vm_area_struct *iter_vma; @@ -6108,7 +6108,8 @@ 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), page, 0); + address + huge_page_size(h), + folio_page(folio, 0), 0); } i_mmap_unlock_write(mapping); } @@ -6231,8 +6232,7 @@ static vm_fault_t hugetlb_wp(struct folio *pagecache_folio, hugetlb_vma_unlock_read(vma); mutex_unlock(&hugetlb_fault_mutex_table[hash]); - unmap_ref_private(mm, vma, &old_folio->page, - vmf->address); + unmap_ref_private(mm, vma, old_folio, vmf->address); mutex_lock(&hugetlb_fault_mutex_table[hash]); hugetlb_vma_lock_read(vma); From patchwork Fri Apr 18 16:57:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fan Ni X-Patchwork-Id: 14057508 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 C44F0C369AB for ; Fri, 18 Apr 2025 17:09:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 65A6628014A; Fri, 18 Apr 2025 13:09:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 632A9280147; Fri, 18 Apr 2025 13:09:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4AFD928014A; Fri, 18 Apr 2025 13:09:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 2B622280147 for ; Fri, 18 Apr 2025 13:09:58 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9F2521209CA for ; Fri, 18 Apr 2025 17:09:58 +0000 (UTC) X-FDA: 83347802076.10.7CB9725 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by imf27.hostedemail.com (Postfix) with ESMTP id B5AFB4000A for ; Fri, 18 Apr 2025 17:09:56 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=m+ljLM59; spf=pass (imf27.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=nifan.cxl@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=1744996196; 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=dORA6h0/+ces654lrs2Yc6m0QPEnXEtlk4fV98OxVqk=; b=gZfnENvEh5MmCbKSGmZ26FrhhnaTcVPdSPiNm8gYFgocLjWYI4YG4kxDqNsyzPyX215woh XZHSj32gxxGch6GAXdMSzfTgMJHMH4aFX+hMGf8gDhiHyB++eOXA4sCUHnGkgtkJcktIhk CigFD3juUAi5FNzsOvLeoUJsG+pwikE= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=m+ljLM59; spf=pass (imf27.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=nifan.cxl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744996196; a=rsa-sha256; cv=none; b=zsXFvvaXMxtoWX86eW2V6ybkWvh4MPnlMR6yeTDnrmkARYCVL58p49eagWj7ORJiZRmqXL nLzoULo9iVSNMfVoiOjye6N6cukyoFLy1AS1vFf2SlShhosdz9iQgye9H/oRAdXovubtUE ZUheDHXB1gcS8GW47Rbd9eyzwIWPYR8= Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-7369ce5d323so1766222b3a.1 for ; Fri, 18 Apr 2025 10:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744996196; x=1745600996; 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=dORA6h0/+ces654lrs2Yc6m0QPEnXEtlk4fV98OxVqk=; b=m+ljLM59eNygirZxfMKcihwo7CCaPx4T7xud326PcK3qVLmVKBbw0Ak2+z1CORScmJ MUOWe4pWM5e6PQnt6X6yng20tTA+khQ/CduOkBFIZx/Mqg/xGOPcyom9r72PAn199XQ2 tu3P+UZ8scDKwjYDWni/DrF93KyFhHFRcdKk5AuXE5uhdusFcNFDBRYTUYUizFcPBKKv VhZTzc6re7LO1GmJATg9VtadEnvG9PGqlwm2GtSl7t3oM0i+9YwdAJM5QTY1lzRAXgps 9f+i29yZCRyGnuU4hN4LpXcMrgEegmX22ZIFZyXsclGXxakC4G9F8FGBqYjTZN39Qch8 MnLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744996196; x=1745600996; 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=dORA6h0/+ces654lrs2Yc6m0QPEnXEtlk4fV98OxVqk=; b=ORXpu4kuNJgcDP36/qgYZYOj8GRlI5YXaUG/Ghjt9XvBMw+zfQpgmPzYFIbsWOSNj/ 92Nsy7vR5nejL9vhDSPqxkJnGklQPK7CCZ/QJyySsdlzIC5kkW2QRXiANJlAf1mafAOg JViUY8F5xb7xSTzyZZU+422yHl5fWCb/TwQXSYXRE5Cs4E3fQSiXvllxBJr4XD0xq/v8 BTGR86Rh9I+SM3fMtFc9olmVw4glICqNEgJVnU+oObNoleR+uyTciElf+jN60Ce9CmP5 BdcWgI282omjBjmYxMWiYe9s9sgEAJq2quDClmxi+a+XP5eAAss7DvNHU+5WEWAHsqPB vTTQ== X-Forwarded-Encrypted: i=1; AJvYcCXOzB9wBhoQOJn86fr7EzNXRAEukjHWnex6JWLJ+G/UtEBCjHDgoNrGFnNiYqiRGH8VpkWUR3dPSg==@kvack.org X-Gm-Message-State: AOJu0YybWkykFk/pnu+zVxWVLBAZfnL3ZOFD4gEt6b5+0hff77jZf6x0 F2FhUBBnHqUahawirOe66RxrXd+9vsC7gt9vuVDZURW8xW6pYAzLRg/DNw== X-Gm-Gg: ASbGncsDirNA/Hek279sitzpmueX4Og56WQq//g3ne70QKcxDfFOtphN8WMDzAtoyjp jAHgVmfZKC+WCRCtzWprFiyUHzYpU9ny0KtbmTJgEO3Duibk4ETSnLXN8nkgl3EWOlYZKsUAJqQ hHAJFgBItn2VH9doOC9aXKV4EhUoGCvmtKp7L70+KJmJpon1yPLoZN3d+Skn1FEcyeY+7meDKEH FGULJfZ1UmNCSf/mM4nngscdl5ujkAmlcLusqLjA7wqkW9WvNlN9+QwhRLkH1/fqR+UaYG0Oksu WEhYAKrDx0AafDaNJgvi7P1rtQJJ0pUDFZvuIXKj+3KOKZ0jrfqiQMC/Lg== X-Google-Smtp-Source: AGHT+IHe47+XozfXlstD4wDnTplU1ezUObVgQzHvnY/0V70xzfLWwjEmiGf1MJ9togB+8xEfuiChvA== X-Received: by 2002:a05:6a20:2d0b:b0:1f5:5ed0:4d75 with SMTP id adf61e73a8af0-203cbd213c1mr5795554637.31.1744996195645; Fri, 18 Apr 2025 10:09:55 -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.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Apr 2025 10:09:55 -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 v2 2/4] mm/hugetlb: Refactor unmap_hugepage_range() to take folio instead of page Date: Fri, 18 Apr 2025 09:57:40 -0700 Message-ID: <20250418170834.248318-3-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-Stat-Signature: yz4n93dasip4urwgqzxg8aei4ip6s8pd X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: B5AFB4000A X-Rspam-User: X-HE-Tag: 1744996196-909835 X-HE-Meta: U2FsdGVkX19wL3J3DQSAeMYH5HakxVSv9x8EwsbFYgDCOXZPMnaCFc8hX+UqMfZ2gfKnkbha2suDS2kzhXwb4nfo/z9qVXhnh4693zqaKQpVl4kPBLvI6Bdllib3HTdq7UVPE7D0mz0yKRybBWJp1Jcq7MjZWcwbJ5MdDz+RHUE92MqCsmVBbWAUOqkavcOmNBQri+9Mkv4KNneQnTxRQB0sTGfWwgL50rDqK3DiEtmQ+Zlx5bIs/RuaQekiIVZGYoISRuM0O30jRTa1aGctLiYIBANy1WbBfhRTL6zxXA7SZc4iVcv04wgoYKs+M8+B6iw2Svdttcz6X12sFTGJDwRGY6PWNqC1I4nWcTYebBgXNpkCnSsdzCq+tMmW8Es2p9d2t/epsh2AcgsSpAO+YpZspa+m9hk+oLCL2jgAsMR3KWzfktmntrG7dgAEnPYVSy2bJwofhJpxHpETdm7ZX1FCo0ooUxPXt0yzLOS4kbv5uaP+XGG6ZWEhF5+6rGswFptJDrfTpNblTOOPBRIlZqYUcZFtMjEjtfUL3tcxRa25BgAAgNA5Rabilb2IrPUl8TSFb+sFPhYw7zBBSBoLSMzIfz/GikOCO6AUOtF0/UwljFziQ8X3v353mabmQwkyGYxOLbS6x464VnzDkHcUPlff07A/WJxKumK6D+jC+xbZQrvUhBGr+auGGoqui8HVNn6Qr5UUSc+R328IVcRAlbgiXmS3aaOC1eO0cAbUbwoKxDjtB/reRPeei5TEq2SJe+zRbychTT3RUo9ZTYaMWYxOdtDxqAXBOGFfskPWxHfUTKBWxV297zUBPweWK8YiHK3HNIsk4xiaAGrzfyOcJKFZDhpt1sPP12xkM1/oZjHhXW2SZlzp1Z4NWUaMsyzcovgPnQkKQHk1jA7YRRK/vrFYH+Y40hmTxd0mwYPs847ygFdSMjXZ+7qRSSK+/AzszJP7S5ibf9J5C9otzIB 2t++ZIgP O1CF8WnQPq0ThVqYidLzkMbnRGnyg+0ulJSuMUsOhUgHM6GvdZBfXG9LRVMQM8FlDpuS/F0yhO3BmF51Hp5BXWYgMI8wdgpSO5u5GJtGXBsJv266ZFDgH0mqSmjvwEUhahSIzwW3b8W0V/0cNlcxlXfer0d8fFQQwyyglBi22ym7np8sdZub6zAigm78NWlm5IEIQobNr16QHtDaSIVZqU/y5eqIyCXVFekTatvLzpJyjNuLrhsXyhunO8nuq2THhlBP8onFMj6rYPa6Qk04SG5HvV8MnisDABtPNtHyCSyubuFwmw5bK5XNfyzRDCpYmj9LTdl7mjAKlRIQxj/iSuLvG03h5UzQi3nI0qI9IkbQMpEuQCw+8S10jIG9hRM4Bf7/UasWcvx2suV/CjTZGFzhAQEIvIiTrDj/PNRO9mzaNkRVccaQyG+JaHwmq1ni7g7K2DsTyJs2PrZmY5GG+9AjCRTnWZfqWvybLDm+q3cVz/Z2hGSnsYPadS7nPaULv+yo8N9X4qZTSue7nZ42JQCP8MuHAdKi7giiN 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 --- v2: Picked up Reviewed-by tags; v1: https://lore.kernel.org/linux-mm/aAHUluy7T32ZlYg7@debian/T/#m7ba630d783e08ae708453279579093d481c6e721 --- include/linux/hugetlb.h | 2 +- mm/hugetlb.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index a57bed83c657..b7699f35c87f 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -128,7 +128,7 @@ 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 *, + unsigned long, unsigned long, struct folio *folio, zap_flags_t); void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, diff --git a/mm/hugetlb.c b/mm/hugetlb.c index b5d1ac8290a7..3181dbe0c4bb 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -6039,7 +6039,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 *ref_folio, zap_flags_t zap_flags) { struct mmu_notifier_range range; @@ -6051,7 +6051,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(ref_folio, 0), zap_flags); mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); @@ -6109,7 +6110,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(folio, 0), 0); + folio, 0); } i_mmap_unlock_write(mapping); } From patchwork Fri Apr 18 16:57:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fan Ni X-Patchwork-Id: 14057509 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 2D02FC369CF for ; Fri, 18 Apr 2025 17:10:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E93A28014B; Fri, 18 Apr 2025 13:10:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 05707280147; Fri, 18 Apr 2025 13:09:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3EA428014B; Fri, 18 Apr 2025 13:09:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id A1C88280147 for ; Fri, 18 Apr 2025 13:09:59 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 430591A09C2 for ; Fri, 18 Apr 2025 17:10:00 +0000 (UTC) X-FDA: 83347802160.22.E1110D8 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by imf22.hostedemail.com (Postfix) with ESMTP id 5F789C000B for ; Fri, 18 Apr 2025 17:09:58 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Hpc3+UWO; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.177 as permitted sender) smtp.mailfrom=nifan.cxl@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744996198; a=rsa-sha256; cv=none; b=swQoRQ5iFQstbw1mc6pw3x8aACRGq/hbAbdoIm89TcyyIM6vSB3NCweI3cu/Rnw0him1BR rsAtv3WB4lbA3GTanJkzkljluA+eonu/o90b4OBOW9GSdmvdmDOyEYk7nRTCrx0mrPfMgL zpu59CzsomeiA1e0jCG5pHdtygZXi5s= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Hpc3+UWO; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.210.177 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=1744996198; 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=tsTdqsYgwhibA932I5tR8o+Lh0DhDirBiJnZYsrDEio=; b=MDklkcjXxzUSns2YCFMP5s3c4yJ28jGmotcnwbq41d9F60DurpmJM1Q/8cOYQQJs588CRv 01CJOsgHPgMJrvve21GZ8y2VXaHQHsLLoHW+6pvbTHIuGTnUhhdlniFFxphWu+WeHMvrUm heZe03Gp1mtCddWv2qeP1knLYq1gl3E= Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-736c062b1f5so1733751b3a.0 for ; Fri, 18 Apr 2025 10:09:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744996197; x=1745600997; 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=tsTdqsYgwhibA932I5tR8o+Lh0DhDirBiJnZYsrDEio=; b=Hpc3+UWOK/PSl8pww8CMrS48fuJ98+A45lLVbkUV2lEjPFqBiPnYazmhPKfqu9IzLD pblsmFt/bARHVgcaxhftYJHLuUns8Tm+FdSOPDuaA/yGBqJWNiWWhwU5EhoT5nYFsuan CE/GghmX0xlvZsaS8VKai+HDxYkxVqc80s1gypdCpsEWAHed86UtNHHcUg8ySUgytqoL eX1P1tOxZIVwRrZog322mPGvQiN8RtmtNGfv64432WyycbKISo+yvoeKO7Uxi1VJaehD witIgrylv03lpP1n7A21EWt5hqlbxMHTZF1J0FAL1CfL2MPwbOTy2Md6CrWR85p8bEDo x76Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744996197; x=1745600997; 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=tsTdqsYgwhibA932I5tR8o+Lh0DhDirBiJnZYsrDEio=; b=ih/TAg5V28qSKjgknwCmF+2rXD9upM6491yls3eQMA7smgXfm+02ICPcopY82y+I0B ggnqbtmyMbDUr1C9jigHLw8DeB9vzSnWhLDPGJ35/Bk0gcN/fNu0+4pVq8bjYaFzsD2V TiI8FpuVpNqHRhfgmRnwlEQ0JC6u1CPiAUGRJKugA7cWv4JfzE9a9+0xAIc/MZhPx/2Q 0zsKY+WJI2wRk13hld5KGKN7O7KKqRIAnmK0X+UGj3ZKbS5404VkxC841F8DXaJhERTq rLdxB0fWmzwXhLqmr+7GgZRM6QaMV6d1rfumOaEWPmV4QJDifZBPOBH6jzs8cviWPKBR pp2g== X-Forwarded-Encrypted: i=1; AJvYcCV9r1p8gNRF9bZaOZlwBFtsz/dbJcXtqLUY8uLb/8KbIiR8Tl+kZpPIzjebqFxGnMBOeW4yXtmE0Q==@kvack.org X-Gm-Message-State: AOJu0YzHoacEDhv4YgLsIBBH2KbXbl2nNJKThs4RXDm+j32mGF3jffO2 flNiisgx2MJjmUHxQr1a38GI78Khowu0mLzBQuttLu6jJESps41h X-Gm-Gg: ASbGncuDHJNqIbbTUlU3OdWIQle7zMt2Y7nqa6p9+AbsmZP4OWCEarTCY8Aa+bUzP6M 3qqGUkN4yEbMmFyatxPiZlban50Tzpkx3kcFpKKCN70X5eHwtBJwA776wuqXKcMB9mo7Fx35INS xNZ59t8SzFDsBCF9lkmsqV0/QvEv7E0Emxf9ZcBerMuHoOxEl/nj8sm7Re21ww9w9zIAIjo3wLK viJb+5pJNt+51qB7O0d2OBz+eJQf3KHesfy2o+lfxgogRd4RQ2oExreAIpfSw/kcfKo87KVo3AJ aU5Vd7XIZkq0iVTOmCfVPLt/0uCLthAZRAnjLpvAzLjElI+H/k795ldh8Q== X-Google-Smtp-Source: AGHT+IHSvLp7xjrutlovDlb6Cd2121SALH2AYdmlJW33uOknBUVUuhOpoIUEZNHkILgFO6AID+VXrQ== X-Received: by 2002:a05:6a00:a91:b0:737:6d4b:f5f8 with SMTP id d2e1a72fcca58-73dc1568775mr4256597b3a.17.1744996197143; Fri, 18 Apr 2025 10:09:57 -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.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Apr 2025 10:09:56 -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 3/4] mm/hugetlb: Refactor __unmap_hugepage_range() to take folio instead of page Date: Fri, 18 Apr 2025 09:57:41 -0700 Message-ID: <20250418170834.248318-4-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-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 5F789C000B X-Stat-Signature: 63bue111zqtity6zb1g3b9du37ztiga6 X-Rspam-User: X-HE-Tag: 1744996198-46632 X-HE-Meta: U2FsdGVkX19ehNFQT1dh04eK4Fvcy4h3JpX8xHEp3tiHVWDs8Tya+V60Sme+yKT82gIf1TakE79K5DECzONhhR4pPjshVRFqoBvTRGO88rG4Tu0vt/81wMzMWVqfH16Il+XC6iUQtwGIoDPucd62VnVvL18ifCh94deA30jJzW50ajlMCyoFEw3yFxe/9W9rVT02iOvZvqm/ZZto7rfZZY6H7n8MCTP79C6p7YUI3RKPgjfsDUMa5MP8m2uv1Jb4/v62nmaOWf/+kfJdcDWZ3Zn6s8x+HJGUTMlqftqIo3iM6lOzZK11+qOPUOPQL6IK0dJMvv6Ge7yiPZzUjU/grrIcfDI/g4kPvoUilGjrAG5LhL0jG3U8iOtEILdRLJSbqcNpztqmCfk1L0dFlDnEmgEqkGWAX3o1+dwFNHdELb9WRYyjaRM/vZDJDBhRqGOaSI9jzMdRP/VpfRVsbjwqBOaPf2IrT6RTsArEw+r/NA+zj00naMwZTNU0mEOK2Jb2KPSvRigwhSQti3appUc1vzvakhRMvJCERFoRpAg0gr6ZD2rfQ/4ZciaQc2pXzbVjFjK/IgTOU13/fjybKt4XUng2JQE0WsBWrVwvhMQFCRUZBIomHjhYiy39zKyNoqexjJoBAxPY2HAwt3XqSyBMxDTIaj3AHg6XqVNJv5bKMTJLcuog947qVcGtDkXtRVS/61Kt1lfYfXR+B5SF16CQrodxi3I3pYHioj4El+Q3tH2lyGTvgmBJy4rJCrtik7KY5WUM7IDQYa1A95PFfbnmQy1yU42ivzm/sHlP1ZFU3lwpjLZq4Y5n4ZLbD//MTpwMqxKyJthJdpmvFBTQ1ykoxSCyIPcXr8Yqj+h6IBAefFZcHl6YVdZLW4+0bj7GFoV7cDU0oIDTcziw5S77LVpGJW6ooVY6MboXtClvYxf8GtoNnlrkeDwh4zYoqXR8HYzrtn1UdORAs/qqBRh1Rgv m0qyAgWw 5eCfyghhBqav5p5Mev+ooo3jDViwuobcV1Gksopr9DdvI93hm+igPiuZvIBkM+Qwm4taFqtswgwq53wqCP9CvbA4nTrDlWgmFEhUq75owKgp0uPj3QAR9gn2U517HHMUHCf8Scm82Or16k2F5oim6FA63O8ViN1H2L/eQyvRDZihdgDyp4LkNet4mWtbvzZAb3brKP6tHe2lEvk/Ogz9bHLybOFeYpoFO0g9gSbj404Dsf+q1g8DouBYzT1WSGWbOiV6jrNjrBcKVHULGV0S+1IWp54362Z9BvatsU+bUw4JEQy20+aI+WorAR1pWVkYUOXsIHp3T2CsGjQWN1gAAaD5FJ5D2PjajEyngaP7kMHzYZDat2rUvrwOhskhNLn/uv3LCeLOOqX3azayntsaEIBlqMmklKCgAbD98iHs8TsjR5wtrrEXXMxCvc/x5QoCkuneNBtgC6QbvVv7YirlgYUzX+qSeZR7gNk4DdqAuKfveG2E= 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_hugepage_range(), which passes in the head page of a folio. Since unmap_hugepage_range() 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 --- v2: fixed issue mentioned here: https://lore.kernel.org/linux-mm/aAHUluy7T32ZlYg7@debian/T/#m2b9cc1743e1907e52658815b297b9d249474f387 v1: https://lore.kernel.org/linux-mm/aAHUluy7T32ZlYg7@debian/T/#m738e9e7f7d7fe4aab6b21782b4658dd65abf8fc4 --- include/linux/hugetlb.h | 4 ++-- mm/hugetlb.c | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index b7699f35c87f..ebaf95231934 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -133,7 +133,7 @@ void unmap_hugepage_range(struct vm_area_struct *, void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, - struct page *ref_page, zap_flags_t zap_flags); + struct folio *ref_folio, zap_flags_t zap_flags); void hugetlb_report_meminfo(struct seq_file *); int hugetlb_report_node_meminfo(char *buf, int len, int nid); void hugetlb_show_meminfo_node(int nid); @@ -452,7 +452,7 @@ static inline long hugetlb_change_protection( static inline void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, - unsigned long end, struct page *ref_page, + unsigned long end, struct folio *ref_folio, zap_flags_t zap_flags) { BUG(); diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 3181dbe0c4bb..7d280ab23784 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5833,7 +5833,7 @@ int move_hugetlb_page_tables(struct vm_area_struct *vma, void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, - struct page *ref_page, zap_flags_t zap_flags) + struct folio *ref_folio, zap_flags_t zap_flags) { struct mm_struct *mm = vma->vm_mm; unsigned long address; @@ -5910,8 +5910,8 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, * page is being unmapped, not a range. Ensure the page we * are about to unmap is the actual page of interest. */ - if (ref_page) { - if (page != ref_page) { + if (ref_folio) { + if (page != folio_page(ref_folio, 0)) { spin_unlock(ptl); continue; } @@ -5977,7 +5977,7 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, /* * Bail out after unmapping reference page if supplied */ - if (ref_page) + if (ref_folio) break; } tlb_end_vma(tlb, vma); @@ -6052,7 +6052,7 @@ void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, tlb_gather_mmu(&tlb, vma->vm_mm); __unmap_hugepage_range(&tlb, vma, start, end, - folio_page(ref_folio, 0), zap_flags); + ref_folio, zap_flags); mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); 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 */