Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1274330pxb; Fri, 6 Nov 2020 05:47:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJzZmkjLyQslWuP/w1Q1YAgPIT8pEDs0LTcKvNvnxxvrSVdlS/8mvRxPKHXgqo92Lb+sS1xS X-Received: by 2002:a17:906:2b4e:: with SMTP id b14mr2227057ejg.354.1604670446029; Fri, 06 Nov 2020 05:47:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604670446; cv=none; d=google.com; s=arc-20160816; b=tgT6F/6w9krz77/rZM3pPK/RX2Z6jodDBaluU1aufeUnvjrw2NJBiddpRXNHiHkTv5 zr9q3bMl7O/t80SaVP6ytkBZQLJzkCudKtqh0U6PKjmj7BlG7huHwENs7ZTiuiMGeHv7 0dpJG/W80rk4Xv+sB1tuug20Myoc/6AtfOzaIe6nCqOuIz+2u4VYjA7zhfmXyNKRGokr ZXpXG+/z8gK4x1AGM4lDI3UxQrja6t9NnONozDkZ0wgUoN+nO+zxe4RQHQ1tO7B6qmhi d2QneNGd+WoDoh9zmHD7YSWq7aVeWtAY8XzqinpCzeXTtW1/KNmudzcEd8dckAtCTFtR Rvzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=ooD4/ZaeubyOcIsbuIuBHOxPeEIWaXWk9pwy1O/0ETw=; b=H9r1w76v7GOjHL96kQGrjebKqZHgv8JO2Jkx1WN7cFab6Gis0xND2WPPULRSkxTnws aLsfVuSDm0NKghTTBzn+M6shmD0QSL/9ikGpnt8PcVspP4mFtXtn8Pp7nwO/D8MRq9Bt ubgeOnl+6ZRoIU+wYa7U63xb/jkz6Fd9HWqinEOVqvKrFEQC7R74SvRpkTMI1hilTwPZ ljv0UtBSN/k9ht3TsxdNCnCvmfMV8IWRsnpQDrUyMlDDLt5MJQPcO5MKDbDDd7TTcXdm Xq1pPj3l2sJ5EF+pCrgT31MhwMM6DsCIeuCyDO8pAmIpeGxXsq6wDYadXpoJvYBRT5fX k7DQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=gZeuOyvd; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p5si423345edq.28.2020.11.06.05.47.02; Fri, 06 Nov 2020 05:47:26 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=gZeuOyvd; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727464AbgKFNn3 (ORCPT + 99 others); Fri, 6 Nov 2020 08:43:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:48162 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727214AbgKFNn2 (ORCPT ); Fri, 6 Nov 2020 08:43:28 -0500 Received: from willie-the-truck (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A1AB02065D; Fri, 6 Nov 2020 13:43:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604670207; bh=jefm49eVzblLQeGn6k0KezjqjqWh7T9kQPj0dNWlfP0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gZeuOyvdifyKP28jzDCw6ogVkHhnk+aDcw3QHZF03dtuaynqZ/ZSQ3ngXcG2nJ/vC /05ThmAr/P4yqBqffIIF5J5yXnp/1Du4hTNdsohhA7XwjAyXjsdwkKSHBUFIPg936k 3DqM7mnX/AYM4M1qqpywBP/9FINKDRwY2m8Hzjlk= Date: Fri, 6 Nov 2020 13:43:22 +0000 From: Will Deacon To: Sudarshan Rajagopalan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Gavin Shan , Anshuman Khandual , Catalin Marinas , Mark Rutland , Logan Gunthorpe , David Hildenbrand , Andrew Morton , Steven Price Subject: Re: [PATCH v4] arm64/mm: add fallback option to allocate virtually contiguous memory Message-ID: <20201106134321.GA10981@willie-the-truck> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 16, 2020 at 11:56:56AM -0700, Sudarshan Rajagopalan wrote: > When section mappings are enabled, we allocate vmemmap pages from > physically continuous memory of size PMD_SIZE using > vmemmap_alloc_block_buf(). Section mappings are good to reduce TLB > pressure. But when system is highly fragmented and memory blocks are > being hot-added at runtime, its possible that such physically continuous > memory allocations can fail. Rather than failing the memory hot-add > procedure, add a fallback option to allocate vmemmap pages from > discontinuous pages using vmemmap_populate_basepages(). > > Signed-off-by: Sudarshan Rajagopalan > Reviewed-by: Gavin Shan > Reviewed-by: Anshuman Khandual > Cc: Catalin Marinas > Cc: Will Deacon > Cc: Anshuman Khandual > Cc: Mark Rutland > Cc: Logan Gunthorpe > Cc: David Hildenbrand > Cc: Andrew Morton > Cc: Steven Price > --- > arch/arm64/mm/mmu.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > index 75df62fea1b6..44486fd0e883 100644 > --- a/arch/arm64/mm/mmu.c > +++ b/arch/arm64/mm/mmu.c > @@ -1121,8 +1121,11 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, > void *p = NULL; > > p = vmemmap_alloc_block_buf(PMD_SIZE, node, altmap); > - if (!p) > - return -ENOMEM; > + if (!p) { > + if (vmemmap_populate_basepages(addr, next, node, altmap)) > + return -ENOMEM; > + continue; > + } Looks fine to me: Acked-by: Will Deacon Will