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 F2F04C7EE2A for ; Wed, 25 Jun 2025 23:19:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 45DF36B00BE; Wed, 25 Jun 2025 19:19:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 40DB16B00D1; Wed, 25 Jun 2025 19:19:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2D69A6B00D2; Wed, 25 Jun 2025 19:19:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 18E1D6B00BE for ; Wed, 25 Jun 2025 19:19:00 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D48181D6EBB for ; Wed, 25 Jun 2025 23:18:59 +0000 (UTC) X-FDA: 83595490398.11.A2D308A Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) by imf04.hostedemail.com (Postfix) with ESMTP id 0C91240008 for ; Wed, 25 Jun 2025 23:18:57 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=soleen-com.20230601.gappssmtp.com header.s=20230601 header.b=yASDQAYX; spf=pass (imf04.hostedemail.com: domain of pasha.tatashin@soleen.com designates 209.85.219.171 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=1750893538; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=IiOsnbmXgKqRz5wWOYZUUHO12tKj0FKseA6eFuor5tk=; b=Qe7zM5MnNa9jrP00sLICuLUL+qpnzhb7mQRwuVAn33+mlg/ArA5bOn/wUGxE3q/sjLolOo BnX2I6BlNDEMlLRF48MwCsKOtSkwBcwm6yTO9X46UFZD35TVxje2nJPFQKNFaEH/Ybsfa6 tc4kPMYzhcepvKhacYcdDKgmXifzNV8= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=soleen-com.20230601.gappssmtp.com header.s=20230601 header.b=yASDQAYX; spf=pass (imf04.hostedemail.com: domain of pasha.tatashin@soleen.com designates 209.85.219.171 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=1750893538; a=rsa-sha256; cv=none; b=HegUYB59s/FTKItBl6OvcAO1l+KTehJq7mpTDSRE6rqkIKzSMDU1xESecLJtTR/NJd/AYt Jc6zKo6YUcsfV4pZIcEZBkxA8iJVhg/OrcR712tqK7CgwVk2G4sOOjFhRogg4B09fmEHdt gm2fPMWsNXi7K177WrGSWo/Qh9UaVhE= Received: by mail-yb1-f171.google.com with SMTP id 3f1490d57ef6-e818a572828so238509276.1 for ; Wed, 25 Jun 2025 16:18:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen-com.20230601.gappssmtp.com; s=20230601; t=1750893537; x=1751498337; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=IiOsnbmXgKqRz5wWOYZUUHO12tKj0FKseA6eFuor5tk=; b=yASDQAYXHH2QzRZ+/kOHX4GDznsIxAB9rAHZaLfHuumHHmBoWWQvidlF+VsBSttcoo JTV4NfCBuquIrs5Wg7Jov0xZF8A5qTogtEg8wMuFDlCT7E6B7/+yaQPvgqETigm4MGv2 +3WcaiAsFvXvciqOteb0Sszc8KJgNCXCQ77gXIE5NeLlcTWz4hdxhC1AQ8zhNjJ/zEjl wBvvdprLij8ZAejAulvr94rxSpETI+QtkEQSO0x4I1tqrswefsGFTCvLjguRW2DRqhDV /s/rjviwL4Ly8Jk/uJMJvqYAFrQTCngNxEHY5elIw9y0V/DBGVk2SvoHxwbNadfc3nsP 6TYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750893537; x=1751498337; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IiOsnbmXgKqRz5wWOYZUUHO12tKj0FKseA6eFuor5tk=; b=ADqQupTSG76oHh+dcEvaHxec1ntHj8zoiiaLBCaPqCFn06Ui2UMpfULyGpO0mYKE0/ 1B8v6+YVcrKCsjU1wsSv6QfN+6I5KtrgMqgXUuw9QOLIALV52y+FNfu6SWijUHmGdzyS QKo4XMuZ5w0+RaRp/uVYvSkrSmqm7VtiHWvQgIP4oO2P0jl+m7X52GX4I9ThyokEHkdw d1XXj6pnleR4o/Reaw4rpE7TPukz1D5sPC4pJEsUD1uxTx6Uw9PYFBv6SwN0QGx1fRvU u+EW9z3BCswpEP6xiWTBNdzWdYBiPnlVxww9ifdvnW14opYZKYZ2t33DFIlfiMFug4+Z zjCg== X-Forwarded-Encrypted: i=1; AJvYcCVPDM5fKMYS4TQ5biyj2QJFroM67VAELTJHqPQTtXrsjsCTSG7yXL4QKGEBlOnqXW1jmQraSDigzQ==@kvack.org X-Gm-Message-State: AOJu0Yzlm6/SXqNwOej/UJmTyByz0tpsMhqCJWUsvEmrzrnXyOlwljiI k5MN9A5mD/Jf60Z84sBH0Da+iYX+6elHs74w2LYVN+trUOKGYqGPrBora53jZOz/Q3I= X-Gm-Gg: ASbGnctHNWegjB5pLYEsO4nddpCjjrPuZIx36ZfjJcYVUH/TCuUY/u3+J2DLMRhZW57 eSU/8f3XExbw0OLG88iQrukrJXGrUfAKr4V90juURUrKItR7G7qryJEpuUzd3+ILJ9qLsn8QETu ssm7FXZ9LboUyGa/ATqpXvRvufCsrIDjF/73gfoTDfKfZIzfhTymjKxAV/QvyIGTkqlVamhuxex DtFK11Jsl1GCD0TusMZ03Na/ZMWNXFfYopSz7soYcUc3Khzxb+Ixf/+ur2iYjDcLJbRaGSLv/f9 T2DHelIucbuZChWfTJqnYVqIy+uMf+dj66QBWJT81C8FO3isFmGFJTeC3fUAv7RdOAhB5QqUnU3 8Y5pycY3trx8JLgDTH252q6ZNFGdTp1zYo3KStiubgAL2AiZ3/YE80Ty1qdisCFo= X-Google-Smtp-Source: AGHT+IHpMMB7jazz0bY3ev82KOYzlZveTNga66zjJgcMQk/SF9LbDk+lxuWqWkLu9eZxFgZd+C91eQ== X-Received: by 2002:a05:6902:1246:b0:e81:cab6:6db5 with SMTP id 3f1490d57ef6-e86016cfbebmr6753343276.8.1750893537044; Wed, 25 Jun 2025 16:18:57 -0700 (PDT) Received: from soleen.c.googlers.com.com (64.167.245.35.bc.googleusercontent.com. [35.245.167.64]) by smtp.gmail.com with ESMTPSA id 3f1490d57ef6-e842ac5c538sm3942684276.33.2025.06.25.16.18.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Jun 2025 16:18:56 -0700 (PDT) From: Pasha Tatashin To: pratyush@kernel.org, jasonmiu@google.com, graf@amazon.com, changyuanl@google.com, pasha.tatashin@soleen.com, rppt@kernel.org, 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, ptyadav@amazon.de, lennart@poettering.net, brauner@kernel.org, linux-api@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v1 08/32] kho: don't unpreserve memory during abort Date: Wed, 25 Jun 2025 23:17:55 +0000 Message-ID: <20250625231838.1897085-9-pasha.tatashin@soleen.com> X-Mailer: git-send-email 2.50.0.727.gbf7dc18ff4-goog In-Reply-To: <20250625231838.1897085-1-pasha.tatashin@soleen.com> References: <20250625231838.1897085-1-pasha.tatashin@soleen.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam11 X-Rspam-User: X-Rspamd-Queue-Id: 0C91240008 X-Stat-Signature: 9s9dqmz7mg9dn3cc1qdc7mfwbezbnjop X-HE-Tag: 1750893537-459966 X-HE-Meta: U2FsdGVkX1+aLQ09iBjIkN0psgSoIdbNjTvKLwCoHWBB59KhQ5Crft/OBIwUHS4F1n35eMyRS4vzFmWAdSmdLuO90T2jVN+bemyp4chcE2fC2ckB1Cd0aNk3T6OEgfl5Irnje9EqWQ7Lt4LrZDEwfIv84jxh1eq/ybOsmiduYne/K5ylT5+oKqy8BjPWuZy+pjfJnQ8322jlZsrFpVftvqLM2WRinNwgzKb/4WogrJjzZzOLYB6qsu/9pOwk3RbGjhZ+0Mmxu2xuK1Kpa24Z7eSb898lLP8jH8ie8zKy8iAybTQfCTLqDE9tjPV8657fxCw7QSWPCDyUq1xyxiEv5Qv0KfwHlKzI7tmgUmtadUB27JjMP8h0ku2rIfG+b/pSAJydgOSdpN5Ir5SMcFKpyRw2zZVoAq/o/7HA4I3BmyeMidMwnROEIchbA4yAVNs/DRyafHLvWJLd1n93jLCeXB3yxopvll3nAU8qfc8B2km/zKq5fm5yGc+uMZeEJQJpr7HcBWzWeaa0+eImzxtSWy0k19AUWHXrqDjX3b/i16kZ+s7ec8reFLv5M2Q16maH4UoWcpuHd23tghdoSgtEDWSWqusNcCMp9eHktmsQxZ9GyWoJFOTtncup+a7ISMQjN+pgMp/GnGI6AZqLRrZC5kLZGFs2dRMnuAUj3f63MwdYiNFPZKsu0HBOtHJTuvCI18zbQIFnvTPpiQjoS/pkr3ApjDB3rJwtl1aXpEgbPVZPj511aDYEJhxUjqG6fdFn9w23ijxzs4sDHFsPnXOe3bIPzBYbT1qQ44F3XJOWfxuD1g1f4wD+WhVP22jXfrMo9PzB9uRldzS7H+EdiLAr/FBHWJ3po1RCYTuavqv3MQkGnZoxFd/tOsohn2pLudB2ZJGwePm4GDOtkbLtLGWUzWKF5S9OG+bHJk/Iyeor8CQIf2ASiA91L7AZHTCIFIqk0DLUV84cHBHWHfMQtTi nF2b15x4 KhMjz28pXEtU9fZOG1FophAvbfa8bZyhBC4sNahou5uPtd7qVWnTe2vlSRqoh8t3ACUp5MyazVJS9yZ6RksbvUDsmfiHsvj8re+O4gI+D2QXoaC7dG5s740KpEDYhSIm1oqqAYwpp3vSS19ZBYUz99nk/4x7H3oXsT6jFBxTLhFngTJlvIhT4Q8xBqiTSXVKDrPI8hg1gN695C9yXso2oOBKA9VYoX3Us7N4emH6kMEWP9subBbcDHbjHulVi4Jzqw0yiT/q0zjT4b2aLB8rSobTXhI9AT+j09hm0Vr8AN3Rin6ZJQ28mEcAVv5R1sEggqyw4B56Ml6bidiNMTX22vdX7TBNLxQkGbSvbZ/qU6XEo2JeLBpUUVgywdaxplROkUCG3g6b4tlt8diLQHcy9OaDQfcRvutt15wZtHoI6i2lXeBTiOZHu5leU+UPnuubRfJ9Wh3+waeY2rfQ= 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: KHO allows clients to preserve memory regions at any point before the KHO state is finalized. The finalization process itself involves KHO performing its own actions, such as serializing the overall preserved memory map. If this finalization process is aborted, the current implementation destroys KHO's internal memory tracking structures (`kho_out.ser.track.orders`). This behavior effectively unpreserves all memory from KHO's perspective, regardless of whether those preservations were made by clients before the finalization attempt or by KHO itself during finalization. This premature unpreservation is incorrect. An abort of the finalization process should only undo actions taken by KHO as part of that specific finalization attempt. Individual memory regions preserved by clients prior to finalization should remain preserved, as their lifecycle is managed by the clients themselves. These clients might still need to call kho_unpreserve_folio() or kho_unpreserve_phys() based on their own logic, even after a KHO finalization attempt is aborted. Signed-off-by: Pasha Tatashin --- kernel/kexec_handover.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/kernel/kexec_handover.c b/kernel/kexec_handover.c index d9e947eac041..7ec9b0826a6e 100644 --- a/kernel/kexec_handover.c +++ b/kernel/kexec_handover.c @@ -778,31 +778,12 @@ EXPORT_SYMBOL_GPL(kho_unpreserve_phys); static int __kho_abort(void) { - int err = 0; - unsigned long order; - struct kho_mem_phys *physxa; - - xa_for_each(&kho_out.track.orders, order, physxa) { - struct kho_mem_phys_bits *bits; - unsigned long phys; - - xa_for_each(&physxa->phys_bits, phys, bits) - kfree(bits); - - xa_destroy(&physxa->phys_bits); - kfree(physxa); - } - xa_destroy(&kho_out.track.orders); - if (kho_out.preserved_mem_map) { kho_mem_ser_free(kho_out.preserved_mem_map); kho_out.preserved_mem_map = NULL; } - if (err) - pr_err("Failed to abort KHO finalization: %d\n", err); - - return err; + return 0; } int kho_abort(void) -- 2.50.0.727.gbf7dc18ff4-goog