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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B4B2C54798 for ; Fri, 23 Feb 2024 15:53:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CDBB46B007B; Fri, 23 Feb 2024 10:53:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C645F6B007E; Fri, 23 Feb 2024 10:53:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B050D6B0080; Fri, 23 Feb 2024 10:53:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 99CCB6B007B for ; Fri, 23 Feb 2024 10:53:36 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 3C9181410EE for ; Fri, 23 Feb 2024 15:53:36 +0000 (UTC) X-FDA: 81823513632.30.E8374A9 Received: from smtp-fw-80007.amazon.com (smtp-fw-80007.amazon.com [99.78.197.218]) by imf13.hostedemail.com (Postfix) with ESMTP id 27BF720021 for ; Fri, 23 Feb 2024 15:53:33 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=YOmOFztb; spf=pass (imf13.hostedemail.com: domain of "prvs=7766f4395=ptyadav@amazon.de" designates 99.78.197.218 as permitted sender) smtp.mailfrom="prvs=7766f4395=ptyadav@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708703614; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=0WhTIN9W38rHyOc22G1vQ7ixEZgYslJzQI/6oPVT4RA=; b=e58j+3py9PeMbQjLZzZbtrYHAyY2T8KcMg1ClEqdhwtI/ifsW5rYp9n2Cr+ikValE5InT9 j35exzTfdgZjAm1gW+bzW6M2sphsA7mIbrh+AGCcgHPE91D60eO2HYkVbUMT7jmzA/VM0p mP2v1aZO9A+/8ZlwJkpvXB21G84ZZNM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708703614; a=rsa-sha256; cv=none; b=1WRrwXifAjqLoAU3fxilLBz53AFyDaBy50Sg7ljKxYX0QrneUOL1P8Xn/jfdeQR8XgXSgI 4Clnbte/tDtxui3rW7ZvGI9XUA/JU395CKCo1wssviqwgOZWA0CPNi8jzPA5W8r8tzx5nS ypsCEukPxfPx19LIt8Nk5t8xcMNUyYU= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=YOmOFztb; spf=pass (imf13.hostedemail.com: domain of "prvs=7766f4395=ptyadav@amazon.de" designates 99.78.197.218 as permitted sender) smtp.mailfrom="prvs=7766f4395=ptyadav@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1708703614; x=1740239614; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version; bh=0WhTIN9W38rHyOc22G1vQ7ixEZgYslJzQI/6oPVT4RA=; b=YOmOFztbHINaLKPAYWEO0tkXJZMXC0LkJ+5X5MMDKUumqQtiiYc8w56d VhASNi9/A0AZWa3WHWwT9pmWjHsYioWtth+RnFz56A0hHVMC9P/iOO+ER HSn6p+IjqZX2UAwIJXJs5nK5c596LGnk3Fwg1vyDfFjUkSFvT63hFX9vN 0=; X-IronPort-AV: E=Sophos;i="6.06,180,1705363200"; d="scan'208";a="276297960" Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210]) by smtp-border-fw-80007.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2024 15:53:29 +0000 Received: from EX19MTAUEB001.ant.amazon.com [10.0.0.204:49000] by smtpin.naws.us-east-1.prod.farcaster.email.amazon.dev [10.0.11.226:2525] with esmtp (Farcaster) id 8c10934d-ba88-400b-b524-af83d373a694; Fri, 23 Feb 2024 15:53:28 +0000 (UTC) X-Farcaster-Flow-ID: 8c10934d-ba88-400b-b524-af83d373a694 Received: from EX19D008UEC003.ant.amazon.com (10.252.135.194) by EX19MTAUEB001.ant.amazon.com (10.252.135.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Fri, 23 Feb 2024 15:53:26 +0000 Received: from EX19MTAUEC001.ant.amazon.com (10.252.135.222) by EX19D008UEC003.ant.amazon.com (10.252.135.194) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Fri, 23 Feb 2024 15:53:26 +0000 Received: from dev-dsk-ptyadav-1c-37607b33.eu-west-1.amazon.com (10.15.11.255) by mail-relay.amazon.com (10.252.135.200) with Microsoft SMTP Server id 15.2.1118.40 via Frontend Transport; Fri, 23 Feb 2024 15:53:26 +0000 Received: by dev-dsk-ptyadav-1c-37607b33.eu-west-1.amazon.com (Postfix, from userid 23027615) id BF2E820D24; Fri, 23 Feb 2024 16:53:25 +0100 (CET) From: Pratyush Yadav To: Alexander Graf CC: , , , , , , , , Eric Biederman , "H . Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Steven Rostedt , Andrew Morton , "Mark Rutland" , Tom Lendacky , Ashish Kalra , James Gowans , Stanislav Kinsburskii , , , , Anthony Yznaga , Usama Arif , "David Woodhouse" , Benjamin Herrenschmidt , Rob Herring , "Krzysztof Kozlowski" Subject: Re: [PATCH v3 02/17] memblock: Declare scratch memory as CMA In-Reply-To: <20240117144704.602-3-graf@amazon.com> (Alexander Graf's message of "Wed, 17 Jan 2024 14:46:49 +0000") References: <20240117144704.602-1-graf@amazon.com> <20240117144704.602-3-graf@amazon.com> Date: Fri, 23 Feb 2024 16:53:25 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Stat-Signature: n73qbg58qaryefdtbx76j3cd5qrt9tnd X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 27BF720021 X-Rspam-User: X-HE-Tag: 1708703613-457544 X-HE-Meta: U2FsdGVkX183+gqYx/20WPdibEBoKgAZByIeBCWgocnrZ1Q11LMujS/FEGwDOB9tRxbzB2ZzEX7Qa2OpUu2TcZnfd4I3ijTH8bpNmOy504mi3MQAlw/tStc1g/ARJtgoBI0pCV1jMD47lK0JuQlCUHafz/f4DHaS2q0A0mK6NyN7+sTGEhVZt4d+E+Tu5c6tHfRGR/wbj1z01cxg3o3QEgdwmTKDPGUmn7tEbc+o7g8N7XK3qFhfb8VCRyOSlbKH2bofvpB7I+g8yndyHmMCm/IKU+ISWBhIo/SeUpOgAr8ZyWN107ezqWsOK3LtGnVobh4ji18WbMCueQ8ui2xrm/2/orEZ4IEUTV8+qt0lws/M0AeWUYrseR4xQ5ORii/w+Tg0OmvBbMSfUxKMOT5E5FHpn5932+Hqp/FwBzsKFEPnNrQG56hniNjHXwV3IkbpROwjs4JuiQnmIONqZEZMfxtXONhKjw0TfdaVG8fXhwOMhZxm+GVRedPgFJARBFhgqS6Aeb7RQuCMTONLjZNKhRVgbmD2amlzK8y5gTRvXJfI1oyeX3LL9QbwHcMgVNuB/DwX+D04sADlZyRg+DQacctWid2uiEnXd8gNwdhoAlnkp101yYpcrNqaWynM3MVfLtHiESo5RIz4LBfzEmLnlC1ycxyTM1tzkXLSYz+QlMvzDV24wcVZEboi3o+kyKZZ7SWYW6jhgT7CKyto7+hoepKWY1ayYAR69lB+zt0vFK5BN+Vzni5o5V2E03A/PRajj3lzNCkdT/U6VPJWC7WOmdj16VmXVERM87iUG51HLCsTmf4k0gbU34vpizNBmz1L4mefRfmo4sa+81WhmplQHZ1ViyjqFmuZi/0vAyo1vp+/KUSJPO3z01kms5qefPjMR7OToJa69DftTIHbXkkAF2rMy48VplZXYeSndSZqD3y8PU1U+G3U4VISvc/Wikf28C6orqDSYcVVh5qJZu7 RDF9CU3o zJyEgvoIXSEko1hR8DnXhQQAmIyZo5cFin2/IMfY6l5Lznl6k68nCHzSRA/HgE5sEc3fKXESkdKwcDJhp1kXWoVdNDTsLnB5JynX4bciL/2bDQR/pDGgWsjLBlfA1ovYgX7m+o20yNasCB5dhAnE+u3yi2myDwgszj2PV X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi, On Wed, Jan 17 2024, Alexander Graf wrote: > When we finish populating our memory, we don't want to lose the scratch > region as memory we can use for useful data. Do do that, we mark it as > CMA memory. That means that any allocation within it only happens with > movable memory which we can then happily discard for the next kexec. > > That way we don't lose the scratch region's memory anymore for > allocations after boot. > > Signed-off-by: Alexander Graf > [...] > @@ -2188,6 +2185,16 @@ static void __init __free_pages_memory(unsigned long start, unsigned long end) > } > } > > +static void mark_phys_as_cma(phys_addr_t start, phys_addr_t end) > +{ > + ulong start_pfn = pageblock_start_pfn(PFN_DOWN(start)); > + ulong end_pfn = pageblock_align(PFN_UP(end)); > + ulong pfn; > + > + for (pfn = start_pfn; pfn < end_pfn; pfn += pageblock_nr_pages) > + set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_CMA); This fails to compile if CONFIG_CMA is disabled. I think you should add it as a dependency for CONFIG_MEMBLOCK_SCRATCH. > +} > + > static unsigned long __init __free_memory_core(phys_addr_t start, > phys_addr_t end) > { > @@ -2249,6 +2256,17 @@ static unsigned long __init free_low_memory_core_early(void) > > memmap_init_reserved_pages(); > > + if (IS_ENABLED(CONFIG_MEMBLOCK_SCRATCH)) { > + /* > + * Mark scratch mem as CMA before we return it. That way we > + * ensure that no kernel allocations happen on it. That means > + * we can reuse it as scratch memory again later. > + */ > + __for_each_mem_range(i, &memblock.memory, NULL, NUMA_NO_NODE, > + MEMBLOCK_SCRATCH, &start, &end, NULL) > + mark_phys_as_cma(start, end); > + } > + > /* > * We need to use NUMA_NO_NODE instead of NODE_DATA(0)->node_id > * because in some case like Node0 doesn't have RAM installed -- Regards, Pratyush Yadav Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B Sitz: Berlin Ust-ID: DE 289 237 879