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 C00C2C36010 for ; Fri, 11 Apr 2025 03:48:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E561280152; Thu, 10 Apr 2025 23:48:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 995E428014C; Thu, 10 Apr 2025 23:48:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 88548280152; Thu, 10 Apr 2025 23:48:08 -0400 (EDT) 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 6AA5428014C for ; Thu, 10 Apr 2025 23:48:08 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 51CB21A1A5D for ; Fri, 11 Apr 2025 03:48:09 +0000 (UTC) X-FDA: 83320379898.17.DD03120 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf21.hostedemail.com (Postfix) with ESMTP id 7FB1B1C0004 for ; Fri, 11 Apr 2025 03:48:07 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=x8+a05ma; spf=pass (imf21.hostedemail.com: domain of 39pD4ZwoKCEEfkdqj1xdqojrrjoh.frpolqx0-ppnydfn.ruj@flex--changyuanl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=39pD4ZwoKCEEfkdqj1xdqojrrjoh.frpolqx0-ppnydfn.ruj@flex--changyuanl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744343287; 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=7dlryhVy6NeWg3O2Okngw+V+H7NewUDTwovui9xGS0o=; b=vbk55r9thbdP78JjrRKp4gTXnijAopAdyTbLmPWcv5pQ8wliiPB6VaYriq6YoeBEVyMI91 fuh5FEeaZjyq8gtplbjBfEFckZ8bZXkF5vP/SaJoAOh31+jVQEJnZWzifgizcCy/4w+8nC iyHhKBFqiI6PVkTDwK0BtDcbXSZ6dxA= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=x8+a05ma; spf=pass (imf21.hostedemail.com: domain of 39pD4ZwoKCEEfkdqj1xdqojrrjoh.frpolqx0-ppnydfn.ruj@flex--changyuanl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=39pD4ZwoKCEEfkdqj1xdqojrrjoh.frpolqx0-ppnydfn.ruj@flex--changyuanl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744343287; a=rsa-sha256; cv=none; b=lEZksyLclRX2RGSk3/pSav7h5+fwF2DPz7CFQ7OjAH4DsT5oaz6gqtD6/AXeD6+CQxiBsu gLdfppYADuZZooOULuolPqiWQULNE/neD9eYiaycpwnXnzm370Z3QfW3iB94RnUHTmZSFX sHHItcOFseYJUAjAMPHoVvjg1n0Huc4= Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-22650077995so21254525ad.3 for ; Thu, 10 Apr 2025 20:48:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1744343286; x=1744948086; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=7dlryhVy6NeWg3O2Okngw+V+H7NewUDTwovui9xGS0o=; b=x8+a05maKSWLDlENkyjd7Zx053NEW+ccEqYFWDVaK+r5dUmxd4G89jHPAkWuXrIQS/ kZ/aMjnVV5WpQ/m+E1U2qEFQW7/5oZqJi73iQ2SNaHQ5I/OlgcV+KNgGy+/upUjqWvgK ijvbHl752QaKMFMruNg1wahAw9iNOWzjauIOLbh4VEsRGRyHGlSbBEa4gw22fJmYId/8 5LI2bJcqW79b7158+FwN38lqAYalYkA7d88H+kfkbeGYtRQjzw/n6fRdOTfyf8mCkrsk CZmHTxDWMTTtYG8k6/73A08OQ11WEUvGkP1mqIwqSgAwlwUcDxtGsJz2GB1uY//I40I6 4/rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744343286; x=1744948086; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7dlryhVy6NeWg3O2Okngw+V+H7NewUDTwovui9xGS0o=; b=w8gNWzpEL7TodLk/mF4xHG5PvOSR3+4yfvRJVsO0vzppGlT3PV5CPoCwZRUzBYLb6I gN7Ku84SBg/yscXobKgbHtADDvfrsbsEjkIje4lTI0D4sBAcIIStDDsyBGo/kfFBHDGN V70mvKnAxt9iwY0GlVBAgL6hkRQ3Ct5rvHM74wCtnd6Z0b6eBkJsDYeXG54ZMlrGjat1 67d1xQ+IqL8CR7Ybe/9gklIgKs7nKB28aw8Tl1t6PCumGWD3rwhw6rqYKb5Wst59U+BM Ycj1A2QTEgLuRCkzw+I/Zu8EX+2iUSE5qCEEt9KdKTZAmMuDJns+sQ5YZlvOePu9h5uo PCeQ== X-Forwarded-Encrypted: i=1; AJvYcCUrDng4+msfu2rBTnlc6A2XQvOdIvemlcW/4EQZGr63I7aSI6HCSJ0MzlClz/d4NB0uOVzKhbYmGw==@kvack.org X-Gm-Message-State: AOJu0YxKMVT7zj/bnwhf5L/ZyR4h8fIcGX5zt1UxtZ603O9mcArG1tnD /5C1umQmd3INoA2CMm8iRKgRIaDB+05nkdAPlNAaozuImb77Xui0l9pj0qYAAfE2lh53aUcHkm7 gkluvKGMYj/mpEm0nZg== X-Google-Smtp-Source: AGHT+IEOZPbbuwHUT+vSKb7YqC/0TcONKVVdEEEvZeXr5rZzrszLtokHPfZVQrxjUuNtcfTum+JkVNbqScaVm0pW X-Received: from plks14.prod.google.com ([2002:a17:903:2ce:b0:226:4240:2027]) (user=changyuanl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:e5cf:b0:215:94eb:adb6 with SMTP id d9443c01a7336-22bea4efe58mr23857515ad.40.1744343286238; Thu, 10 Apr 2025 20:48:06 -0700 (PDT) Date: Thu, 10 Apr 2025 20:47:48 -0700 In-Reply-To: <20250320015551.2157511-13-changyuanl@google.com> Mime-Version: 1.0 References: <20250320015551.2157511-13-changyuanl@google.com> X-Mailer: git-send-email 2.49.0.604.gff1f9ca942-goog Message-ID: <20250411034748.1781232-1-changyuanl@google.com> Subject: Re: [PATCH v5 12/16] arm64: add KHO support From: Changyuan Lyu To: changyuanl@google.com Cc: akpm@linux-foundation.org, anthony.yznaga@oracle.com, arnd@arndb.de, ashish.kalra@amd.com, benh@kernel.crashing.org, bp@alien8.de, catalin.marinas@arm.com, corbet@lwn.net, dave.hansen@linux.intel.com, devicetree@vger.kernel.org, dwmw2@infradead.org, ebiederm@xmission.com, graf@amazon.com, hpa@zytor.com, jgowans@amazon.com, kexec@lists.infradead.org, krzk@kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, luto@kernel.org, mark.rutland@arm.com, mingo@redhat.com, pasha.tatashin@soleen.com, pbonzini@redhat.com, peterz@infradead.org, ptyadav@amazon.de, robh+dt@kernel.org, robh@kernel.org, rostedt@goodmis.org, rppt@kernel.org, saravanak@google.com, skinsburskii@linux.microsoft.com, tglx@linutronix.de, thomas.lendacky@amd.com, will@kernel.org, x86@kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 7FB1B1C0004 X-Stat-Signature: 56kw93c3n7mwy6w7db6wttu6foryi8ic X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1744343287-118770 X-HE-Meta: U2FsdGVkX1+dAuU81EKvJzfn6uJfvxpIK2jGHPGH9rWn7Q4hJLlj+YLzkl4hCQFbDobBx4j3da+GY7RiE5IImPxw7aaWkbF8cqOtilEeLZ14vgCdcxQVHXz+iUp0Wik5xvOZC0CErydIEQa7gbxQ/mYsnWJQI/FbYlsLCGfMqu83nwi27V/MYnNxvgWiaxy+RmdnFy64xCnELQ2qtGY0syH/7Mc/Wv3W0K5bHwP4aV8M2p59S5AIWAf153FwBGNUnoa6riPoctt7q3ntO2eJI6Tz0HX3rze5m31tX4Kr6ZTsL3hNnH14E3fsPfQ0JfZkvaw1bLqVMNgET0O+ncnQowxJHz12nvIOQJAmqdn95A88ofAQSElbqBBpqtP+9GwR5vL53W0nVZxRTnssGX31p7QsHmWTxL8vKXzwa17QX2AO0Jx3jyJF1eWJF+sqcA7HH+KzwkpNHbIXbK721lpFbzwsDLZNfdGZh4RiYD8LoMAPLXeuwbUHYvfDI9GqZ1L0/bvlMn/gvGomzyph8Nu3Zq2eTrMHn4/VICvTsLYHOihggYh3Q5I7lezRFjgL6pVLZ7Srnyculh56X3u9pMiZXGVVoS7hLVvqFeBmWRo3UO7k9xsLq1laWSmBx1y70JQ2qceciyLNXu5JRs4cXpB42aP3Yb9I9CfiBn3jbGLd4FgrMtxKPUXVevDPGeNI5op+setslUEC9TB0XgQR1LtZEyOvisfG789Y2U2F7FRhTJSU6wcosoc5gzb91FV0YJhbDeFWtQH0W2W5e//yib/2t6Yzz9aC935xKM0LWSz0IgsMBlc0bhfLKJD5WgeXwfMvCu1pDKzGXMf2NCqvb0KtM44Zs/iT1VdzdVw36wqRJJC8vmxPoQMoU0z+OA/k5qbo2pkQBCDky8tU7nN6n97RPdcxTvbjVj59qU4OTIWldmTU11fWlhd718qwVgmj7t2t/8GhLdg1i1KYl1Z0Wmy ggpzpt5/ LfCL3c5dqTHsa2Jjn4D/G3r4ON+purivK9gbUDegZKN1GmNOZgaxoMc+WBoNWEy7ptONCIBNOPROtrTvbmH3SP2WG4iGG4pSrnsVX2pPnUxFm8HB0Nbmgy4jNOVqRgUA7z2DMwQl6L7GmuJZgWqHvI/7940nqpc7XzknY/Tv24EF37Kf4Hj9fMv35fIOd3pdWMO4OmXpzqBd5c+3Dxo49Pa/zQaJtKXJoaqT7Qzb4lBvCL2XxWyslNqsSzE7HpxGyDp0rD7XgEb3GGVTZs4xnuXI5VKHLGh1mMlkaMIZbGEdZMcXVjgSCdvmxADrvkix+sbfZkY73NsskVIR7Z6XxVqfLo2iIC426ByjFLr5bskVQ142moM5LXNsS/SDT7irvoFOkjiOfoyIp3XQ/pa4ia7nITRihqhuTZ3yEFlWMtj4kEyJOVTQM1F9XrWpHB4v60brEVEDozBKhHjvTPXMf7YM/a5wCKGleeLkHflJDCWcTPb7gCocHxezvYsD1mPHm3uEVdJRFgdeZDOypYhTafaSZQtqQz6QsSUsX05q72aFowyToZFO2Yrrusa/smR0wqj+OP15UtiirelA1rqLilQltJZPZRD89kQbxo1PdxutaNwuu0yj8fxCuIOENg0d5XyzDFZ+/5bnWS3U7KANfqU8yI55ckD/o3YekZrfMOCy9LeU= 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, Mar 19, 2025 at 18:55:47 -0700, Changyuan Lyu wrote: > From: Alexander Graf > [...] > +/** > + * 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; > + const __be32 *p; > + int l; > + > + if (!IS_ENABLED(CONFIG_KEXEC_HANDOVER) || (long)node < 0) > + return; > + > + p = of_get_flat_dt_prop(node, "linux,kho-fdt", &l); > + if (l != (dt_root_addr_cells + dt_root_size_cells) * sizeof(__be32)) > + return; > + > + kho_start = dt_mem_next_cell(dt_root_addr_cells, &p); > + > + p = of_get_flat_dt_prop(node, "linux,kho-scratch", &l); > + if (l != (dt_root_addr_cells + dt_root_size_cells) * sizeof(__be32)) > + return; > + > + scratch_start = dt_mem_next_cell(dt_root_addr_cells, &p); > + scratch_size = dt_mem_next_cell(dt_root_addr_cells, &p); > + > + kho_populate(kho_start, scratch_start, scratch_size); > +} > [...] > +static int kho_add_chosen(const struct kimage *image, void *fdt, int chosen_node) > +{ > + int ret = 0; > +#ifdef CONFIG_KEXEC_HANDOVER > + phys_addr_t dt_mem = 0; > + phys_addr_t dt_len = 0; > + phys_addr_t scratch_mem = 0; > + phys_addr_t scratch_len = 0; > + > + if (!image->kho.fdt || !image->kho.scratch) > + return 0; > + > + dt_mem = image->kho.fdt->mem; > + dt_len = image->kho.fdt->memsz; > + > + scratch_mem = image->kho.scratch->mem; > + scratch_len = image->kho.scratch->bufsz; > + > + pr_debug("Adding kho metadata to DT"); > + > + ret = fdt_appendprop_addrrange(fdt, 0, chosen_node, "linux,kho-fdt", > + dt_mem, dt_len); > + if (ret) > + return ret; > + > + ret = fdt_appendprop_addrrange(fdt, 0, chosen_node, "linux,kho-scratch", > + scratch_mem, scratch_len); While testing on ARM64 today, I realized that calling "fdt_appendprop_addrrange" here intercedes a bug that prevents consecutive KHO-enabled kexecs. Suppose we do KHO kexec from kernel 1 to kernel 2 and then from kernel 2 to kernel 3. The firmware DT got by kernel 2 from kernel 1 already has "linux,kho-fdt" and "linux,kho-scratch" in the "chosen" node. And when KHO kexec-ing to kernel 3 from kernel 2, kernel 2 will __append__ the its KHO FDT address to the "linux,kho-fdt". Thus the "linux,kho-fdt" received by kernel 3 contains 2 address ranges. Kernel 3 would fail at early_init_dt_check_kho() above. I will fix this bug in v6. > + > +#endif /* CONFIG_KEXEC_HANDOVER */ > + return ret; > +} > [...] Best, Changyuan