From patchwork Fri Apr 11 05:37:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changyuan Lyu X-Patchwork-Id: 14047574 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 6879CC369A8 for ; Fri, 11 Apr 2025 05:39:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 082D8280166; Fri, 11 Apr 2025 01:38:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F245128015B; Fri, 11 Apr 2025 01:38:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D51FA280166; Fri, 11 Apr 2025 01:38:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id AE67B28015B for ; Fri, 11 Apr 2025 01:38:48 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id A54F3161D82 for ; Fri, 11 Apr 2025 05:38:49 +0000 (UTC) X-FDA: 83320658778.16.CFB6D4D Received: from mail-oa1-f73.google.com (mail-oa1-f73.google.com [209.85.160.73]) by imf21.hostedemail.com (Postfix) with ESMTP id DD6A21C0004 for ; Fri, 11 Apr 2025 05:38:47 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=njZE9tM1; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf21.hostedemail.com: domain of 35qr4ZwoKCGUFKDQJbXDQOJRRJOH.FRPOLQXa-PPNYDFN.RUJ@flex--changyuanl.bounces.google.com designates 209.85.160.73 as permitted sender) smtp.mailfrom=35qr4ZwoKCGUFKDQJbXDQOJRRJOH.FRPOLQXa-PPNYDFN.RUJ@flex--changyuanl.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744349927; a=rsa-sha256; cv=none; b=ZbgaACHHShsCyr29tjXc0EPJP/dtOAlCn8NBcqhULMo1W0BLaRFZPdFBgYqrWW5AywcKG3 LOQolQ1P80TuaFgnM/sUYFyfa/T8clLtiTjs31ISkF2MaUFn/g6SSOxbPhIpnx0+1S7eCG B6PCe8ryYTyojG+ewov92QzCHGna6U0= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=njZE9tM1; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf21.hostedemail.com: domain of 35qr4ZwoKCGUFKDQJbXDQOJRRJOH.FRPOLQXa-PPNYDFN.RUJ@flex--changyuanl.bounces.google.com designates 209.85.160.73 as permitted sender) smtp.mailfrom=35qr4ZwoKCGUFKDQJbXDQOJRRJOH.FRPOLQXa-PPNYDFN.RUJ@flex--changyuanl.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744349927; 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=J3pOG049tN04I3gAeVWk6hcyObwRwUDj/yys8nKxPg8=; b=tHeG94scNO70Ed37xXiPcn0KSDS4dCYjV17gB8WDD6e1uVGEvI64qUjFo+W+PTjrHpRhSU O2hXK+asqq0l6xzWXeyMVI70iFoSeRdN2ffVEwed3NQ2+nlJj9ied5mFDR1qmta+stfBrd jwgzyGdLwGy7+psscsmIuLvGJr0zt1E= Received: by mail-oa1-f73.google.com with SMTP id 586e51a60fabf-2c2a9abc5b2so451335fac.1 for ; Thu, 10 Apr 2025 22:38:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1744349927; x=1744954727; 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=J3pOG049tN04I3gAeVWk6hcyObwRwUDj/yys8nKxPg8=; b=njZE9tM1EPg6e21P251BdsjCsd17t6UHqyOPxvT9k05CBM8JrwaUs5Byx/1wxoNe/z p/Gsqh/jcYjKgR70+kCFvYjird7CPRqTEZP2LiJ9Wy0V1zDOtTF6P4RE9YtjNP1fl+uh /45R/kSt8JqCgBuBrnuq6cl8ykPD0q2ZLw5aT+9dzSAx1pCtPdWSboiaA2KezbVKCqUz GAzX5AEFCLUzR2Op9gHVd+qjiGCBHw4CvdZm+N8aE4OrX937yxq+iDbOL9fKyR8q+ZT2 jtKVkPXGwSGPp6CLVWJ0Cc++a9DY2UhwwDmW4+YtnCAx0fxKXP2pjzanqDDjMa7remh/ Fv6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744349927; x=1744954727; 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=J3pOG049tN04I3gAeVWk6hcyObwRwUDj/yys8nKxPg8=; b=tMhZiyIMLa5MnHDEJCyDP8VbnHdsF43WecUueYUIltdBZu2qZU3oSHtf329FDExZvF 8CeyDFm7H+GO8k9gcA0naCJDqrFD0aqvlpwV3WMNgnHI9iucA8xtkEdgF0Lpw1ZsFot5 LSJu5QMwI/Xehu5qn2oDB55wftVHLzS2tsbwzrr7JmJRRrUhim+20dLO4ytEQeNlC/Ua Wz51il1/5WvRuYUdYsbxw4orHMZhuuEAOAKhTIirhSB/EtwokFs9Yui0Hc/46LOoWKsj Tm1bS3rCzUUjJdJa5LEOEVNB6FK1TdJKetBS0eJhHFZLJOS8ltUBPumU5w5pKa/mb4FE PtYg== X-Forwarded-Encrypted: i=1; AJvYcCXKeJnN1c2q9GomTZ6JiLfyecIuck2xui2K2TUtkPG/oQXOBAdfQAdl6RmTNKhihmvOn1BWNtB19w==@kvack.org X-Gm-Message-State: AOJu0Yx1z/iQ80Ubc7NtbxqJiooeRFEo7h6m+9e65HkLSzys9xKpG79s Hc8BtxWpQT7HcJRkWq4MgVO6zKf7Xo9cgh3SiT9FU4QWvS0A0Wc0ft1kq43fBmTrpqxSWO5BT/Q JlWlb1B3nSAagXCBZ8w== X-Google-Smtp-Source: AGHT+IEJNpRI4+8yaXJk8414f64tfdUZ+FcyahilW3BlIEGi90JnnJd1CB5TgY9EhsFB2ykTGHq1Hj397rCuMwxE X-Received: from oabvp10.prod.google.com ([2002:a05:6871:a00a:b0:2c1:5f7a:eba8]) (user=changyuanl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6871:4006:b0:29e:671b:6003 with SMTP id 586e51a60fabf-2d0d5f55d6emr854516fac.32.1744349926748; Thu, 10 Apr 2025 22:38:46 -0700 (PDT) Date: Thu, 10 Apr 2025 22:37:45 -0700 In-Reply-To: <20250411053745.1817356-1-changyuanl@google.com> Mime-Version: 1.0 References: <20250411053745.1817356-1-changyuanl@google.com> X-Mailer: git-send-email 2.49.0.604.gff1f9ca942-goog Message-ID: <20250411053745.1817356-15-changyuanl@google.com> Subject: [PATCH v6 14/14] Documentation: KHO: Add memblock bindings From: Changyuan Lyu To: linux-kernel@vger.kernel.org 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-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@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, Changyuan Lyu X-Rspamd-Queue-Id: DD6A21C0004 X-Stat-Signature: zon46dw11u4maqh3ks6icd5spdz85e1x X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1744349927-218029 X-HE-Meta: U2FsdGVkX1/CavUsfZE4sVt9i+yAw22HYWgkcIfQ6Zitlciwg4Fe7DV0KaljXrvxY8QHBWscPgAfFf4tmrNO2DsqEJT/CYJswlj7Edzi1sYXKxtaGtWDOafUgvR3UmW/w89opRhW5x1Ubu5FCuP1cCurED3rK0rjPBJx4OYqfrehJw2l9QTmG5OL2Ys0XSPjdzfhjDE4dwdIooF620qaD5j94Xikl2+bE6iA1QLwOh5knJv37Dn+7VG5uLAQk6CQgQwSrmuT45I89O9y7ME1WNh3QYKFhXFnL4ZagERLy1tRQ2pSTGSCfASIGGEnuzAJSqLHFz1cTsikTEhVFqupn/iXbc+kU4uwUKUh/c96tM+uaIzj1Nw+EQ+ShPDzTNOOVcteWmGs+P3Z971MrYJO/ZzOu2smBFjT1VhGpKnJRfksBGZL8g/qq54fnobjMKdrCSRgqxSzS78cWIXLIC0Da3SBvRBQHpfB2RZwsf0p6c72TzWLyY/LUHbZ+iSs4Cnwi0QMxTNK4UZiClBcoQYprsJ1HxvV69thiL3Lzb6emBK/wKife0LyVcFRIaAI+g4yS1PB9twj4A3BDg3ctfyt99QSzxz1Jg6miU/vemsnMpvF6o799H88EohLiVBBU9QzY8N0PiSpPd7cPBZasv/haJcFCfKSC0+AtpvsFa67tm8w+tFhXP1tNTe0uAhWFaUIVuUlxxJLn8BlywkhRlvS/TlePlmq6XEfYydBGJIiRGwxEQp3QRwwsfyGjqVkZOxAIRXDg3xLe5Xujhck6dEbYuvpHyNtmLBLEhj6JwnaUY6+qhnhePYhfFbiyeyrGXRKxBS+yfDUpZD3Z1/gXBX67Liw4KxA0VqgSO9EVnFD5F0L5GhGLQmbidKIr+4xjQCufk2AHEM10k2xLyG1mmsSfFq6TRIZEY8utdP3Ohqzz2aGgqqC0tt2gI4M3T5/oq27efS5zO85LRiwoCrgfJW tOAYFxwy bJTZFa7LdkY6OB9P0d2IUwU1kfcKSt6tqm1Xep8S5cBNPBOQN4JzL+kKrXQYoqLsQmRCYsIq3fJFlJNcB+phKFjTh9s2spOU2lInEVeQ+jS2JimTTVBPyXwgDoTu3+CwZGQQfC+VkADbYltI3u4SWYqcxKbV14CCVFu87OPanbwpln3+Ec0MimZlKhZwoSpLbdbXJKWmjIL4f8zBgoSSvpQnXPQsrYdbUrAkmDBZy7CEAwgbouC+IC7kdsByYWMK8pLjGZUJKATA9T8ljut4+hjUI4ougKPaQSm6YdUKjOoQivx6xuy6irCLrxL4l5pH5qg/PsPc0HQ9GLu0DyK5mdcWBmM+DAbP6zp6yw1wZMrNylJs3AFTGRN3T37wCa8NJRIpRmjZdzG9bYj7CMhOrVuYlPAu7DH1AyaFf/KEk9beYI65Yazs/sb3UTYQBg+D6KkdEMDHxNML6MTOlBbnRMbVEmKiQFfhY6PQdlsdbaRLEa9KAgAeg9kXB/Mj7YUghLzXfZMKW7dcjU9JbPlLsTtYHHWveCHivJd3HGH1LHOdS9VR1iaQdzY4f0aoBjMuwnxulwPYXW8opiOkI3540Kb1LGJ1qHhQ3MEzPH4aMlhJxlu3tnN/wzD1NQbvOEYr05H0diPof0CSnpmazU/aaKuGzFnQ2KfEqpNZFQwzxG7ybZNJGH2V1D1DE6g== 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: From: "Mike Rapoport (Microsoft)" We introduced KHO into Linux: A framework that allows Linux to pass metadata and memory across kexec from Linux to Linux. KHO reuses fdt as file format and shares a lot of the same properties of firmware-to- Linux boot formats: It needs a stable, documented ABI that allows for forward and backward compatibility as well as versioning. As first user of KHO, we introduced memblock which can now preserve memory ranges reserved with reserve_mem command line options contents across kexec, so you can use the post-kexec kernel to read traces from the pre-kexec kernel. This patch adds memblock schemas similar to "device" device tree ones to a new kho bindings directory. This allows us to force contributors to document the data that moves across KHO kexecs and catch breaking change during review. Co-developed-by: Alexander Graf Signed-off-by: Alexander Graf Signed-off-by: Mike Rapoport (Microsoft) Signed-off-by: Changyuan Lyu --- .../kho/bindings/memblock/memblock.yaml | 39 ++++++++++++++++++ .../kho/bindings/memblock/reserve-mem.yaml | 40 +++++++++++++++++++ MAINTAINERS | 1 + 3 files changed, 80 insertions(+) create mode 100644 Documentation/core-api/kho/bindings/memblock/memblock.yaml create mode 100644 Documentation/core-api/kho/bindings/memblock/reserve-mem.yaml diff --git a/Documentation/core-api/kho/bindings/memblock/memblock.yaml b/Documentation/core-api/kho/bindings/memblock/memblock.yaml new file mode 100644 index 0000000000000..d388c28eb91d1 --- /dev/null +++ b/Documentation/core-api/kho/bindings/memblock/memblock.yaml @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +title: Memblock reserved memory + +maintainers: + - Mike Rapoport + +description: | + Memblock can serialize its current memory reservations created with + reserve_mem command line option across kexec through KHO. + The post-KHO kernel can then consume these reservations and they are + guaranteed to have the same physical address. + +properties: + compatible: + enum: + - reserve-mem-v1 + +patternProperties: + "$[0-9a-f_]+^": + $ref: reserve-mem.yaml# + description: reserved memory regions + +required: + - compatible + +additionalProperties: false + +examples: + - | + memblock { + compatible = "memblock-v1"; + n1 { + compatible = "reserve-mem-v1"; + start = <0xc06b 0x4000000>; + size = <0x04 0x00>; + }; + }; diff --git a/Documentation/core-api/kho/bindings/memblock/reserve-mem.yaml b/Documentation/core-api/kho/bindings/memblock/reserve-mem.yaml new file mode 100644 index 0000000000000..10282d3d1bcdc --- /dev/null +++ b/Documentation/core-api/kho/bindings/memblock/reserve-mem.yaml @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +title: Memblock reserved memory regions + +maintainers: + - Mike Rapoport + +description: | + Memblock can serialize its current memory reservations created with + reserve_mem command line option across kexec through KHO. + This object describes each such region. + +properties: + compatible: + enum: + - reserve-mem-v1 + + start: + description: | + physical address (u64) of the reserved memory region. + + size: + description: | + size (u64) of the reserved memory region. + +required: + - compatible + - start + - size + +additionalProperties: false + +examples: + - | + n1 { + compatible = "reserve-mem-v1"; + start = <0xc06b 0x4000000>; + size = <0x04 0x00>; + }; diff --git a/MAINTAINERS b/MAINTAINERS index b3be800e5ea46..60e4093042e1b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15425,6 +15425,7 @@ M: Mike Rapoport L: linux-mm@kvack.org S: Maintained F: Documentation/core-api/boot-time-mm.rst +F: Documentation/core-api/kho/bindings/memblock/* F: include/linux/memblock.h F: mm/memblock.c F: mm/mm_init.c