Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp1596132pxb; Thu, 28 Oct 2021 06:42:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBr3PwOg9Z5tzDlDBMXYB0IYRORlVMgeCSPRb6Nk/7huRpoFrpB5/BVvlIRH4N3TRU3B/Y X-Received: by 2002:a17:906:4895:: with SMTP id v21mr5746083ejq.299.1635428522264; Thu, 28 Oct 2021 06:42:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635428522; cv=none; d=google.com; s=arc-20160816; b=hcH0V6x+phNb7g0iU7UNbnkiefb25eaytVSNIA5WvdIaXHdh7nG13h+55ZzpCouNAN jbUUhcEjT8gviEEhEmji5MBPdPZ8DAmkxcw50RKoy630gmR7o7apk9ElUTfhMc0WVwmN 5YrCQKq+HlL3xKd7Tcsv31yqHk27VSpr2c8AZEDYT58BN68jbutgoru3R4PYb+Imaxns qUHGM1ogI04U/A5G1rPl3XG2jRVZQQPxOtl0qXtlkt7Tlr3pzq26FZN9Q/qzCN1zy/fP DWEon7YBq2rP/tpRF/1I/UrKqid2a77Z8cljfOuV8adAlvIuQPu6GzOJhjTgNM3EV4++ EjCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=eZjikVoELqXi31Sj5JJ+izQ0QCTh1dQN8IPIvURvEgQ=; b=uy5aNtcVjEpU3iWFZx9foMwMIpcgapBgmvzGVauUBCgS35dLA9tmYc8SUTs/5mMQuB 8Q/5eLz6IocwjmkiiR2s3UtuRF5NNYOiORQUf8l4umx2FajLTznvNNHuiavRehghnb2H lUCMUtdTIPJm+QxbL8TDEMvkJX7mFpuO6X0Jx9U5eVOIF7iXWvYMu3AsCvSnPe9lkzRT zgYqTuKsoThVCbG9SRkiPHwp5K/Oe7/m3UR2rQih7yOy1gBTs1ovdCBQW4fXebWGUaPH WBfzARfR5/vz6F8yjYeSNOdhmG3YsOxYJtWCsYoN0lZKS+FeqJroKmzcVwRBpaK4yw1q Nh1A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c12si4944694edx.6.2021.10.28.06.41.37; Thu, 28 Oct 2021 06:42:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230195AbhJ1Nlr (ORCPT + 99 others); Thu, 28 Oct 2021 09:41:47 -0400 Received: from szxga03-in.huawei.com ([45.249.212.189]:26202 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229887AbhJ1Nlq (ORCPT ); Thu, 28 Oct 2021 09:41:46 -0400 Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.57]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4Hg67d1vZPz8tVn; Thu, 28 Oct 2021 21:37:49 +0800 (CST) Received: from dggpemm500002.china.huawei.com (7.185.36.229) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.15; Thu, 28 Oct 2021 21:39:12 +0800 Received: from [10.174.178.178] (10.174.178.178) by dggpemm500002.china.huawei.com (7.185.36.229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.15; Thu, 28 Oct 2021 21:39:11 +0800 Message-ID: <505c2aa3-2a36-3981-786e-4d192bc6f8f2@huawei.com> Date: Thu, 28 Oct 2021 21:39:10 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.0.3 Subject: Re: [PATCH v3 2/2] mm/vmalloc: introduce alloc_pages_bulk_array_mempolicy to accelerate memory allocation To: Andrew Morton CC: , , , , , , , References: <20211021080744.874701-1-chenwandun@huawei.com> <20211021080744.874701-3-chenwandun@huawei.com> <20211021202652.ff8568bd5d58fbcf32946f83@linux-foundation.org> From: Chen Wandun In-Reply-To: <20211021202652.ff8568bd5d58fbcf32946f83@linux-foundation.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.178.178] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggpemm500002.china.huawei.com (7.185.36.229) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2021/10/22 11:26, Andrew Morton 写道: > On Thu, 21 Oct 2021 16:07:44 +0800 Chen Wandun wrote: > >> It > > What is "it"? it == > [PATCH] mm/vmalloc: fix numa spreading for large hash tables; > >> will cause significant performance regressions in some situations >> as Andrew mentioned in [1]. The main situation is vmalloc, vmalloc >> will allocate pages with NUMA_NO_NODE by default, that will result >> in alloc page one by one; >> >> In order to solve this, __alloc_pages_bulk and mempolicy should be >> considered at the same time. >> >> 1) If node is specified in memory allocation request, it will alloc >> all pages by __alloc_pages_bulk. >> >> 2) If interleaving allocate memory, it will cauculate how many pages >> should be allocated in each node, and use __alloc_pages_bulk to alloc >> pages in each node. > > This v3 patch didn't incorporate my two fixes, below. It is usual to > incorporate such fixes prior to resending. I have retained those two > fixes, now against v3. > > > From: Andrew Morton > Subject: mm-vmalloc-introduce-alloc_pages_bulk_array_mempolicy-to-accelerate-memory-allocation-fix > > make two functions static > > Cc: Chen Wandun > Cc: Eric Dumazet > Cc: Hanjun Guo > Cc: Kefeng Wang > Cc: Nicholas Piggin > Cc: Shakeel Butt > Cc: Uladzislau Rezki (Sony) > Signed-off-by: Andrew Morton > --- > > mm/mempolicy.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > --- a/mm/mempolicy.c~mm-vmalloc-introduce-alloc_pages_bulk_array_mempolicy-to-accelerate-memory-allocation-fix > +++ a/mm/mempolicy.c > @@ -2196,7 +2196,7 @@ struct page *alloc_pages(gfp_t gfp, unsi > } > EXPORT_SYMBOL(alloc_pages); > > -unsigned long alloc_pages_bulk_array_interleave(gfp_t gfp, > +static unsigned long alloc_pages_bulk_array_interleave(gfp_t gfp, > struct mempolicy *pol, unsigned long nr_pages, > struct page **page_array) > { > @@ -2231,7 +2231,7 @@ unsigned long alloc_pages_bulk_array_int > return total_allocated; > } > > -unsigned long alloc_pages_bulk_array_preferred_many(gfp_t gfp, int nid, > +static unsigned long alloc_pages_bulk_array_preferred_many(gfp_t gfp, int nid, > struct mempolicy *pol, unsigned long nr_pages, > struct page **page_array) > { > _ > > > > > From: Andrew Morton > Subject: mm-vmalloc-introduce-alloc_pages_bulk_array_mempolicy-to-accelerate-memory-allocation-fix-2 > > fix CONFIG_NUMA=n build. alloc_pages_bulk_array_mempolicy() was undefined > > Cc: Chen Wandun > Cc: Eric Dumazet > Cc: Hanjun Guo > Cc: Kefeng Wang > Cc: Nicholas Piggin > Cc: Uladzislau Rezki (Sony) > Signed-off-by: Andrew Morton > --- > > mm/vmalloc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/mm/vmalloc.c~mm-vmalloc-introduce-alloc_pages_bulk_array_mempolicy-to-accelerate-memory-allocation-fix-2 > +++ a/mm/vmalloc.c > @@ -2860,7 +2860,7 @@ vm_area_alloc_pages(gfp_t gfp, int nid, > * otherwise memory may be allocated in only one node, > * but mempolcy want to alloc memory by interleaving. > */ > - if (nid == NUMA_NO_NODE) > + if (IS_ENABLED(CONFIG_NUMA) && nid == NUMA_NO_NODE) > nr = alloc_pages_bulk_array_mempolicy(gfp, > nr_pages_request, > pages + nr_allocated); > _ > > . >