Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp331250ybb; Fri, 3 Apr 2020 03:38:52 -0700 (PDT) X-Google-Smtp-Source: APiQypIqVYYoNA8uQxTHJuKYGifH/PCOjk2ExyIDBpD4LcjO0tvK/gf9kL/PgJzaxKGuTW2G5636 X-Received: by 2002:a9d:748e:: with SMTP id t14mr6103749otk.334.1585910332820; Fri, 03 Apr 2020 03:38:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585910332; cv=none; d=google.com; s=arc-20160816; b=NPfbH6jChdHYSUozoKjBiDgCeeL3q7h95AwJg3Fp9dWJ2jb+rDxFR4FUXXD/65IgOt 8JesAdBcT5F6m3yXLBUQ3de8Q0Szm7kfTcb0Pj0dHgsUxbeyx04FVkWfV6h1BLlfMsrI flVSl03xL213Eu5T5EJhcFoH0HOA8SlUCPBrm8mWnliwiaShCxYKvjKfXG+ofScVVST+ rQpS9XM9OpQehhPx5imsWghBLOBRTNRgT9FwaOJ3H4F0R8wAWShv99ZjKro1QLMDWFBJ xh7RBg5lVXULjXua/kLywPiJQDQqCsWYhvOlucXjLzQxoTh7AwnOEWgnkv4FRIv9ET8E lcdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=T00fOEaSfVQZvteNm45+ejbBVsW27ZWpyHUWye58+sw=; b=NadcnEsayQZ5jcv6z9ym89FjCb2i14/ww0aR0vQYYD8GXTWRKgKmmVCept6gFJB6yR EL6d/iPr+sa2C1ZYNuxnWdeRV5B+/qzp+1jnCBisZvD1Iv8bnlyCflzpyW1zFN3+SdXq 3SOSStCYdCBaVpvEbCBG1HsZhxdunBcM4O2wNV5WXBcDiGVO8iJ9ni1EQ8Gb47l+MaTM TP8knG8IQWN+d2cecN6HLljilpz40NHxgu1cWQYuzBguFXOQNHui9EJg7Uli+kvuNrjl /IFnzgPmCbhiSJ3MhvweGYZCVMUbHRyQrZhE7BtuOPwCTSoFtk3Cs49b6Nx/d2ruaHH9 i75g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z17si3634846oth.282.2020.04.03.03.38.40; Fri, 03 Apr 2020 03:38:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390315AbgDCKgz (ORCPT + 99 others); Fri, 3 Apr 2020 06:36:55 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:33678 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727774AbgDCKgz (ORCPT ); Fri, 3 Apr 2020 06:36:55 -0400 Received: by mail-wr1-f67.google.com with SMTP id a25so7970537wrd.0 for ; Fri, 03 Apr 2020 03:36:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=T00fOEaSfVQZvteNm45+ejbBVsW27ZWpyHUWye58+sw=; b=PyY5bOnZdGFztXNhY3xt7ePVdjZOFxlp7rvYXa+XQQ/vzPCd5wFkGEbwZr520LVKHH 5ujbAb3f+jlKH2hCKY2FZijosINQX03SPTJKfIRq9IFvr+RwWQRAOqfckA2jjXRqg2I5 vMyl0FaQX+YGP59jxs2QFLjNCGYd+aDjgLvYBV0rxvkOOHgILdZpmJkM3lI9Qnb/u/Vr XC9EziKsgrviLiJIJAMoVuOV5KUB8Jtg0CGhKmErW6tLlpWnahZJeZeKzOl/5fkjFhXW 8pj6mVRrgDzWbBvKVHx8a4cNthREq1VHLVkDrGnLVDXlFEP+mr+rJa3t3TR41SF7/ipv u4lA== X-Gm-Message-State: AGi0PuanAN6zCRgLgLDpKopoi1+7uGhS4Mb8kwbf/sVE/WrJizcg1aPO +EoC4cm5vz+t6BzBNLlVTp4= X-Received: by 2002:adf:91c3:: with SMTP id 61mr8191556wri.384.1585910213400; Fri, 03 Apr 2020 03:36:53 -0700 (PDT) Received: from localhost (ip-37-188-180-223.eurotel.cz. [37.188.180.223]) by smtp.gmail.com with ESMTPSA id g186sm11418219wmg.36.2020.04.03.03.36.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 03:36:52 -0700 (PDT) Date: Fri, 3 Apr 2020 12:36:51 +0200 From: Michal Hocko To: Aslan Bakirov Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-team@fb.com, riel@surriel.com, guro@fb.com, hannes@cmpxchg.org Subject: Re: [PATCH 2/2] mm: hugetlb: Use node interface of cma Message-ID: <20200403103651.GA22681@dhcp22.suse.cz> References: <20200403101843.406634-1-aslan@fb.com> <20200403101843.406634-2-aslan@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200403101843.406634-2-aslan@fb.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 03-04-20 03:18:43, Aslan Bakirov wrote: > With introduction of numa node interface for CMA, this patch is for using that > interface for allocating memory on numa nodes if NUMA is configured. > This will be more efficient and cleaner because first, instead of iterating > mem range of each numa node, cma_declare_contigueous_nid() will do > its own address finding if we pass 0 for both min_pfn and max_pfn, > second, it can also handle caseswhere NUMA is not configured > by passing NUMA_NO_NODE as an argument. > > In addition, checking if desired size of memory is available or not, > is happening in cma_declare_contiguous_nid() because base and > limit will be determined there, since 0(any) for base and > 0(any) for limit is passed as argument to the function. I have asked to merge this one with the original patch from Roman several times but it seems this is not going to happen. But whatever. You have likely missed my review feedback http://lkml.kernel.org/r/20200402172404.GV22681@dhcp22.suse.cz. The ifdef CONFIG_NUMA for the nid definition is pointless. > Signed-off-by: Aslan Bakirov After fixing that, feel free to add Acked-by: Michal Hocko > --- > mm/hugetlb.c | 40 +++++++++++----------------------------- > 1 file changed, 11 insertions(+), 29 deletions(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index b9f0c903c4cf..62989220c4ff 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -5573,42 +5573,24 @@ void __init hugetlb_cma_reserve(int order) > > reserved = 0; > for_each_node_state(nid, N_ONLINE) { > - unsigned long min_pfn = 0, max_pfn = 0; > int res; > -#ifdef CONFIG_NUMA > - unsigned long start_pfn, end_pfn; > - int i; > > - for_each_mem_pfn_range(i, nid, &start_pfn, &end_pfn, NULL) { > - if (!min_pfn) > - min_pfn = start_pfn; > - max_pfn = end_pfn; > - } > -#else > - min_pfn = min_low_pfn; > - max_pfn = max_low_pfn; > -#endif > size = min(per_node, hugetlb_cma_size - reserved); > size = round_up(size, PAGE_SIZE << order); > - > - if (size > ((max_pfn - min_pfn) << PAGE_SHIFT) / 2) { > - pr_warn("hugetlb_cma: cma_area is too big, please try less than %lu MiB\n", > - round_down(((max_pfn - min_pfn) << PAGE_SHIFT) * > - nr_online_nodes / 2 / SZ_1M, > - PAGE_SIZE << order)); > - break; > - } > - > - res = cma_declare_contiguous(PFN_PHYS(min_pfn), size, > - PFN_PHYS(max_pfn), > + > + > +#ifndef CONFIG_NUMA > + nid = NUMA_NO_NODE > +#endif > + res = cma_declare_contiguous_nid(0, size, > + 0, > PAGE_SIZE << order, > 0, false, > - "hugetlb", &hugetlb_cma[nid]); > + "hugetlb", &hugetlb_cma[nid], nid); > + > if (res) { > - phys_addr_t begpa = PFN_PHYS(min_pfn); > - phys_addr_t endpa = PFN_PHYS(max_pfn); > - pr_warn("%s: reservation failed: err %d, node %d, [%pap, %pap)\n", > - __func__, res, nid, &begpa, &endpa); > + pr_warn("%s: reservation failed: err %d, node %d\n", > + __func__, res, nid); > break; > } > > -- > 2.24.1 -- Michal Hocko SUSE Labs