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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BA785C25B76 for ; Mon, 3 Jun 2024 10:45:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=D+KBLL3fPKxNwgcNYYXavjTKF41+gMO9WMC/+xe+/eY=; b=uk1Q+e+M9oq87u E4wNSuFFtnpj+yfWrloOZUxAkBogaEM8+Tzll4l27dcyX9qCv6+LrvGP4EBUYje3q9CMZlLe2rAD2 nJbjvqSFZAESUQ7L0i1GjQZkBkiOftewre6P8AViJSotQV3aD7fAd5YeK+EpAgNRib76xIW2RZT5v bb+N1LelbL5uZsO3Rj03ExoqE4/NIbdz30KfZXxRsBMqtpK5AJNm1M7GCrSH4AjESh+4zjNAV+jpt nRXbiM7eUlD4NnM7gaUcXg04Eve8VE7yqV5wnaV4vWvqg8DvYbOqsg3ulCz3YCL0Jk2BxkNj/Naet cPRNhZklBHkc/F7UMV6g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sE5BX-0000000GPnC-0k4W; Mon, 03 Jun 2024 10:45:03 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sE5BT-0000000GPmZ-41Ou for linux-arm-kernel@lists.infradead.org; Mon, 03 Jun 2024 10:45:01 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 221E560D2D; Mon, 3 Jun 2024 10:44:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B009C2BD10; Mon, 3 Jun 2024 10:44:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717411498; bh=EHLo1UVVyz3p/w37rlTPUbrjybRxQnqVItAP1nJHDZk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qZ4Qu3My9+JrHqEu2/3N3C5OZTg4+btjgXxNkEF8QhqXpso/FTlgnfy0QR+egq+7g 2ZH7U5zPe5gMJ3J4r0i18F8ZpMcFvhNq3udMkJUDPgLrFxSk8NtW8BVwBEedQ7ndj/ 8vn3vBywwa6caiqzJag6hutf9frN/AL+P0cENIbb6fnoH4OipBo8k+qCFYREjxoaf5 /gQFPHrkAQUob3BrZ0tm59j3mpK0GOmQDXTnQAQHtoYFxCmPv1aoWErcKfrWmDTtBB 53svt+j2uLGaz99En/F4EqIeDFkDe6BvDiepqCMvvR+ntamp8V2W1JhyWRhrqCUyYw yxeWhWq8mQsSg== Date: Mon, 3 Jun 2024 13:43:01 +0300 From: Mike Rapoport To: David Hildenbrand Cc: Jonathan Cameron , Dan Williams , linux-cxl@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sudeep Holla , Andrew Morton , Will Deacon , Jia He , Mike Rapoport , linuxarm@huawei.com, catalin.marinas@arm.com, Anshuman.Khandual@arm.com, Yuquan Wang , Oscar Salvador , Lorenzo Pieralisi , James Morse Subject: Re: [RFC PATCH 8/8] HACK: mm: memory_hotplug: Drop memblock_phys_free() call in try_remove_memory() Message-ID: References: <20240529171236.32002-1-Jonathan.Cameron@huawei.com> <20240529171236.32002-9-Jonathan.Cameron@huawei.com> <92ea53c6-a93b-4ab8-8aec-7f88300576eb@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <92ea53c6-a93b-4ab8-8aec-7f88300576eb@redhat.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240603_034500_121229_507D423D X-CRM114-Status: GOOD ( 40.69 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Jun 03, 2024 at 11:14:00AM +0200, David Hildenbrand wrote: > On 03.06.24 09:57, Mike Rapoport wrote: > > On Fri, May 31, 2024 at 09:49:32AM +0200, David Hildenbrand wrote: > > > On 29.05.24 19:12, Jonathan Cameron wrote: > > > > I'm not sure what this is balancing, but it if is necessary then the reserved > > > > memblock approach can't be used to stash NUMA node assignments as after the > > > > first add / remove cycle the entry is dropped so not available if memory is > > > > re-added at the same HPA. > > > > > > > > This patch is here to hopefully spur comments on what this is there for! > > > > > > > > Signed-off-by: Jonathan Cameron > > > > --- > > > > mm/memory_hotplug.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > > > > index 431b1f6753c0..3d8dd4749dfc 100644 > > > > --- a/mm/memory_hotplug.c > > > > +++ b/mm/memory_hotplug.c > > > > @@ -2284,7 +2284,7 @@ static int __ref try_remove_memory(u64 start, u64 size) > > > > } > > > > if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK)) { > > > > - memblock_phys_free(start, size); > > > > + // memblock_phys_free(start, size); > > > > memblock_remove(start, size); > > > > } > > > > > > memblock_phys_free() works on memblock.reserved, memblock_remove() works on > > > memblock.memory. > > > > > > If you take a look at the doc at the top of memblock.c: > > > > > > memblock.memory: physical memory available to the system > > > memblock.reserved: regions that were allocated [during boot] > > > > > > > > > memblock.memory is supposed to be a superset of memblock.reserved. Your > > > > No it's not. > > memblock.reserved is more of "if there is memory, don't touch it". > > Then we should certainly clarify that in the comments! :P You are welcome to send a patch :-P > But for the memory hotunplug case, that's most likely why that code was > added. And it only deals with ordinary system RAM, not weird reservations > you describe below. The commit that added memblock_free() at the first place (f9126ab9241f ("memory-hotplug: fix wrong edge when hot add a new node")) does not really describe why that was required :( But at a quick glance it looks completely spurious. > > Some regions in memblock.reserved are boot time allocations and they are indeed a > > subset of memblock.memory, but some are reservations done by firmware (e.g. > > reserved memory in DT) that just might not have a corresponding regions in > > memblock.memory. It can happen for example, when the same firmware runs on > > devices with different memory configuration, but still wants to preserve > > some physical addresses. > > Could this happen with a good old BIOS as well? Just curious. Yes. E.g. for E820_TYPE_SOFT_RESERVED. > > > "hack" here indicates that you somehow would be relying on the opposite > > > being true, which indicates that you are doing the wrong thing. > > I'm not sure about that, I still have to digest the patches :) > > In any case, using "reserved" to store persistent data across plug/unplug > sounds wrong; but maybe I'm wrong :) > > -- > Cheers, > > David / dhildenb > -- Sincerely yours, Mike. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel