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 9A8D1C7115B for ; Mon, 23 Jun 2025 11:29:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 254F46B0099; Mon, 23 Jun 2025 07:29:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 22C536B00AD; Mon, 23 Jun 2025 07:29:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 142876B00B2; Mon, 23 Jun 2025 07:29:50 -0400 (EDT) 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 05EA36B0099 for ; Mon, 23 Jun 2025 07:29:50 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7D822807B2 for ; Mon, 23 Jun 2025 11:29:49 +0000 (UTC) X-FDA: 83586445698.30.B9AD1AA Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by imf07.hostedemail.com (Postfix) with ESMTP id 80D7D4000A for ; Mon, 23 Jun 2025 11:29:47 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=soleen-com.20230601.gappssmtp.com header.s=20230601 header.b=pIKKM4rM; spf=pass (imf07.hostedemail.com: domain of pasha.tatashin@soleen.com designates 209.85.160.174 as permitted sender) smtp.mailfrom=pasha.tatashin@soleen.com; dmarc=pass (policy=none) header.from=soleen.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750678187; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=CId97r6bxGhOkOsNTRpZGo7/FNNKpNsqY9QIA/bl+4Y=; b=tZHYWj1AqU8n5WipyaqvBr0qLJteEVcBM6PIpPRlWnLnjN+sRgnu56Y8+ZCkKcwYQq99ie i4jO9rhbA+9PqmWX8pCId285/rwGRREPWXKn5TP/EZu27lii4ct57SytYYl2LtKFP+3G8C D15fG9QTUY1k+Qib6Lknf6Q1mCjp8W4= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=soleen-com.20230601.gappssmtp.com header.s=20230601 header.b=pIKKM4rM; spf=pass (imf07.hostedemail.com: domain of pasha.tatashin@soleen.com designates 209.85.160.174 as permitted sender) smtp.mailfrom=pasha.tatashin@soleen.com; dmarc=pass (policy=none) header.from=soleen.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750678187; a=rsa-sha256; cv=none; b=xcbnOv4d9BBmSd7uG3wijT5JEKTCTr+DyVY1Psmmq893LPB5pyfBbWfA4Ip7jWfEbf2bei 6cdLzbhM38Bu/v+xPuYJ5QZhZfEcGBKtg04636YnvNUefDYKnvcBxmcfNuO/jHCF0aOP8e NkFwWMgm3iuG4f1RLCmcGJVYnr0QxnU= Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-4a6f0bcdf45so49813981cf.0 for ; Mon, 23 Jun 2025 04:29:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen-com.20230601.gappssmtp.com; s=20230601; t=1750678186; x=1751282986; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=CId97r6bxGhOkOsNTRpZGo7/FNNKpNsqY9QIA/bl+4Y=; b=pIKKM4rMlhP7u+2l+5Zuu5jGo9L2yi962VE+9FYp7J6zdEQgSX3JoDL5aqydOZuulH JIL1mKL/23DyDrKmI25r8g0QCO4dN5OEHMtNheGM4AdpDg1qoPxybRpfYy0yIfO6/kaT GxyKO0kozGMd73Z4HQUBYHXN+rSfLwQddVBxlhYblivJJ2SeF+WjIDjRLM5r+k25nzs/ YLx5Uksr5G9JUvd6Bzpw1f7giwGCcSAudjBcd7b6OTw1xsD1rExGUn0gTQm8ksiMghAm fI2A+Gv3UzWKWpMp6ZhcYJgElNu3IAI0RLmC/DzHMkJCPT2SxXWkUBPitEzbtdrfbG5y wDzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750678186; x=1751282986; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CId97r6bxGhOkOsNTRpZGo7/FNNKpNsqY9QIA/bl+4Y=; b=uh0DMnG7RO/7tRH0+Uy5yxnxshJzQbbNjWRIAAXL/pwu0SE4uwY4U1jbXgZS+Rl4ok VbGy16vVU7ul2eAgNTk1GuJwAwpPEjchHni+WKPJeER5C7YCYt0RDSOQP5tLWNlRNrym D6dJXc6FgFo0XdAPqy4a94SZZxddN5i/+pQSZGjuUGy32N2kSFtkGMKtz/hgmm2cGqze eFvjIPBBPdC4hMpL614+Rr9LTQ3S6KEkR8R0KbhzOFSdc9gMJQcXnDNSsVQ1DU4K49o2 SHx3bIt7W/6z70ZkPZgjyt7+YOL4ASGkrToLW/MCCqcLSto0rIKla4oPOa6R5TUSOzvv AR5Q== X-Forwarded-Encrypted: i=1; AJvYcCVkrDJYFLzbLW5icdSaj9+XiTvORd8x7ZRv+TODvQUGtjcFrR+Wd57bSfUx4H13YoIrVSwGA4euxQ==@kvack.org X-Gm-Message-State: AOJu0YwzkCpFXksyvYjj+mOS2fXB47YhZTOFCJfKdjH0nKK0JP9eb4e5 fTXkwBV6kGr8wmcsusZ0PBnKBonPg+zNhd8fIjfzNtQiPo1QkNN0w9O9MjTCWv5QrSspBX68mPa ILcfF9Dgi1LLH+rL/R7XcF6J8+j/iERmMeSaWXHORXQ== X-Gm-Gg: ASbGnctSKgDUIAsdDLv2jeRBTz5BufTtcVRI2CgFpKaZcv9QSlZv80/cnZNET4/Sfxz 3puOO2Seh6p2DewSWpHeDAT1Qqvm2tVQR24Vc3LsEzRwmuNy9PBajVONjR/Rm9Cck1e/s8eHmIf EIcdM1MYvMnMOCnODBBK25AdjgJYljiVsc7pTgez2i X-Google-Smtp-Source: AGHT+IGPqAUH/RPykVSVaglFJdihJdozlPbvSoTGsXcR0nXvouD9V9X1wSLeh0iQLT+SzQ72tUMBq5c1jJy1W6hZsnA= X-Received: by 2002:ac8:7f92:0:b0:4a4:2c46:26a2 with SMTP id d75a77b69052e-4a77a23acd8mr156063601cf.10.1750678186510; Mon, 23 Jun 2025 04:29:46 -0700 (PDT) MIME-Version: 1.0 References: <20250617152357.GB1376515@ziepe.ca> In-Reply-To: From: Pasha Tatashin Date: Mon, 23 Jun 2025 07:29:09 -0400 X-Gm-Features: AX0GCFsAwZj53l7luv9N2S4aDs-8Fu10IYCHZ0Vuqd0BsrZgbB9cxOtR2gLz2-Y Message-ID: Subject: Re: [RFC v2 05/16] luo: luo_core: integrate with KHO To: Mike Rapoport Cc: Pratyush Yadav , Jason Gunthorpe , jasonmiu@google.com, graf@amazon.com, changyuanl@google.com, dmatlack@google.com, rientjes@google.com, corbet@lwn.net, rdunlap@infradead.org, ilpo.jarvinen@linux.intel.com, kanie@linux.alibaba.com, ojeda@kernel.org, aliceryhl@google.com, masahiroy@kernel.org, akpm@linux-foundation.org, tj@kernel.org, yoann.congal@smile.fr, mmaurer@google.com, roman.gushchin@linux.dev, chenridong@huawei.com, axboe@kernel.dk, mark.rutland@arm.com, jannh@google.com, vincent.guittot@linaro.org, hannes@cmpxchg.org, dan.j.williams@intel.com, david@redhat.com, joel.granados@kernel.org, rostedt@goodmis.org, anna.schumaker@oracle.com, song@kernel.org, zhangguopeng@kylinos.cn, linux@weissschuh.net, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, gregkh@linuxfoundation.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, rafael@kernel.org, dakr@kernel.org, bartosz.golaszewski@linaro.org, cw00.choi@samsung.com, myungjoo.ham@samsung.com, yesanishhere@gmail.com, Jonathan.Cameron@huawei.com, quic_zijuhu@quicinc.com, aleksander.lobakin@intel.com, ira.weiny@intel.com, andriy.shevchenko@linux.intel.com, leon@kernel.org, lukas@wunner.de, bhelgaas@google.com, wagi@kernel.org, djeffery@redhat.com, stuart.w.hayes@gmail.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 80D7D4000A X-Stat-Signature: 68i9nmwktnjco4rrzh1z97hqb684h3t7 X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1750678187-552396 X-HE-Meta: U2FsdGVkX19IaGrNapBTJFcTPIDoBfWB+vphpyi+fxhezA8ByKJ7X8J4i8wZmayz2A7nIJ4hVLkkvZwP7OQ77asMKqIFsoDjIDg7OvKBDpvILIIlLgb6y6sGtcXOswFWrZyBMrE2c7aQUefGdModV9m6+sFtIlTu95s/M0M5iDzeO18p+NDEUk0sYk8xGCP32x2soRDI/K9v4BvDV1OwCyxgz9LZLZS2yh3WEZbq83REh/4TI17QTBxW6qpR/UR7+1e8YIUSsvNdqU7PmyjE2XZGtFbIUKhwreTOrEprNutrtmDBNUwnRMT1D8kFUa8TdpWH80m9cnL5Tiyxs5hsIotMxMgXAADQnH5O3/rkFu7V2AS6aygrDWPYQE2GUauz/2IBYmrAzgvRAt4s9X4a0m9wbOCvmd/JFnmI63XhSim11Nc5DZ0Cj8HrrvvS7c7gl9BvzIkVXpfriCcokNJp/MbLRSgp4+cXYP7A0uDki8O4aUjg3p0l/0rTG9psuQcUg9Lcy7clJ2+u3bXmBfPQ7lwNokg1dxhggtKVL0gCSaFOlMUcPwAbJ2FpESeTjHdAh0C4QbFuI4q3ZQNFX8d9pcZ+0Xfx2oG6ao0RMAJftHmx1Av43eQfUyFaucqoyZYJ8FD0OSA6u9LoFcCJUOT2U2qfhpu1Vw162Ha0ZLdOKPFTHp6epStgIpKhMqpSt0goJuOhRWM5FNWmczsHcA4HPt7lJuk4M8tGkrFkS4PGX9VRlz4G8IE0QoadpvQu8lCBrnHlpcy/i5WAL3uB+dWDl5YXpdd/sFG8GXnvX6mXdksOOZJNVogR8KDOjsP4nx0g6mIHEfAfxY3Ayz90UisB5g7GV9AHV/3Eba0c8ZGjzR3J4hz0dyPNRLWo56g/gxLe0scat8CW2wiZsMwkAm6qrW4dh3j+i4b0toN4o58A0ET8NBWIHUqa5vf5GL9vtVpcoN6Z56Nqrg7ckSBLE2w siNl0Aeg f+eQIHyLxJwNnfTFK1chiLD61M3NhQVww67TQX1eubXKa3QmhwADq+ySGTUul7tIZ360cEdQ8tBRcCsVw455ZP4yDyOh0rDJtzWXO7G4f2phkJRwNdyc+LPloKIpfQpV3WChMUWuzlpfuZDrFU5AUqbYOpvWqF15PJP7lJEOyZC+0EZxm3VqVW7IKYzA4ek1pMNsDT7Lyzd8n8J267vDav/VH5MNW+eO4Yds3W48petsSVKqAFAiOwMJrcJVsZsvAh+45bLbzgTysij+mJJnFtgG9qgHfDj6gWdQQj6XmVQp8I3jLjYLMTiCqqshC3QZhggXsIjZDZO3EmhXKo+tQom5yrAZpO4dskZ5wuhvArN+BYvQbrgTQTE7+ZXHp1Wohr4PVYz+XSLveeUk= 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 Mon, Jun 23, 2025 at 3:32=E2=80=AFAM Mike Rapoport wro= te: > > On Wed, Jun 18, 2025 at 01:43:18PM -0400, Pasha Tatashin wrote: > > On Wed, Jun 18, 2025 at 1:00=E2=80=AFPM Pasha Tatashin > > > > So currently, KHO provides the following two types of internal API: > > > > Preserve memory and metadata > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > > kho_preserve_folio() / kho_preserve_phys() > > kho_unpreserve_folio() / kho_unpreserve_phys() > > kho_restore_folio() > > > > kho_add_subtree() kho_retrieve_subtree() > > > > State machine > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > register_kho_notifier() / unregister_kho_notifier() > > > > kho_finalize() / kho_abort() > > > > We should remove the "State machine", and only keep the "Preserve > > Memory" API functions. At the time these functions are called, KHO > > should do the magic of making sure that the memory gets preserved > > across the reboot. > > > > This way, reserve_mem_init() would call: kho_preserve_folio() and > > kho_add_subtree() during boot, and be done with it. > > I agree that there's no need in notifiers. > > I even have a half cooked patch for this on top of "kho: allow to drive k= ho > from within kernel" > > From 02716e4731480bde997a9c1676b7246aa8e358de Mon Sep 17 00:00:00 2001 > From: "Mike Rapoport (Microsoft)" > Date: Sun, 22 Jun 2025 14:37:17 +0300 > Subject: [PATCH] kho: drop notifiers > > Signed-off-by: Mike Rapoport (Microsoft) > --- > include/linux/kexec_handover.h | 27 +------- > kernel/kexec_handover.c | 114 ++++++++++++++----------------- > kernel/kexec_handover_debug.c | 3 +- > kernel/kexec_handover_internal.h | 3 +- > mm/memblock.c | 56 +++------------ > 5 files changed, 65 insertions(+), 138 deletions(-) > > diff --git a/include/linux/kexec_handover.h b/include/linux/kexec_handove= r.h > index f98565def593..ac9cb6eae71f 100644 > --- a/include/linux/kexec_handover.h > +++ b/include/linux/kexec_handover.h > @@ -10,14 +10,7 @@ struct kho_scratch { > phys_addr_t size; > }; > > -/* KHO Notifier index */ > -enum kho_event { > - KEXEC_KHO_FINALIZE =3D 0, > - KEXEC_KHO_ABORT =3D 1, > -}; > - > struct folio; > -struct notifier_block; > > #define DECLARE_KHOSER_PTR(name, type) \ > union { \ > @@ -36,20 +29,15 @@ struct notifier_block; > (typeof((s).ptr))((s).phys ? phys_to_virt((s).phys) : NUL= L); \ > }) > > -struct kho_serialization; > - > #ifdef CONFIG_KEXEC_HANDOVER > bool kho_is_enabled(void); > > int kho_preserve_folio(struct folio *folio); > int kho_preserve_phys(phys_addr_t phys, size_t size); > struct folio *kho_restore_folio(phys_addr_t phys); > -int kho_add_subtree(struct kho_serialization *ser, const char *name, voi= d *fdt); > +int kho_add_subtree(const char *name, void *fdt); For completeness, we also need `void kho_remove_substree(const char *name);`, currently, all trees are removed during kho_abort(). Let's rebase and include this patch on top of the next version of LUO, that we are exchanging off list, and send it together later this week. Thanks, Pasha