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 88854C47DDF for ; Wed, 31 Jan 2024 14:49:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 031986B007B; Wed, 31 Jan 2024 09:49:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F2DC36B00A6; Wed, 31 Jan 2024 09:49:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DEBD16B00A7; Wed, 31 Jan 2024 09:49:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id CD52F6B007B for ; Wed, 31 Jan 2024 09:49:56 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 94B09A23D1 for ; Wed, 31 Jan 2024 14:49:56 +0000 (UTC) X-FDA: 81739890792.19.25D889A Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf26.hostedemail.com (Postfix) with ESMTP id 1D4EF140012 for ; Wed, 31 Jan 2024 14:49:53 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=QW+u4gkx; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of robh@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=robh@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706712594; 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=dy6Gp2c7mTVA2cLhC90HPq3IvQEQGsGUSctQcwMmri0=; b=SdwVnKfpUEkcXLnxG+PSG3x7BU7EEFWSmS63B+Yg5f7nGkr38972KIzDlNXg83KJd4zOCX Jq4/SK0w72WeIxd4Wm8ktmTSGMpp7OfX53IixShbySVEZSQnd54hClrl7T1OabLzYLE+TR jHbfpvs9lAyIXSx2h7PjTpdnj+BI6t4= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=QW+u4gkx; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of robh@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=robh@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706712594; a=rsa-sha256; cv=none; b=jcjmOEYIbYmEx9MO7vu6r73aYAGybuUw88gI/Rh8QCzbEHPSCTSdv3uZQuqY+xdVEsL1rm duOBkRbpeb+raSJ2hc6Snh/SE6hr/+/Xv2dgsteIORKuJXWuSAn8o/yJa3qo3ShasuSkCM P/GuEpUi1GmXJSlZFhcO3HEZGi2ECbU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 76915CE2138; Wed, 31 Jan 2024 14:49:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDC5CC433C7; Wed, 31 Jan 2024 14:49:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706712581; bh=2yHAEIfWo9jtDG3p0AkHhbA/aM0nxnP2vXRtqVa7teY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=QW+u4gkxi4Y+A1kx9nhpvAQ1EP8rM+k3jqjMGovujJJB59p7806HWkXfBEj0gLi/3 dpE9ybCf48GATqlB1ESTepI2Vpc3Gz5mcuduAC0xO4CA3jImqCFl1onHVBM3vgNgve P7WRiiNDNwbi/bBxQFbHMPjLCcSFpaECoKh3R4IzGBz8kKHS0VLNM+83cFVzXFslcS ElzySdf458R0htk5byWFQGchyYXTxhGF1QstYas278sioSKd3GxQvzlRYyXl412lt1 JdArA3NOIlG6ngKW+zO3XK46/bMum/FZUw4ptS5PISyPW2hhEUfe+LEN6JUngCsW63 Vc+Yrx6EsRs4Q== Date: Wed, 31 Jan 2024 08:49:39 -0600 From: Rob Herring To: Alexander Graf Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kexec@lists.infradead.org, linux-doc@vger.kernel.org, x86@kernel.org, Eric Biederman , "H . Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Steven Rostedt , Andrew Morton , Mark Rutland , Tom Lendacky , Ashish Kalra , James Gowans , Stanislav Kinsburskii , arnd@arndb.de, pbonzini@redhat.com, madvenka@linux.microsoft.com, Anthony Yznaga , Usama Arif , David Woodhouse , Benjamin Herrenschmidt , Krzysztof Kozlowski Subject: Re: [PATCH v3 08/17] arm64: Add KHO support Message-ID: <20240131144939.GA1241147-robh@kernel.org> References: <20240117144704.602-1-graf@amazon.com> <20240117144704.602-9-graf@amazon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240117144704.602-9-graf@amazon.com> X-Rspamd-Queue-Id: 1D4EF140012 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: gozikrhdi6p1pc6zhcxpt19arw4jmb47 X-HE-Tag: 1706712593-749166 X-HE-Meta: U2FsdGVkX19F2AdG3u+X3p8b+W0cKTqGBlg5bEg9WBsCi/peqz1LT8IqIfX7fnK6xHGNjvxMrsVVYmKC/erSrQWcgGG6b9j/1QlsizxXAVL2a0VbnMaf2FgL23z2enB8gYFPhcU5T9JtVKf5VsDCUqdCCN8qwIICjsyAAuK5ldEdOI6GvvWdykUhxE+HTxLFQjdcO7mLb1zzEyAYn2T47atNfgbUHsEU6N5yza4tYWnEFlTi0GyFJEx1nQB9rRwhDreeBX9rR+HiCvr5+xucI5wIgTip6qQTTDtI9tYTeS1k4f9xWPoHgq2g8YK+NwSkH00adMs6HBBrFySeanGJORdKfuK6uF1IEqldw8ZDcakfqD22tvO4pI+LJYuV1Tn5GrNF8qSyeZ/myEE3DhyBdfGRspddXTtLySgw12av8JvxDQ/A9WZBR0x+xkb1qIrtMYF3f9OVi7UZARr+HV83htiaH+gkMMy9VLuLR9xxu2my163ol3eUR34/HcrO9jAVS1yrlhFiKRBjqVdLkxnSC5NiPqChs4R3A4GVZUYzUIpHEwfCcx1AzfzIzt/gRheIYY+bAIXexRwXOVln/zU3hhOg4INjawoCGHWdyJH8lx9bjpdwdJ5oEHjnarcYMEmfCfCQoptjYdAF/Rw5KvLJvvtHxXgEt/iO4RdEJp0ov/8x5hlTTBB0JVjXrMoybEt8kx+nihGHXx1u+WJaKFp/al4x1sLiwEsqB3SsPLh7MbnfiGeWGSkpsSJuWTDa3AW0TJ428HNQYAllxDN0hPjFHSaDy43UFt2OMrSviVIArRw2ee2V1VtlsHiRmPxHAlYa7ojQ1aRsU1uU4YWJlLJ2F2YVp3aanpvfy7vg4RF1hrD22rbMLjGrRS2uI25i7c7bAY7p4oSGfSrRTP+mmZQt9u7v9dDzaAknpcPEwdlVfAnbRMCc5PT237XZA7RwjxxXBmhi018yGtuHUisJc2X udK0bLb3 MBBR9t3SRRuPc/f+fiAkMEJik53STPqZQh4Ls6FGb2+znNtwp3WXdLfPyobR0HYEZDheKC++BtYqNIaFCPL3LTUREPb5YwnjqR0ucDrsCEe+EmUyBLy/l4Gyw4r1sDuUTzdAlb6DaRe37TyRMr989e4UsgfhdcXj9I6pXGZ+2V0A37JWDm+RRWFdNmXi72DxT4OrwtWMzCE0K9vCoBW6cLJAGIQ== 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: On Wed, Jan 17, 2024 at 02:46:55PM +0000, Alexander Graf wrote: > We now have all bits in place to support KHO kexecs. This patch adds > awareness of KHO in the kexec file as well as boot path for arm64 and > adds the respective kconfig option to the architecture so that it can > use KHO successfully. > > Signed-off-by: Alexander Graf > > --- > > v1 -> v2: > > - test bot warning fix > - Change kconfig option to ARCH_SUPPORTS_KEXEC_KHO > - s/kho_reserve_mem/kho_reserve_previous_mem/g > - s/kho_reserve/kho_reserve_scratch/g > - Remove / reduce ifdefs for kho fdt code > --- > arch/arm64/Kconfig | 3 +++ > arch/arm64/kernel/setup.c | 2 ++ > arch/arm64/mm/init.c | 8 ++++++ > drivers/of/fdt.c | 39 ++++++++++++++++++++++++++++ > drivers/of/kexec.c | 54 +++++++++++++++++++++++++++++++++++++++ > 5 files changed, 106 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 8f6cf1221b6a..44d8923d9db4 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -1496,6 +1496,9 @@ config ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG > config ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG > def_bool y > > +config ARCH_SUPPORTS_KEXEC_KHO > + def_bool y > + > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c > index 417a8a86b2db..9aa05b84d202 100644 > --- a/arch/arm64/kernel/setup.c > +++ b/arch/arm64/kernel/setup.c > @@ -346,6 +346,8 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p) > > paging_init(); > > + kho_reserve_previous_mem(); > + > acpi_table_upgrade(); > > /* Parse the ACPI tables for possible boot-time configuration */ > diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c > index 74c1db8ce271..1a8fc91509af 100644 > --- a/arch/arm64/mm/init.c > +++ b/arch/arm64/mm/init.c > @@ -358,6 +358,8 @@ void __init bootmem_init(void) > */ > arch_reserve_crashkernel(); > > + kho_reserve_scratch(); > + > memblock_dump_all(); > } > > @@ -386,6 +388,12 @@ void __init mem_init(void) > /* this will put all unused low memory onto the freelists */ > memblock_free_all(); > > + /* > + * Now that all KHO pages are marked as reserved, let's flip them back > + * to normal pages with accurate refcount. > + */ > + kho_populate_refcount(); > + > /* > * Check boundaries twice: Some fundamental inconsistencies can be > * detected at build time already. > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index bf502ba8da95..f9b9a36fb722 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -1006,6 +1006,42 @@ void __init early_init_dt_check_for_usable_mem_range(void) > memblock_add(rgn[i].base, rgn[i].size); > } > > +/** > + * early_init_dt_check_kho - Decode info required for kexec handover from DT > + */ > +static void __init early_init_dt_check_kho(void) > +{ > + unsigned long node = chosen_node_offset; > + u64 kho_start, scratch_start, scratch_size, mem_start, mem_size; > + const __be32 *p; > + int l; > + > + if (!IS_ENABLED(CONFIG_KEXEC_KHO) || (long)node < 0) > + return; > + > + p = of_get_flat_dt_prop(node, "linux,kho-dt", &l); These need to be documented. chosen node schema lives in dtschema. > + if (l != (dt_root_addr_cells + dt_root_size_cells) * sizeof(__be32)) > + return; I would just make all these fixed 64-bit values rather than based on address and size cells. That's what we've done on more recent chosen properties describing regions. Rob