Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp3137704lqp; Mon, 25 Mar 2024 23:45:01 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWJ6LkTUSkTshuGEnZZ9OUMX+hmqe8qCgS4xm8h9EzRuswNCMIDz1uC2RTYcc7zRD00EDX1nFh0bDgOxslNu8e3qvOCPCI9fSWxN156tA== X-Google-Smtp-Source: AGHT+IERMjakrHDmeyZ5kHo5OUGfSLF+/n43sHIh9UNLJuRhdpBP0zPM/89wkvLneZGmXnG+/9MG X-Received: by 2002:a25:a2c6:0:b0:dcd:1d44:f6c1 with SMTP id c6-20020a25a2c6000000b00dcd1d44f6c1mr6296463ybn.16.1711435501145; Mon, 25 Mar 2024 23:45:01 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711435501; cv=pass; d=google.com; s=arc-20160816; b=jIM7J0P2E1blZHlMwoC/ReYDmY452TNuvkrWIMib//Q5eoZ9gFuiYtcMZqR4lIA45e l2tHM/Tkur7mb+CkEMiGf4Me0d8MbJFbeWePyX7dNIB2Y45TBQMWZj2ugceYc/bqtO9I DjmJpfJdndAAfsScckAdYsQixbSVuLj6ibYYK9w9cHXnILzPEpP+rkUBsNqIg+y1RbtJ FSqec8aysoJknPnC20I13yR0T+Fq+nvOlt07TkD7XwuubhTvTG+1l/4uFM74bxjZFGpE eqle85oNLw30DLWHitJHQsgr2LYEvyYCsXDnoS1CuRK6qo14HnLQktoasYb7h1SeYcTO 2bPQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=eeQyS59QADuwb8JWaJdN+KO+aCl4nRYzVEA7nFD3Qyg=; fh=KGm8PY/IetsVJWKK6UNUWrv2dd7n9qXKtm51kzc4YLY=; b=L/w+8mneeyMdM3bHtPkKTJzNNGkOCN2CgmcUV20Y1whuWcJDB8IlfyUJ5tdXL6nTaK gnz5N4q59gATFRKK1NKdZIaXumwLeMrNDG0/mFt/S+1vAwBRLY5O3po3eJTenr+jEApy GZ1bAi5gF/MoaSHvTgxvYWNIG0U7UUaewtVvG5hufMk9XwyvjDpe6Mmpdn8DqDq4E1BP MckNGhIw2uWDgNss5t04fTNw7acUU9kbA6uf1hEckLLoDfmB6Z0ibDncDvshQ2oaRdTH NfojyExJorlPGkeWwSY3peRUDtgzDnTxYi6194sJkXUOIB+ITWoyvpR1LvIxfS5LNOho eUyw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=D0c1jH74; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-118426-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-118426-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id i17-20020a63e451000000b005d7bf204e22si9108513pgk.859.2024.03.25.23.45.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 23:45:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-118426-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=D0c1jH74; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-118426-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-118426-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id B9F872A53CC for ; Tue, 26 Mar 2024 06:45:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C4913823D1; Tue, 26 Mar 2024 06:44:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="D0c1jH74" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E085954BFF for ; Tue, 26 Mar 2024 06:44:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711435494; cv=none; b=XfarBpHpesLToSeYruSuq+wbNsVROk29H0hWzKfJgKPLi1CWO7oHjWIXwxlGGi/XVYIn5QrIgdTrNio9KcK3mfiOpHoIrprUz4x5FMA9ALnSPBwXVthjV5V4n5r4Vq08uNX3FFfqAe0JY5rqDhdjjLgJYHstOykyaHkc3aYX/vg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711435494; c=relaxed/simple; bh=3CyPtQL/V1IOnl6rwkcMU6bxDU1vSxf5XUjUQAShHFQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=F5WyN9Amm6Pu8iSygT5Ff2GgF2nqPfBBX6TV8HzQStJ1/WVQwnCjokVixk4iTnqVkcFZRYCwZ8CYknYUUXpTipfKyElKANNkZtYe8Nzn6Xz+t9BkNqG20yi0SgL6GhIc3SEfk9xcUL0aFKNqnVJcf7FHBb4eW5LwE9py4YnCF+E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D0c1jH74; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id DDC90C433C7; Tue, 26 Mar 2024 06:44:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711435493; bh=3CyPtQL/V1IOnl6rwkcMU6bxDU1vSxf5XUjUQAShHFQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=D0c1jH74lsUlDSMa3ELkDTKijMkqveJm6LsL81Sx0ma+ccTrHUXrcHMegPgew044d iHcoNpWTVW9Tkb+KjBc+wjuiql254mwWnFH+IEE6JTyzWP69iALX4w2WXu9arsnVTX KLPiskp39LfseoJhfHX/TJ3W859qKlr3qWYamIyVEjiKoUBrmM0vO3DjzURvmv4lC/ darEIMfVk+HuS/rcSTqIB05xbymnlelCexgKHmoWGf3MdT5O3cnggk6ZVmRONOtf7q CCF9JLf4pC40PBjg7pRxuCL2lYk5TdfyaluGh4yRCT3oEwBfvalvFyyEdDZE2VBrWK 7ornIKdTuapAw== Date: Tue, 26 Mar 2024 08:44:11 +0200 From: Mike Rapoport To: Baoquan He Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, akpm@linux-foundation.org Subject: Re: [PATCH v2 1/6] x86: remove unneeded memblock_find_dma_reserve() Message-ID: References: <20240325145646.1044760-1-bhe@redhat.com> <20240325145646.1044760-2-bhe@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240325145646.1044760-2-bhe@redhat.com> On Mon, Mar 25, 2024 at 10:56:41PM +0800, Baoquan He wrote: > Variable dma_reserve and its usage was introduced in commit 0e0b864e069c > ("[PATCH] Account for memmap and optionally the kernel image as holes"). > Its original purpose was to accounting for the reserved pages in DMA > zone to make DMA zone's watermarks calculation more accurate on x86. > > However, currently there's zone->managed_pages to account for all > available pages for buddy, zone->present_pages to account for all > present physical pages in zone. What is more important, on x86, > calculating and setting the zone->managed_pages is a temporary move, > all zone's managed_pages will be zeroed out and reset to the actual > value according to how many pages are added to buddy allocator in > mem_init(). Before mem_init(), no buddy alloction is requested. And > zone's pcp and watermark setting are all done after mem_init(). So, > no need to worry about the DMA zone's setting accuracy during > free_area_init(). > > Hence, remove memblock_find_dma_reserve() to stop calculating and > setting dma_reserve. > > Signed-off-by: Baoquan He Reviewed-by: Mike Rapoport (IBM) > --- > arch/x86/include/asm/pgtable.h | 1 - > arch/x86/kernel/setup.c | 2 -- > arch/x86/mm/init.c | 47 ---------------------------------- > 3 files changed, 50 deletions(-) > > diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h > index 315535ffb258..cefc7a84f7a4 100644 > --- a/arch/x86/include/asm/pgtable.h > +++ b/arch/x86/include/asm/pgtable.h > @@ -1200,7 +1200,6 @@ static inline int pgd_none(pgd_t pgd) > extern int direct_gbpages; > void init_mem_mapping(void); > void early_alloc_pgt_buf(void); > -extern void memblock_find_dma_reserve(void); > void __init poking_init(void); > unsigned long init_memory_mapping(unsigned long start, > unsigned long end, pgprot_t prot); > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c > index ef206500ed6f..74873bd04ad1 100644 > --- a/arch/x86/kernel/setup.c > +++ b/arch/x86/kernel/setup.c > @@ -1106,8 +1106,6 @@ void __init setup_arch(char **cmdline_p) > */ > arch_reserve_crashkernel(); > > - memblock_find_dma_reserve(); > - > if (!early_xdbc_setup_hardware()) > early_xdbc_register_console(); > > diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c > index 679893ea5e68..615f0bf4bda6 100644 > --- a/arch/x86/mm/init.c > +++ b/arch/x86/mm/init.c > @@ -990,53 +990,6 @@ void __init free_initrd_mem(unsigned long start, unsigned long end) > } > #endif > > -/* > - * Calculate the precise size of the DMA zone (first 16 MB of RAM), > - * and pass it to the MM layer - to help it set zone watermarks more > - * accurately. > - * > - * Done on 64-bit systems only for the time being, although 32-bit systems > - * might benefit from this as well. > - */ > -void __init memblock_find_dma_reserve(void) > -{ > -#ifdef CONFIG_X86_64 > - u64 nr_pages = 0, nr_free_pages = 0; > - unsigned long start_pfn, end_pfn; > - phys_addr_t start_addr, end_addr; > - int i; > - u64 u; > - > - /* > - * Iterate over all memory ranges (free and reserved ones alike), > - * to calculate the total number of pages in the first 16 MB of RAM: > - */ > - nr_pages = 0; > - for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, NULL) { > - start_pfn = min(start_pfn, MAX_DMA_PFN); > - end_pfn = min(end_pfn, MAX_DMA_PFN); > - > - nr_pages += end_pfn - start_pfn; > - } > - > - /* > - * Iterate over free memory ranges to calculate the number of free > - * pages in the DMA zone, while not counting potential partial > - * pages at the beginning or the end of the range: > - */ > - nr_free_pages = 0; > - for_each_free_mem_range(u, NUMA_NO_NODE, MEMBLOCK_NONE, &start_addr, &end_addr, NULL) { > - start_pfn = min_t(unsigned long, PFN_UP(start_addr), MAX_DMA_PFN); > - end_pfn = min_t(unsigned long, PFN_DOWN(end_addr), MAX_DMA_PFN); > - > - if (start_pfn < end_pfn) > - nr_free_pages += end_pfn - start_pfn; > - } > - > - set_dma_reserve(nr_pages - nr_free_pages); > -#endif > -} > - > void __init zone_sizes_init(void) > { > unsigned long max_zone_pfns[MAX_NR_ZONES]; > -- > 2.41.0 > -- Sincerely yours, Mike.