From patchwork Tue Aug 22 16:28:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13361202 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 F2542EE49AA for ; Tue, 22 Aug 2023 16:28:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 77C4C28004A; Tue, 22 Aug 2023 12:28:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 73003280049; Tue, 22 Aug 2023 12:28:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5CD9F28004A; Tue, 22 Aug 2023 12:28:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 4E882280049 for ; Tue, 22 Aug 2023 12:28:26 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 28A6F1A037C for ; Tue, 22 Aug 2023 16:28:26 +0000 (UTC) X-FDA: 81152273412.13.90CE131 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf29.hostedemail.com (Postfix) with ESMTP id 752A312002A for ; Tue, 22 Aug 2023 16:28:24 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=AIBleFvk; 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=1692721704; 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=QuryWrAnRPXrddUuqwfDJFbKrrum7cGuy0quVxenRTU=; b=jp+H1Kl7rJZl7TlXbFpzhGEuYqvQF8wwkx81D9VBPzPjnvxB2kb5yegKt3Gblh9zBuvXcR 4KEYeEXnJpuNshHjGwEyJ/fFoCicbWTAZnTGJsDxBzGYaoXH+ZqnNUj30u2rZff1db+NOf ix27nyIJP6eZFZ8mR9HIGwjwtjWXzkc= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=AIBleFvk; 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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692721704; a=rsa-sha256; cv=none; b=N1NyJm4hLA3sKR8Gmz2dPTa0vNu7ybfV6IA6MgUvRqbVA/WcJ97jfn7N2/xlFE0xu5N8WV 7eXtZT7hJiL7bh7LiH75VLDIZMyPIybQA5416rfGK3iiWivlXnaxZCXfxBVd3jAkFQz9D4 VGEwqVsN+tFcVP2gpp8hclsTHTsiTAo= 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: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=QuryWrAnRPXrddUuqwfDJFbKrrum7cGuy0quVxenRTU=; b=AIBleFvkEiKy5bmdaBnkMsYJ4v dooTWXug1JtFuoibdm+FknJjGEXdJUk0nRHtSeFyX6kn7PkTy12kaDWtgXEOnc3jblsK8yES9VPun P46yFOV1NTMbXH4qtMK2ckd/UF1MInDDcwb/ISOjS61ynDVUmBGoXCij1RtsrFXqkcop986Ft4G8x 1uI5UyAT4qQcu8XiQcbQuNwKwqYsSXkiAIBsr+VjXlSVVy3vxlJBKupywfokUQSiMKmC3RN+GFtkR 8jq7bqdEPhLRCtXW8oHXU9iYbutvtP2fLDk5xauc4bPAQ7TFPhT4cLPgWhzI1FwjE+O7kq5n8DGg5 BDAeJyxw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qYUEk-00HKlf-I7; Tue, 22 Aug 2023 16:28:10 +0000 From: "Matthew Wilcox (Oracle)" To: Mike Kravetz Cc: "Matthew Wilcox (Oracle)" , Muchun Song , linux-mm@kvack.org, Sidhartha Kumar Subject: [PATCH 1/3] hugetlb: Use a folio in free_hpage_workfn() Date: Tue, 22 Aug 2023 17:28:05 +0100 Message-Id: <20230822162808.4131399-1-willy@infradead.org> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 X-Rspamd-Queue-Id: 752A312002A X-Rspam-User: X-Stat-Signature: n6ntspjwsr4d5j1gxjm18dzkgc7h1b63 X-Rspamd-Server: rspam01 X-HE-Tag: 1692721704-535203 X-HE-Meta: U2FsdGVkX1+l87C1guPyfc5b8tzyzNKLQ2RURu1Byz6gNpwSq7xh/sF7GgCQK6SlsgzwwFNo54iSzqsLdR9Iw80OFcM8gyLkkVS9i/8x6GUoiGZEHHWCZSUQgfJ6c2zCWW949F8N67iIfp+hRIFr+hq+V8B069K/g97pZcDHcrImrJpT2AKzJoHQRjvjK9EEBxI99Dmqe/yK9sqzkvlh6MwXJlGwwcrkXX9mDMaWhYWuAlSyMTp17EYGm5GLkEvi2R7xrJIrLdGaaWeq7OohvD0EbFF9QhIsNf7issDwFklBiqRPNpUXCM7J4/6EyicgA1VgjHnxpicx/Gdy/c70/V3snjbbwQmn+5HzBtqxVULEG/iKrdu+7CnWuEHBXlx4YY9NK/mvGg6TrEcUAO9UbfFGndZ6ONEUGJOaPqcQ+9rT34bHwY6GldmV2hlCqkkp3xTAdsHE5qkwSQM2RhCrDMRa65A6eMJWfGyAnFDdT9TBLzzWftrdoosAiQbDhz3tqqEtdIFfja9AM8rVTeLKJ0hNaA5hAnAXWgwaMGECAi5JEwIaXxjxbAMSmmNei194BYT3iex2aExD2+1M/XHTbNwG7MPs5CdqXNNRD/ucQGC2hAnb6PobJeMdJSlyHl6rDYIWqiuUFhzED1Q0ZcoIhNB629BUMqxVeZbIYHv1XF43X1DOMpomqxIYGHs5svzgzh6U8Ba/tBt6Enb1VDYwHAD5k+Xm8aMmzwPAHE4PmXbqquRevaaNqVB5/AtifcT1PvL0lhHNV5/i98kBlDVsLw5YObdkWyf4hsk37UE6Apw80O2xyL6Nbpa+hQb8tOdZz8BrrLqkyx5NC+mN40QCwOv+e5j8pXHWD7ohCZWdPAkCyMYod78o1brmDEGUXPQH3jbCPG4E2xqOejzvm8+PT5QJvRlGEuHb8rXNuUCmigYMuqwNe7ukDjVHvhOx2FnT3UuyD/tn/kx3gf9JmZ/ ySmypLbs 5j2G1AqjJKM8ydwPo4YWkJO/E0/leNTaAj9PZA+opRZmdfc9m19aktnLleOXM91LViIhoZGJ7t7+j7t81Xeorh5zpaDknKkpMU3ASgfhojNko+21N80324toygiZ2KIDZruXOWz9G81rdInq0RO+5o9g3kzo30d69E7Li21c5nueS2AgSnFRqBLWCA1yUsZT1OrZ9TBUG3y0bQZXkroHsMHG7lBqc6RGy+N3mVrsUmYWhnxjv5OIDnxyOAg== 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: update_and_free_hugetlb_folio puts the memory on hpage_freelist as a folio so we can take it off the list as a folio. Signed-off-by: Matthew Wilcox (Oracle) Cc: Sidhartha Kumar Reviewed-by: Mike Kravetz Reviewed-by: Muchun Song --- mm/hugetlb.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index a82c3104337e..d1c856628bac 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1786,22 +1786,22 @@ static void free_hpage_workfn(struct work_struct *work) node = llist_del_all(&hpage_freelist); while (node) { - struct page *page; + struct folio *folio; struct hstate *h; - page = container_of((struct address_space **)node, - struct page, mapping); + folio = container_of((struct address_space **)node, + struct folio, mapping); node = node->next; - page->mapping = NULL; + folio->mapping = NULL; /* * The VM_BUG_ON_FOLIO(!folio_test_hugetlb(folio), folio) in * folio_hstate() is going to trigger because a previous call to * remove_hugetlb_folio() will clear the hugetlb bit, so do * not use folio_hstate() directly. */ - h = size_to_hstate(page_size(page)); + h = size_to_hstate(folio_size(folio)); - __update_and_free_hugetlb_folio(h, page_folio(page)); + __update_and_free_hugetlb_folio(h, folio); cond_resched(); } From patchwork Tue Aug 22 16:28:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13361201 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 9BD98EE4996 for ; Tue, 22 Aug 2023 16:28:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9C70194001B; Tue, 22 Aug 2023 12:28:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 97735280049; Tue, 22 Aug 2023 12:28:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 83E8794002D; Tue, 22 Aug 2023 12:28:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 76BB694001B for ; Tue, 22 Aug 2023 12:28:22 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 593C11C91F1 for ; Tue, 22 Aug 2023 16:28:22 +0000 (UTC) X-FDA: 81152273244.14.C8857A1 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP id BAC9F10001B for ; Tue, 22 Aug 2023 16:28:20 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=upHYpxGi; spf=none (imf05.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=1692721700; 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=fikYGvhW/M2pb63cjdLz202Dx7trTh2hg6lPyaOt2gA=; b=pPyQPp5464ckr5Sw0TmH7QfKWG9g3QUM4otFnBBll1ftYWvBfW/zNNqc+TqfxSdHQ6fWhz Wt7ZiQYD1nsSBcG6dSjWVXWfcHUqGLh/rFoRX9Elg6zB18PvKpTvoNxHEG6RvRY/k07ji7 9UujcAqgf//3bUNzbOWWKL6OJoVyL1o= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=upHYpxGi; spf=none (imf05.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692721700; a=rsa-sha256; cv=none; b=J6AK1Bkd2tIaMT1FQeI5op8Ko3Xibui4K6Tr3r3LRevGKdYZSgIL3KtmQEV/rz+WV2agrM qkJ/Ffz23z5E6QvQQmqGfsnbih5Be5fDFPpym6YGUj+IfHyJa9hZfTVcj7XETADCv0GWUQ LhdKMZCr+7xrXGJzvcX40ovp9NVl8Z8= 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=fikYGvhW/M2pb63cjdLz202Dx7trTh2hg6lPyaOt2gA=; b=upHYpxGiQZeXbrprfEOdwG+T0s /wOpvkhUj+N050c8r3jimHnSTjzGHFLD1sGHtT0VjOsfCDf4sukp3pNcvzoAG0+lXYMcM/iFCTZIc iekm5/Z/cO4RY2+i7+asZJxExDF/XwbTJeQZw32HuE5hTEyWW85ir+xMkdHWPYfDR7USk4JXF1mVH p/OKEDOl2QVy8Kh5jDQ0UMMWql0RACAChyuOTEsluM1JFfwtfoUAuJY3lTBspK8/CqUpujtCYWJAW 667xJVK1O4QDItLgQE5xm3hPw9dZCUVtIyQEqkdXDDTeKXfjy8XjGsHIycDU33+QdyX/cKB5NRHMA a1HHvS+w==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qYUEk-00HKlh-LF; Tue, 22 Aug 2023 16:28:10 +0000 From: "Matthew Wilcox (Oracle)" To: Mike Kravetz Cc: "Matthew Wilcox (Oracle)" , Muchun Song , linux-mm@kvack.org, Sidhartha Kumar Subject: [PATCH 2/3] hugetlb: Remove a few calls to page_folio() Date: Tue, 22 Aug 2023 17:28:06 +0100 Message-Id: <20230822162808.4131399-2-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230822162808.4131399-1-willy@infradead.org> References: <20230822162808.4131399-1-willy@infradead.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: BAC9F10001B X-Rspam-User: X-Stat-Signature: j4jifpxmt3hwtr8r4aw5i61775h3a868 X-Rspamd-Server: rspam01 X-HE-Tag: 1692721700-704991 X-HE-Meta: U2FsdGVkX1/x30xmuNA+VelV5u6OOl758WC1FR/WHAJBRxzc+IjHmlif/rCeK3UvufRAZhOzN/cl9mC+nOYMoS/OBZ3/Hd984Ok8c/pcckFZXezxcnEoe0Q6tKgj5kHFc8LhOA+IiG/xjLFZUUiG9Opt4DGvRc8d8kbYft1UBZQWYtjb/2Ec5BmIm01ouiaCvEP3jIJwx2N9hCyzll07XGpOXY4zGoJYtHJKdRy28fxslRE+pZj5BvNpxUaxVlqkBMeqk434AAEP83mTywEbsQIZoaa/ZX2RlMCQVh/HN8W7f9EOuMIawzgro1uyzgxByrM+Z/xSX4HHDmHRq9pRGT/w9pgZ9PsN/a67N0XkcCGhwxEkBldNH+LFQmqne/GghmYNZZFZqt4gz2wYlAdB53QHkql8q/uNuCAgkUKqrDpWLYv8BlIubcFBNj8HXVFxLd186cLQ9U/ju+9HP+7+n4BL+k8qpckZKYr5qCB7+frZSgvv67XSyY5QB06fdl/jxkFcTTe/aDlwobn38vhwtTjOSnTn46BIa02BzBY9a03PlR3ns9g23bkKgPPJ9jrhOb4qKE7GHdhYvnVavjXLbTfgV8nQW3uBUtyx60rwoJrE/i/+K8PM+/2F14v3lyNq/NXelzJkvfjDDilQp8RlVVBFl4qiDq+7dSqIiilfQSByJkT7LCcTxjP8MfrHvVEN446Q0JO/Si75h0/0EHvd3e7gGS+9bP6J3JNrx6RL3cETZi15x551ZWvggOrjgKW1UXj3iFP41kLBzF4j+bNL3bY6UratooAnNXSgd4t3c/q9KelsPV4LVX6C/ycEBq7dPwd/j4KwnrCgm6U/RsRi6dyYor1boq5W+yIlBJ+t5fxqLyCAaKf4mRG/0w9OEY8nb4uZLHJqjaiJpDQ0yFas2jkQQJIF6iwDsxuMoset0zdFWhyU9ew2V+cZKcA6VjvtwvvFXHw3+23ghIwC+kN Vc2Vg1hn PM3PRyrMWxcDi7jzsVYiC7/2V1z/1nzhddCsX+jsXhQEy9TCnqov+KeFGsguGn28QHcsK7eMv6JM2aKA3T3YmUkvD8Up35tJya6XjJqrtt/1iFEE5eAYBSIbs+IsVhbq7NVewuEC/MMEbB14HDju61JYDRkSbh6kB5LNo87Q8mTcjqYzIrjU5P8NQbpHeDsfgBBwSxgeXLsi2crjEhfoZU1G9SkCGRzITGBKAmLJaZhjI2jTaTywWxRn/9Q== 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: Anything found on a linked list threaded through ->lru is guaranteed to be a folio as the compound_head found in a tail page overlaps the ->lru member of struct page. So we can pull folios directly off these lists no matter whether pages or folios were added to the list. Signed-off-by: Matthew Wilcox (Oracle) Cc: Sidhartha Kumar Reviewed-by: Mike Kravetz Reviewed-by: Muchun Song --- mm/hugetlb.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index d1c856628bac..d6309edb59e5 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1835,11 +1835,9 @@ static void update_and_free_hugetlb_folio(struct hstate *h, struct folio *folio, static void update_and_free_pages_bulk(struct hstate *h, struct list_head *list) { - struct page *page, *t_page; - struct folio *folio; + struct folio *folio, *t_folio; - list_for_each_entry_safe(page, t_page, list, lru) { - folio = page_folio(page); + list_for_each_entry_safe(folio, t_folio, list, lru) { update_and_free_hugetlb_folio(h, folio, false); cond_resched(); } @@ -2228,7 +2226,6 @@ static struct page *remove_pool_huge_page(struct hstate *h, bool acct_surplus) { int nr_nodes, node; - struct page *page = NULL; struct folio *folio; lockdep_assert_held(&hugetlb_lock); @@ -2239,15 +2236,14 @@ static struct page *remove_pool_huge_page(struct hstate *h, */ if ((!acct_surplus || h->surplus_huge_pages_node[node]) && !list_empty(&h->hugepage_freelists[node])) { - page = list_entry(h->hugepage_freelists[node].next, - struct page, lru); - folio = page_folio(page); + folio = list_entry(h->hugepage_freelists[node].next, + struct folio, lru); remove_hugetlb_folio(h, folio, acct_surplus); break; } } - return page; + return &folio->page; } /* @@ -3363,15 +3359,15 @@ static void try_to_free_low(struct hstate *h, unsigned long count, * Collect pages to be freed on a list, and free after dropping lock */ for_each_node_mask(i, *nodes_allowed) { - struct page *page, *next; + struct folio *folio, *next; struct list_head *freel = &h->hugepage_freelists[i]; - list_for_each_entry_safe(page, next, freel, lru) { + list_for_each_entry_safe(folio, next, freel, lru) { if (count >= h->nr_huge_pages) goto out; - if (PageHighMem(page)) + if (folio_test_highmem(folio)) continue; - remove_hugetlb_folio(h, page_folio(page), false); - list_add(&page->lru, &page_list); + remove_hugetlb_folio(h, folio, false); + list_add(&folio->lru, &page_list); } } From patchwork Tue Aug 22 16:28:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13361200 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 F321DEE49A3 for ; Tue, 22 Aug 2023 16:28:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 22574280048; Tue, 22 Aug 2023 12:28:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1D5D194001B; Tue, 22 Aug 2023 12:28:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C528280048; Tue, 22 Aug 2023 12:28:22 -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 F20D194001B for ; Tue, 22 Aug 2023 12:28:21 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A3D1280377 for ; Tue, 22 Aug 2023 16:28:21 +0000 (UTC) X-FDA: 81152273202.23.243C625 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf24.hostedemail.com (Postfix) with ESMTP id CF37B180012 for ; Tue, 22 Aug 2023 16:28:18 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=jcJDTuSr; spf=none (imf24.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=1692721699; 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=xCCHVXquFLc/caW2FtAVpt+GZRUZZtYjjNkc9M/61QU=; b=fTF+NDwuYjr2m+y7Oi/as5HEbwkEx/ySe732/QcLkBVTt1e+1Vgogz8vhS7PY0MDL3S3sp vUf9CPqKCHTILvL+X8XmoZ7FsjH1uzxjKhd9JOKwvMACuu+oddSF2sNAvcTwo/WQTZtTiN 7K7Wz2VjDQkyTDaJ0vvPZaf2/SiZ1Z8= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=jcJDTuSr; spf=none (imf24.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692721699; a=rsa-sha256; cv=none; b=2ImvOSwO1SXSw+pkxIGhcqG9vdEDPqZzmm00+KBYuaE5QovZqo0PdtVHvi+BIRD/kgaJ43 zu+wb1gn/LU4g/7MnxG9yt55gdrnVdtlye7wDEp4Fca0Bx6iOg9d/WgsZRr+aA3bEz21qx i+8x7Asq8RIde7koyHbZH1yHBNJBlPY= 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=xCCHVXquFLc/caW2FtAVpt+GZRUZZtYjjNkc9M/61QU=; b=jcJDTuSrgmgmJuQVj/VbS2ieB1 14WTObdyUtBdokWJisROueZOcRw9ZHpSYe5tH8VyXKrIkfRS/xynnMrUxRXRKS+5i916YOA4uURZw /j3XmAKN/p/xMDEuXN7xp9tCqWSO42LnzmPwigPTnzOTUhJVHm0HfBsl9YIuGb8mjGMMeQmF5+SVp Q5XjHpjJmc0DhEKFkGWaKoMg6YJCBfOzh1aDEm3LoP0rR/il1ao4c++Cv5/RsrJhCV/1Ca6iY/qLL rF8KmAHo9uLxzQEDeo1Kt0vHRk+E82bc6GToxpVObIJqKSbkBwcyiWuOoV/26QG0W0C2a5J0nugq+ 9wPaQYGQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qYUEk-00HKlj-Nq; Tue, 22 Aug 2023 16:28:10 +0000 From: "Matthew Wilcox (Oracle)" To: Mike Kravetz Cc: "Matthew Wilcox (Oracle)" , Muchun Song , linux-mm@kvack.org, Sidhartha Kumar Subject: [PATCH 3/3] hugetlb: Convert remove_pool_huge_page() to return a folio Date: Tue, 22 Aug 2023 17:28:07 +0100 Message-Id: <20230822162808.4131399-3-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230822162808.4131399-1-willy@infradead.org> References: <20230822162808.4131399-1-willy@infradead.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: CF37B180012 X-Rspam-User: X-Stat-Signature: h7kthpr6dqiexwzjm961jfdfjn4qw8om X-Rspamd-Server: rspam01 X-HE-Tag: 1692721698-932498 X-HE-Meta: U2FsdGVkX1+zQ3p3nalweu42xQp6l8jwUX4MtlvHqBKz76goRR/ZPiHuOcKLZg36pVdN+SbsbN7drMyG9gdxH0ddkm44Okhv7EAl1BIn9eI73/Upu+8vfzhhf5Fr+bQlb4iOSEpjUcIZCBoMUCqPezSrseTsI3Rl2QlvzhzpRYpAvpN6qbNGpJjxiAXHXfwfuWq3ezPYjeFXav3tXJA4f0qqds6IYU4w+Xlm12TUgy0ZHx+XUynlq1PaA3wilOL8vaNqEdN4oJypwBeaHacdhNM5qOkY+I+7jvnCVsN0yjviNeViSkwQQN7gt365PGtQpEUJheN4nFuOUBTyNvWDsP17p1ocJHW3SZh1qdPvPV4ESJopmnhdu1SkHUNi8uy9SL76wlzyemn6MPEFs0cLz4yRJi4qImNQsJwzutNmtfXxy3xEtKGakjJS1pmh9UBu5/PgUsIp5V+lrcbmlq424m83//VhwgqY71dn2S1PrSqaCp/y+yHwNWx3k8nNYd/SOZPtALvZoFRp7kW1qPvm7RUlKBtQtgyFG/PfPzQNQVBly5Cm7AeVBmcvmZDT4mkGD8Rluy1PfyPRnlpYCj2e+UCQeO5kE/Ak44m5jQBHxwBiRn1u/5luM2bC3KwUtYPzkzWEOE1tnyFLiNb/AzlYnnoy4p7wsjeyyXxcEAXDvlf14q55JC1V5bthKYe1ZLmfCnypWpGKVltVgby6Tyad4kUIXUP6V5sZRSJlmhEhX7I5Up8Icj5yd5zwlVgyNCm+gbyPKUSUEi/HYnu0BPucnoXyqMfA9STXeLyZNX5g+56BKWMDSby3CtUhazpGP/gHnAAi1RhnVLMLir9zza6mqPyjSiq3BWbodK/VP82HBV737fknVtiUIzmtVHSzjS/7shF/+Ax1o2DdXN/+9nVnTm7HBLOB3P1GaDmMfYs9llSbuj+0YBt53SRBoNk2mI3CEvXs8EeMcBYqeJpN2MR 5wmKQVLS GoSpw/7HDGyYMNzDdPaFqVp64jcyWtBEVN29i1lzkTMtZ4yDCtoZfCe+c9UN8kd0TJbJWip77cEnU1J25p4L5Pbp7vmeZdVBBOwevD4jowm5nAm0JUsgy/RxbYfnLsPclbEsbKy5zNLaCUvs+LflzOs57eposQ97gDlbu+4zknMFLj5YBlceUwE6zvzJKK7I4I0BKh4NjdkYo846MQ2HB+8inyEFBkKHdgaxl+HePBODRFuuKLCHJptcCXw== 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: Convert the callers to expect a folio and remove the unnecesary conversion back to a struct page. Signed-off-by: Matthew Wilcox (Oracle) Cc: Sidhartha Kumar Reviewed-by: Mike Kravetz --- mm/hugetlb.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index d6309edb59e5..283cd5290515 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2221,9 +2221,8 @@ static int alloc_pool_huge_page(struct hstate *h, nodemask_t *nodes_allowed, * an additional call to free the page to low level allocators. * Called with hugetlb_lock locked. */ -static struct page *remove_pool_huge_page(struct hstate *h, - nodemask_t *nodes_allowed, - bool acct_surplus) +static struct folio *remove_pool_huge_page(struct hstate *h, + nodemask_t *nodes_allowed, bool acct_surplus) { int nr_nodes, node; struct folio *folio; @@ -2243,7 +2242,7 @@ static struct page *remove_pool_huge_page(struct hstate *h, } } - return &folio->page; + return folio; } /* @@ -2597,7 +2596,6 @@ static void return_unused_surplus_pages(struct hstate *h, unsigned long unused_resv_pages) { unsigned long nr_pages; - struct page *page; LIST_HEAD(page_list); lockdep_assert_held(&hugetlb_lock); @@ -2622,11 +2620,13 @@ static void return_unused_surplus_pages(struct hstate *h, * on-line nodes with memory and will handle the hstate accounting. */ while (nr_pages--) { - page = remove_pool_huge_page(h, &node_states[N_MEMORY], 1); - if (!page) + struct folio *folio; + + folio = remove_pool_huge_page(h, &node_states[N_MEMORY], 1); + if (!folio) goto out; - list_add(&page->lru, &page_list); + list_add(&folio->lru, &page_list); } out: @@ -3421,7 +3421,6 @@ static int set_max_huge_pages(struct hstate *h, unsigned long count, int nid, nodemask_t *nodes_allowed) { unsigned long min_count, ret; - struct page *page; LIST_HEAD(page_list); NODEMASK_ALLOC(nodemask_t, node_alloc_noretry, GFP_KERNEL); @@ -3541,11 +3540,13 @@ static int set_max_huge_pages(struct hstate *h, unsigned long count, int nid, * Collect pages to be removed on list without dropping lock */ while (min_count < persistent_huge_pages(h)) { - page = remove_pool_huge_page(h, nodes_allowed, 0); - if (!page) + struct folio *folio; + + folio = remove_pool_huge_page(h, nodes_allowed, 0); + if (!folio) break; - list_add(&page->lru, &page_list); + list_add(&folio->lru, &page_list); } /* free the pages after dropping lock */ spin_unlock_irq(&hugetlb_lock);