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 EEEECC02180 for ; Mon, 13 Jan 2025 13:16:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 72CE66B008C; Mon, 13 Jan 2025 08:16:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6DC8D6B0092; Mon, 13 Jan 2025 08:16:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 530426B0093; Mon, 13 Jan 2025 08:16:49 -0500 (EST) 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 306DE6B008C for ; Mon, 13 Jan 2025 08:16:49 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D7ADC12020E for ; Mon, 13 Jan 2025 13:16:48 +0000 (UTC) X-FDA: 83002478496.22.66B954F Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf28.hostedemail.com (Postfix) with ESMTP id B1748C000F for ; Mon, 13 Jan 2025 13:16:46 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=KLKEuQjU; spf=pass (imf28.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736774206; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9usYI5DgNUlDmY6F4Dug4aGXBw+qPPqxLUrXzQ1Tmoo=; b=qBT6XfJlul9WO34ryv0svy3XkZDE5Gl/CxYJeNXxbTAnR5JkQHimtO6nU2AuIqEpBt2Tnk 7NjiRcvMVIeaSfTaTork3cnJ7PfCRGpq8tJqWmau7z53rJJnFqKL2frOmJbcLxjWHROAZ9 zP1cAMaG3VaG/gElBd4S36O58mph19w= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736774206; a=rsa-sha256; cv=none; b=vqGTSARtd42cCUBBXxL6fi4zinEMjyMWvuud4Tl2UEb78fCbJSwg49lG2KuZf89EFzxNGx /d77KGzhtr4IJTMffLVcasPmc2Wb61trjtmLXsDpceM3ohoW+ZoNpuyeiLWKtHxpePQSOt wFCjUHGAGW9AF1M1hijncDWHw/b1aCI= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=KLKEuQjU; spf=pass (imf28.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1736774206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9usYI5DgNUlDmY6F4Dug4aGXBw+qPPqxLUrXzQ1Tmoo=; b=KLKEuQjUQV7dtHFF9VH3L/jnBKvQEKN5lV9MSPCGYx7gS07OsTTMltn7zZWt7TZTqPR0Ma 58iFxHlkABFlx72F3WnQWnf2pw3L42AYwOavtsbjt3yUqGbMHEcsFikGQuMDIDQKbcXJ3A MZY/agMBlT4VZuUM94rz7ZZaJVK9dGs= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-686-0yMazMcoPSC2AX0fAJEcyQ-1; Mon, 13 Jan 2025 08:16:43 -0500 X-MC-Unique: 0yMazMcoPSC2AX0fAJEcyQ-1 X-Mimecast-MFC-AGG-ID: 0yMazMcoPSC2AX0fAJEcyQ Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4361c040ba8so24525115e9.1 for ; Mon, 13 Jan 2025 05:16:42 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736774202; x=1737379002; 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=9usYI5DgNUlDmY6F4Dug4aGXBw+qPPqxLUrXzQ1Tmoo=; b=YO5VyVivwk2R2uCQbqCmU2QW8o2w3RzD/Z4M5dq5g+9uIX9wIHT74kh6ZK3T1Hkqxg JZ9k71oH10kOa5w1UR5G+5WgK9M0Hdo5CFFzRVg1GlMnThmNGep7P5ErdmITQl1k40Rw eIn4NWUvMFcAJ1d1Zr0K4zuBq62kWX3E51Y4akZh1fGmFT5+r2wStYiNoR9Kf1GrfZNI DvxF8PlsAqznUUXA2OyMoW82IQjlKkGSkDleJqi+ErUA4d/BClh0mimKUUGfqE9KoEJR 1sIsgyZLOvyQ+zXgeCZ1LxqYJImRiowV/i3/AEleN1lDoduzznArMkACx+HBX2fcNuQL FAjA== X-Gm-Message-State: AOJu0Yyvkpn4J1X4/lJXoa8D6dl/HSPsnnbRZjlf2oPBZQiMF60YewK2 6eNf3TjNqPACLcedauuv77disojUvr6nRpU/K6C6agBUpYXmH4+mJFK4zoxXqcMkrpQuSZEKEB4 1VaWoyJInJgFcFUFpaNMNEz1WKot7a+AK2sjganZ2tJSKkvJw X-Gm-Gg: ASbGncu2z+w6xyMJQFTv8oEKXZrjTWXnjO/qF0EjWzPYYrczWTY2BmVwld76oHjCe9a 5GiRjRzWPvsly17cz8YE0e/VE5zERhTYQ7ruWFt/n7LXlixxYqFkIpESdm6TzWpo3aEA8BbEAH3 xKlExDPwKqp4ZezbOJHLCBNSx1AtR14EOiXIa8pdyBjy0jh4RoSS/gPQbV8xhjluRQHT4ddhe5S CmhL6cyauGke2s8ZHJCxn8I9FZ2VEUi2CdOncHu+Qo0uBTg2zNO X-Received: by 2002:a05:600c:314b:b0:436:5fc9:30ba with SMTP id 5b1f17b1804b1-436e26ebb6fmr73793205e9.29.1736774201719; Mon, 13 Jan 2025 05:16:41 -0800 (PST) X-Google-Smtp-Source: AGHT+IF1QjX6fKScjtkrek3bHe4bgrZiW5f8BsOnYBHXEjoxDvqfSM2uADNbnmwxz9BF73D5jNf0aA== X-Received: by 2002:a05:600c:314b:b0:436:5fc9:30ba with SMTP id 5b1f17b1804b1-436e26ebb6fmr73792885e9.29.1736774201284; Mon, 13 Jan 2025 05:16:41 -0800 (PST) Received: from localhost ([2a09:80c0:192:0:5dac:bf3d:c41:c3e7]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-436e9e6263fsm146445655e9.39.2025.01.13.05.16.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Jan 2025 05:16:40 -0800 (PST) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, David Hildenbrand , Andrew Morton , Muchun Song , "Matthew Wilcox (Oracle)" , Baolin Wang Subject: [PATCH v2 2/6] mm/hugetlb: rename isolate_hugetlb() to folio_isolate_hugetlb() Date: Mon, 13 Jan 2025 14:16:07 +0100 Message-ID: <20250113131611.2554758-3-david@redhat.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250113131611.2554758-1-david@redhat.com> References: <20250113131611.2554758-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: V_XeOv-O_tOr7B5H6l30V8p6ns9-ALxdawTrQyFtbuE_1736774202 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspamd-Queue-Id: B1748C000F X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: 6ws5cczdh8xsop5mum55fhsxzanopu6z X-HE-Tag: 1736774206-579521 X-HE-Meta: U2FsdGVkX19G/Kbn5U4PXeEI4U5CjrxjI0mMRjUdPWscC2CzgvHidbVHuUbo3ZXz3M9/PY5jbrb91YsLFnfrPoxScUnn1Doudh365JOd80tms+Jm34A4u5asBqkcT65dyKcKTLxH4CcJryytNJaD0lzpmxJ7+G3da9eyXKcKYBsVo0Coz0o+SQA4E0WnkaBUaHugORH9vC6/lxpeQirk2A5sTPgKE7E+t2R0fDTP4uoG7FlNRler67p19Cv/7dSfbLr1WB5usW3vCTdFwMgIJ1aSmdt15u8paNlI5K+AYWBNMe0i76wFFX1nWebAbY9f0GEKHP4t0jdFbfUHY6ocWeZl3uBv1C6LHibxIDP6tkjZVs8hrLJH9ntR9IeeVTWklWkH9xz8ULNJT+l2+Tj+nk/uuvkvsD3AweamxtfNC1RsRAIHcnGIatdPpiHUbhF6p0v5ycfmog4w4KsJbp/Kja73k/zftwLQj+O6St15lThDoFc8RuXS5S9WimQ2RUql3ItCZ25axOL5HCuby9+g43leopz+D56rZ+n+Xphy/m09liv3SEGuA7L4IgWcz6W18Ax0QtmRy4SUFLZZxma2KATl56OQeYYHQIzFDECDQAaR53Oj1aMJyPW/W7YIj8ledHAaOOlyEr+ANWA756rpi4rFDNbiXxePVdIYEjV3Rg58DJvt7EyLSC6DzMDlhfb9iR7WFdI/TS/lc6uRS0L8hhq57eg2mQuwRE5+jBOt5brIU0undMICmyKQ6nFgwN1Gh25jlw4f7HKq21q+3aaaBT3NaLgJ795XMr/D8wLCldldIWwrlzU76K6dSl85LIbCRQyOSmO4RGI0G1qyypd2bxaUxpT98/qbzb+dhl4h8U2K59Xsv5fIGJbpmEMrgDTEDmDnooMNUvE60fXL3Z7nS2YDPQ3BB4WB1tkOJgo7qJVB2xXHuaTev/S9E3uoGGD9Cwfg4rrK1exFJQiTskS Obn0zu51 Fk1FGeDpDoIZUmP++d+geMweQ0AhbXiY55Dn+bolvMsI9mjQCB45DefCMOG+gkOSkjZfR6xIwbOW7wPcv2xEJHtvCaXqAakSOpig4TX0hZPMf3aHIYtA8v6qKMAnqWE/jkTVXWJG+3iHadDeQvFL+36PL7qlksfGqY3wyg2kcpawcC5vzdqq2ijii70bFfOYpb3/NiV0lHd/tpv0ZLAzgOy35jeNJpLjGA4fvnsMwAzv4zIxYbjw5ZP4qzdbnKNUl7yhQQZxjikXNaFtXHSWMOSrzcANPS4qS4d/9LuEIzBH3/2FCDNwVQclFB9Mx1Vw/1gGA05ipZia8sSyQy6w10MGq61pEo3Dahr5XU7Wl/6/19TmvgetwZY6LX1vTYzAbLZlxg2yc/6CcppG6hlnoDhhK7WV0U0qqvEe+LTg8saVZqvBwV0j77zx7XVzpfoRxd+Q8TPpkuoF6WLbAUSjJNl1bn/hKplu4HvdGFYAvz6IrsoXvxEj7qvsOipmtsEFbTBgm7GZ/HCOjiNTGvCwa3reeqTZYalap8KPFqpOqQp7p0AZ254/k0WXhoLVpcdsMMjmXpNZcBM7u5V8= 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: Let's make the function name match "folio_isolate_lru()", and add some kernel doc. Reviewed-by: Matthew Wilcox (Oracle) Reviewed-by: Baolin Wang Signed-off-by: David Hildenbrand --- include/linux/hugetlb.h | 4 ++-- mm/gup.c | 2 +- mm/hugetlb.c | 23 ++++++++++++++++++++--- mm/mempolicy.c | 2 +- mm/migrate.c | 6 +++--- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 49ec2362ce926..c95ad5cd7894d 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -153,7 +153,7 @@ bool hugetlb_reserve_pages(struct inode *inode, long from, long to, vm_flags_t vm_flags); long hugetlb_unreserve_pages(struct inode *inode, long start, long end, long freed); -bool isolate_hugetlb(struct folio *folio, struct list_head *list); +bool folio_isolate_hugetlb(struct folio *folio, struct list_head *list); int get_hwpoison_hugetlb_folio(struct folio *folio, bool *hugetlb, bool unpoison); int get_huge_page_for_hwpoison(unsigned long pfn, int flags, bool *migratable_cleared); @@ -414,7 +414,7 @@ static inline pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr, return NULL; } -static inline bool isolate_hugetlb(struct folio *folio, struct list_head *list) +static inline bool folio_isolate_hugetlb(struct folio *folio, struct list_head *list) { return false; } diff --git a/mm/gup.c b/mm/gup.c index 00a1269cbee0a..2cc3a9d28e70e 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -2344,7 +2344,7 @@ static unsigned long collect_longterm_unpinnable_folios( continue; if (folio_test_hugetlb(folio)) { - isolate_hugetlb(folio, movable_folio_list); + folio_isolate_hugetlb(folio, movable_folio_list); continue; } diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 9a5596022c4b3..a93b508bc0e0e 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2808,7 +2808,7 @@ static int alloc_and_dissolve_hugetlb_folio(struct hstate *h, * Fail with -EBUSY if not possible. */ spin_unlock_irq(&hugetlb_lock); - isolated = isolate_hugetlb(old_folio, list); + isolated = folio_isolate_hugetlb(old_folio, list); ret = isolated ? 0 : -EBUSY; spin_lock_irq(&hugetlb_lock); goto free_new; @@ -2893,7 +2893,7 @@ int isolate_or_dissolve_huge_page(struct page *page, struct list_head *list) if (hstate_is_gigantic(h)) return -ENOMEM; - if (folio_ref_count(folio) && isolate_hugetlb(folio, list)) + if (folio_ref_count(folio) && folio_isolate_hugetlb(folio, list)) ret = 0; else if (!folio_ref_count(folio)) ret = alloc_and_dissolve_hugetlb_folio(h, folio, list); @@ -7417,7 +7417,24 @@ __weak unsigned long hugetlb_mask_last_page(struct hstate *h) #endif /* CONFIG_ARCH_WANT_GENERAL_HUGETLB */ -bool isolate_hugetlb(struct folio *folio, struct list_head *list) +/** + * folio_isolate_hugetlb - try to isolate an allocated hugetlb folio + * @folio: the folio to isolate + * @list: the list to add the folio to on success + * + * Isolate an allocated (refcount > 0) hugetlb folio, marking it as + * isolated/non-migratable, and moving it from the active list to the + * given list. + * + * Isolation will fail if @folio is not an allocated hugetlb folio, or if + * it is already isolated/non-migratable. + * + * On success, an additional folio reference is taken that must be dropped + * using folio_putback_active_hugetlb() to undo the isolation. + * + * Return: True if isolation worked, otherwise False. + */ +bool folio_isolate_hugetlb(struct folio *folio, struct list_head *list) { bool ret = true; diff --git a/mm/mempolicy.c b/mm/mempolicy.c index f83b73236ffe7..bbaadbeeb2919 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -647,7 +647,7 @@ static int queue_folios_hugetlb(pte_t *pte, unsigned long hmask, */ if ((flags & MPOL_MF_MOVE_ALL) || (!folio_likely_mapped_shared(folio) && !hugetlb_pmd_shared(pte))) - if (!isolate_hugetlb(folio, qp->pagelist)) + if (!folio_isolate_hugetlb(folio, qp->pagelist)) qp->nr_failed++; unlock: spin_unlock(ptl); diff --git a/mm/migrate.c b/mm/migrate.c index caadbe393aa21..80887cadb2774 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -128,7 +128,7 @@ static void putback_movable_folio(struct folio *folio) * * This function shall be used whenever the isolated pageset has been * built from lru, balloon, hugetlbfs page. See isolate_migratepages_range() - * and isolate_hugetlb(). + * and folio_isolate_hugetlb(). */ void putback_movable_pages(struct list_head *l) { @@ -169,7 +169,7 @@ bool isolate_folio_to_list(struct folio *folio, struct list_head *list) bool isolated, lru; if (folio_test_hugetlb(folio)) - return isolate_hugetlb(folio, list); + return folio_isolate_hugetlb(folio, list); lru = !__folio_test_movable(folio); if (lru) @@ -2203,7 +2203,7 @@ static int __add_folio_for_migration(struct folio *folio, int node, return -EACCES; if (folio_test_hugetlb(folio)) { - if (isolate_hugetlb(folio, pagelist)) + if (folio_isolate_hugetlb(folio, pagelist)) return 1; } else if (folio_isolate_lru(folio)) { list_add_tail(&folio->lru, pagelist); -- 2.47.1