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 DD4A2C25B75 for ; Wed, 15 May 2024 06:42:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4CC0F6B0113; Wed, 15 May 2024 02:42:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C4936B0117; Wed, 15 May 2024 02:42:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0DD836B0115; Wed, 15 May 2024 02:42:00 -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 D61F06B010F for ; Wed, 15 May 2024 02:41:59 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B37A112146A for ; Wed, 15 May 2024 06:41:58 +0000 (UTC) X-FDA: 82119685116.04.9E4AA8E Received: from szxga06-in.huawei.com (szxga06-in.huawei.com [45.249.212.32]) by imf18.hostedemail.com (Postfix) with ESMTP id 77E091C0016 for ; Wed, 15 May 2024 06:41:55 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.32 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715755316; a=rsa-sha256; cv=none; b=fLyna+5v6nuPfxu0SpCqPUjSuGrvhgduMjIVC7XT7iwyc2IFAnAduBu0i91WCeTnOPDq8/ 0471ncZmBbyK7SafWpd/Jb3899IiDk68carSDShLKLLw8/JwpQZd3/gQlopGOKYnEAntuJ II3p00iCiAT/MGJjtqv6wUqk7HoA3Ng= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.32 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715755316; 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; bh=QB56pqaRS9pLolXf5kdmi4bFsnwTc4rQp8usiB4b2iw=; b=ARoQaXyTr6fzuDG/Z8Zl6gAK27Ci34TnkS1Jni0gWwhRbtKnfMg1hv2SzxE+GbmGHBSChc Di4FwS+N431ywYT24GpF+qTF8BgDTR3aAGt0vBAH0rEe1YpILmekwo2IdcPiEySr3IVle7 GVmxeCRvp036SbpTwusmWl5dsFlG82I= Received: from mail.maildlp.com (unknown [172.19.88.234]) by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4VfNs510zCz1xrW2; Wed, 15 May 2024 14:40:41 +0800 (CST) Received: from dggpemm100001.china.huawei.com (unknown [7.185.36.93]) by mail.maildlp.com (Postfix) with ESMTPS id F23F61402CB; Wed, 15 May 2024 14:41:51 +0800 (CST) Received: from localhost.localdomain.localdomain (10.175.113.25) by dggpemm100001.china.huawei.com (7.185.36.93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 15 May 2024 14:41:51 +0800 From: Kefeng Wang To: Andrew Morton CC: Hugh Dickins , , Kefeng Wang Subject: [PATCH 4/4] mm: shmem: use folio_alloc_mpol() in shmem_alloc_folio() Date: Wed, 15 May 2024 15:07:09 +0800 Message-ID: <20240515070709.78529-5-wangkefeng.wang@huawei.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240515070709.78529-1-wangkefeng.wang@huawei.com> References: <20240515070709.78529-1-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.175.113.25] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm100001.china.huawei.com (7.185.36.93) X-Rspamd-Queue-Id: 77E091C0016 X-Rspam-User: X-Rspamd-Server: rspam12 X-Stat-Signature: qctrqdexhep1yjjiji4fgk77m6o3e4sw X-HE-Tag: 1715755315-811922 X-HE-Meta: U2FsdGVkX19yXez452iKtqF7TUX4gIDVlid5VBGPAMCP9OhZT6R4xaSeYQkFr0clW9x3t3fgxnbIK2Fni+J3FLuiHfVlWqPqsb0ucvrmST71Xzr3VcbbkCawHkVh64ClHAxZ8pF4JtMNzTycDB8rUYgMvpfu4W5XgSLNdVMUz25lAHtFICjvouw9Ak7tdamVGPAZevpNA/ONNq3lnElWVk6qVPLhIe7Nl+vluBcRUmXeAr7I5R4MLzuE5Dd6sUwlhqFqFNG29ruU2IXTjkzJ76XyGk6hwtzKNAp3Bw6jzoWqeA64V0QNCgtEy34dAf7e1JyUFzxJ32II00V1KJ2BlEKRlUYgISseaxiM3WyqIW41oZRFImM9Rrv5s234BcE0c4wNEz5hEeqY4Gu71sDaA4cFt89s0ehhpvf9rxJDXm8JscrtFpclvBXzmYPiZEsoiBuH9PJ6/Uz/wY4f12NbX/YaJhjKqrn2Kt0xpNks6xRTtgkc/cuE8Jmf0vyiMx9iH1LxNPPzGtrOa/ZPJCqoSIGNgGzajJ2RA9ZX36Mt5GptA7FHUhMaqu8Zl4GEEF93GGT09V1PXAT8pq1vlNxHzIc6s6adeV6bmvvgQT8vxe+cB0snmJtUznUbrfWhWzwfNPgPiH/KU5cQTgLG+QQ8AXQmdZNxhYPIfuFFDC8jd0xjWulNt1THcIpz5UI5PWJlajeAg74jbCChk434l5T410fkZ9nXL0xxacAqolp+ssWJc99YBcsa0e9JLqsTl/dM4oT9bcySE3Ejc2Fm+SaJHAjoeKZX4uC3n8xfjuIY8jmDmRrHIhhm+/67BVSTEs4F5CaugR6LmS6LPTj+RHQOQ4V2EuRxtanSnk16RWB1Brf0fx+2WILpAmCo5hhOVk0/RKohBAZjUhiNi5cAAkeOzI7TghSSCK3EN7GVHijUgmgvffqLEBUwVHEcXNO810I903lp9VqeJAQNWkpTV9s 6KFJ600n 90h+HeqkuHMeyhnqcB3KeEuENgfeUXyvT+BLNv9fJTRyMg+tc0U+mFTJ3RAWuxhPRiH1x0l9RntkXthd8l3GzOcN6K0lMQBumHAYxxwZyqNSADVBDzcbBtAvoF0NscTbBPR8qHfGFmJ1EsqHyJlQqTyQoifkXUx8ws7e8ExOtc2UuulUKCQW2Zlbk2yi/1dyFvZkF 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 shmem_alloc_folio() to take a order and use folio_alloc_mpol() helper, then directly use it for normal or large folio to cleanup code. Signed-off-by: Kefeng Wang --- mm/shmem.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index f5d60436b604..c950d4b25338 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1603,32 +1603,18 @@ static gfp_t limit_gfp_mask(gfp_t huge_gfp, gfp_t limit_gfp) return result; } -static struct folio *shmem_alloc_hugefolio(gfp_t gfp, +static struct folio *shmem_alloc_folio(gfp_t gfp, int order, struct shmem_inode_info *info, pgoff_t index) { struct mempolicy *mpol; pgoff_t ilx; - struct page *page; - - mpol = shmem_get_pgoff_policy(info, index, HPAGE_PMD_ORDER, &ilx); - page = alloc_pages_mpol(gfp, HPAGE_PMD_ORDER, mpol, ilx, numa_node_id()); - mpol_cond_put(mpol); - - return page_rmappable_folio(page); -} - -static struct folio *shmem_alloc_folio(gfp_t gfp, - struct shmem_inode_info *info, pgoff_t index) -{ - struct mempolicy *mpol; - pgoff_t ilx; - struct page *page; + struct folio *folio; - mpol = shmem_get_pgoff_policy(info, index, 0, &ilx); - page = alloc_pages_mpol(gfp, 0, mpol, ilx, numa_node_id()); + mpol = shmem_get_pgoff_policy(info, index, order, &ilx); + folio = folio_alloc_mpol(gfp, order, mpol, ilx, numa_node_id()); mpol_cond_put(mpol); - return (struct folio *)page; + return folio; } static struct folio *shmem_alloc_and_add_folio(gfp_t gfp, @@ -1660,12 +1646,12 @@ static struct folio *shmem_alloc_and_add_folio(gfp_t gfp, index + HPAGE_PMD_NR - 1, XA_PRESENT)) return ERR_PTR(-E2BIG); - folio = shmem_alloc_hugefolio(gfp, info, index); + folio = shmem_alloc_folio(gfp, HPAGE_PMD_ORDER, info, index); if (!folio) count_vm_event(THP_FILE_FALLBACK); } else { pages = 1; - folio = shmem_alloc_folio(gfp, info, index); + folio = shmem_alloc_folio(gfp, 0, info, index); } if (!folio) return ERR_PTR(-ENOMEM); @@ -1765,7 +1751,7 @@ static int shmem_replace_folio(struct folio **foliop, gfp_t gfp, */ gfp &= ~GFP_CONSTRAINT_MASK; VM_BUG_ON_FOLIO(folio_test_large(old), old); - new = shmem_alloc_folio(gfp, info, index); + new = shmem_alloc_folio(gfp, 0, info, index); if (!new) return -ENOMEM; @@ -2633,7 +2619,7 @@ int shmem_mfill_atomic_pte(pmd_t *dst_pmd, if (!*foliop) { ret = -ENOMEM; - folio = shmem_alloc_folio(gfp, info, pgoff); + folio = shmem_alloc_folio(gfp, 0, info, pgoff); if (!folio) goto out_unacct_blocks; -- 2.41.0