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 10130C54795 for ; Sun, 18 May 2025 14:23:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9CB2A6B0082; Sun, 18 May 2025 10:23:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 883D66B0089; Sun, 18 May 2025 10:23:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6ACB46B0085; Sun, 18 May 2025 10:23:26 -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 3F45C6B0083 for ; Sun, 18 May 2025 10:23:26 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4C4DCE5EF4 for ; Sun, 18 May 2025 14:23:27 +0000 (UTC) X-FDA: 83456246454.16.10F766D Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) by imf24.hostedemail.com (Postfix) with ESMTP id 2BC9D180008 for ; Sun, 18 May 2025 14:23:24 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=4enDfWXR; spf=pass (imf24.hostedemail.com: domain of 3W-0paAoKCCYEJCPIaWCPNIQQING.EQONKPWZ-OOMXCEM.QTI@flex--changyuanl.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3W-0paAoKCCYEJCPIaWCPNIQQING.EQONKPWZ-OOMXCEM.QTI@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=1747578205; 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=jT7mfe7LbtE5wHDmsO21gdSBNUHVNX5bvSxUgvXaBdw=; b=f2iIyfFwuKoabjoqwxdibFpiimEnRuM7/ZjcaRVN5IbxT3i3ekRYj5OFXwbAa02kN6CFb8 GRjGlvc34eBRCnDLFFLkdSaC0j/0ekHC53j+lUkHfGVABn7o8kDKSFYUu9++t8CJ0yyNMR z5UMQ3CZpQXufMYgEmiZEjdEigPIJAY= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=4enDfWXR; spf=pass (imf24.hostedemail.com: domain of 3W-0paAoKCCYEJCPIaWCPNIQQING.EQONKPWZ-OOMXCEM.QTI@flex--changyuanl.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3W-0paAoKCCYEJCPIaWCPNIQQING.EQONKPWZ-OOMXCEM.QTI@flex--changyuanl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747578205; a=rsa-sha256; cv=none; b=UVzupsOnegqaiqLaV9rVB5hAQyeIjvqvep+RyypJVNRngdLcecrTElJHBJVBVvv4iyxVtv VB7T2lxJuY+4k+X3sng3aEy/c6bV4vJSWri75sRm/3IIPvJIQODzHcnPFIXns1LTrulmlF WfcrpG6WbD3dLhU1lWeU+D43M5XMZm0= Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-231d4e36288so20956495ad.2 for ; Sun, 18 May 2025 07:23:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747578204; x=1748183004; 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=jT7mfe7LbtE5wHDmsO21gdSBNUHVNX5bvSxUgvXaBdw=; b=4enDfWXRfx4WDIR0JoEWeGoi+lll5hlKI25I5D9QLb2+WhmL6DjPvEllMckBh4SBuF CSuRHl8Czmbr81Q3cJL2cDPX1xz0VpKvdBiQIB9Gth0wCj6FIoOnJmDMKrbQfEY0gm0m a4wycE/UtKoS7vRZyrXj0V7CO3icSEqjwGNS4cgTR+wD8h0NPm2C2MRhiV9/BJYnin3X xj+7JeFebaCJZbz1GXsypORPaNhUVm4R6NGnA4Yj4k0vecVe33/XIWMSRR5TunNY7b4o 0DxOH74ziurZT7P/R6FrwVGNQK/zcq3Tuwv547Od87pTFVx4+dCw/e9NdXy6kir+YBJI x6QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747578204; x=1748183004; 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=jT7mfe7LbtE5wHDmsO21gdSBNUHVNX5bvSxUgvXaBdw=; b=dM9vsBVucXIfCQPFMliBQF1nz5/gV6+aKYEaoweFmWFX4SGiwcbsywBZsF9MIXjuXM hESvcQhjUWKsl163Ma1uCIumortsZEpZ3UGguKQwzFMzluP8l/sb7VaO4Efab4Lo7Fd0 R3LJOC/nYBFUeQ/axhlbOzSU71Ef176lx8WRJCSw2Pm4A9Q3yHVhgdLYPLCPF1AZVNKx NbxloDGYXZVEFXYfTH31df3qaqswV8ALQAxuLeEKCG6/xpneq0iz5A7Ua8wXLptviD13 O6RJw4NTUVxueRECsu2pMTDAXl6pe7sE8Hma94R+9k1nUMPO4h3y6/frH6An9nLlDGNH zwvA== X-Forwarded-Encrypted: i=1; AJvYcCUjXgrOjiVifcdQ9lMjBwEitY+LD3NCxyma1PP5lsgcyzWQrPnSXwbPBfVSJud53vRL5VR1iMGDpQ==@kvack.org X-Gm-Message-State: AOJu0YxF1mEnajnZbpp247ywRVQVQKcVixXpdrncShjlnLROTsRuuGrZ JlcP4wkuNjq36SJHDkHQ66eepf3cXDY4yNslm9K9yEPP4pk4mfkaABfyjtvzfSaEEhA49Kbe5o+ 3bHS7nX8Gk0rswa8AG5A/Xg== X-Google-Smtp-Source: AGHT+IGypgJXeP8ubYjhVjl0jk8L37IfHdOWll/4sSzsWQWyLqo/POjIy3VpEHrpZd9cWUYbykkM//Boenh7zHui X-Received: from ploh6.prod.google.com ([2002:a17:902:f706:b0:22e:3312:15a5]) (user=changyuanl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:94f:b0:220:ea90:191e with SMTP id d9443c01a7336-231d43d9ca1mr147409035ad.4.1747578203986; Sun, 18 May 2025 07:23:23 -0700 (PDT) Date: Sun, 18 May 2025 07:23:14 -0700 In-Reply-To: <20250518142315.241670-1-changyuanl@google.com> Mime-Version: 1.0 References: <20250518142315.241670-1-changyuanl@google.com> X-Mailer: git-send-email 2.49.0.1101.gccaa498523-goog Message-ID: <20250518142315.241670-2-changyuanl@google.com> Subject: [PATCH 1/2] memblock: show a warning if allocation in KHO scratch fails From: Changyuan Lyu To: rppt@kernel.org, akpm@linux-foundation.org Cc: graf@amazon.com, bhe@redhat.com, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, chrisl@kernel.org, pasha.tatashin@soleen.com, jasonmiu@google.com, Changyuan Lyu Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Queue-Id: 2BC9D180008 X-Rspamd-Server: rspam09 X-Stat-Signature: hkzjx6g17qqkx91pg8rbc4d7n3ymisuh X-HE-Tag: 1747578204-438298 X-HE-Meta: U2FsdGVkX18RD9jni8gMCCWrpWxrdstUpWQ4b/KVCLSBFiRn7lSAq+xRS4TeTz9KjIyrhGAq7sN47Jnbu+GcDFgoJPquL2A4nWlU+vS8oWqcrTVAc3GZdUoiteeoHkmmtiOozgv3K9uJ/Ewr01coDdySNoOf6fpz+xW5+IjW3iG0ZECedSt2tSKc4YdKCACplft/kHMBpkmt4DhOEK9+0UVIZHX49uH78qAk5ZwzICRVWzVesiQhz6dNpNf0SXgSHsqFz0N+5WLJpt+NjMZBagYistepfDqxNcTOFq+nUhtk9+3NRS+rouH4KBwlDvnYq+Brms7aXci/MkCFS9vuiOx4P83gMSUnttzzjQwPIzsPcrG5Y6gOKCEEDUFaVSFsgDOD1pEdpNPlZ19zck2Zdz1GMi75WPlcNyKIP9oMWq+QC15Z+diROPasb9JM5xEqc1OecCAm4mQ4oNxZ6jUjU6a/Pup+MBqJQ4BY5L9PS8k0IhOguqGZPPgPwd1k8n7ZqOoxvPK6bJLv4L9KWQyhM0UGApX4s0/wBEVpaSQKVqJhnJ0tR82ZzA0lMBI6aeE3DWsXo5yBTB5TtjjW7v4B3+DBW9GL6d2MY6ye2x5Y+4kjuRrtoWNPqfQ9a1Y81ZIApg2EEDw2c8q+CmoVP/eHGqweKkBubP6v6cln3GE4d9mpzHMK4aCB8AOobWirw1XiPXPZInZ4BrcR/GR/mB2PMvhQa3hSHMfYOcGyfzYwd8icbLKl4rKUs3JG/uurF3bW9wXqrS0r2hahGTfswT491+Rh1aW8NOuwnZR2YjpeKVOhtAzipYWnucmxqTYvowpuueehe351Yt35e23gUhLuOEXrzeATEhC/n42AVoeBhqyPaMTsVo+GebzWjrQSOMdnZryqDBV/zJjoF/5d22/V+25V8un26yxy0CDoh3H+s4ZNhLNk8okVUPe7scgozbKghK7B753JIPQbKyyat2+ R3dFkjqc 2BiV3OfVXYutczs6VT5KerHv70Ll/e5SGx44UaR3xOWSP0InjKb1QcjEjhJzUJbvgNUTGtb35Cnsemk1hcs4CdqF5n9SKGDumqLin8/YFK7TPcmZL3TXOR6uyK1jMSvh48+bdU0+0g9bzm5fBmbyYFEwt14be9AHTrIUJp+/LE2QWNmQJ8MrvWlxkzQQcJIpXkKjFEoRmA+osv/ysrDhwmHYf5/l8BRWSklVL9XHzv6EI7RZnI19ZOcRv6Z7RJjBBYfKxOHL0P8xlhkfxmBeDiqempQg53So1Yi1W/D3G5qaV7K67NtVyVntEatkUima05TJdfXsfVJ8blJoBm6NP7mVK9Y4m9xGMWKBOP82yg9QgwDhJkYBl8YMMRZc1HL9TjdB5YIJaLodyw1OAUjf17kF8XINtAi7lUdQTZZPS92mv0p0pfrfr54voTuM3uv5OwqQYQJYGrZy3cOFFhur/NRQTICL7SeytfREvDTTjdR8/hICtXOgnfPat4oF6iy6oXxYSDqFCvaW/kL563jbqK6ampIzl48xhaP7mjOD31et5Z0JcNK4om6jVlqLrBfK7mIhZ 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: When we kexec into a new kernel from an old kernel with KHO enabled, the new kernel allocates vmemmap in the scratch area. If the KHO scratch size is too small, vmemmap allocation would fail and cause kernel panic, like the following, [ 0.027133] Faking a node at [mem 0x0000000000000000-0x00000004ffffffff] [ 0.027877] NODE_DATA(0) allocated [mem 0x4e4bd5a00-0x4e4bfffff] [ 0.029696] sparse_init_nid: node[0] memory map backing failed. Some memory will not be available. [ 0.029698] Zone ranges: [ 0.030974] DMA [mem 0x0000000000001000-0x0000000000ffffff] [ 0.031627] DMA32 [mem 0x0000000001000000-0x00000000ffffffff] [ 0.032281] Normal [mem 0x0000000100000000-0x00000004ffffffff] [ 0.032930] Device empty [ 0.033251] Movable zone start for each node [ 0.033710] Early memory node ranges [ 0.034108] node 0: [mem 0x0000000000001000-0x000000000007ffff] [ 0.034801] node 0: [mem 0x0000000000100000-0x00000000773fffff] [ 0.035461] node 0: [mem 0x0000000077400000-0x00000000775fffff] [ 0.036116] node 0: [mem 0x0000000077600000-0x000000007fffffff] [ 0.036768] node 0: [mem 0x0000000100000000-0x00000004ccbfffff] [ 0.037423] node 0: [mem 0x00000004ccc00000-0x00000004e4bfffff] [ 0.038111] BUG: kernel NULL pointer dereference, address: 0000000000000010 [ 0.038880] #PF: supervisor write access in kernel mode [ 0.039474] #PF: error_code(0x0002) - not-present page [ 0.040056] PGD 0 P4D 0 [ 0.040335] Oops: Oops: 0002 [#1] SMP [ 0.040745] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.15.0-rc4+ #275 NONE [ 0.041541] RIP: 0010:__bitmap_set+0x2b/0x80 [ 0.041992] Code: 0f 1e fa 55 48 89 e5 89 f1 89 f0 c1 e8 06 48 8d 04 c7 48 c7 c7 ff ff ff ff 48 d3 e7 41 89 f0 41 83 c8 c0 44 89 c6 01 d6 78 43 <48> 09 38 48 83 c0 08 83 fe 40 72 1a 41 8d 3c 10 83 c7 40 48 c7 00 [ 0.043986] RSP: 0000:ffffffff96203df0 EFLAGS: 00010047 [ 0.044546] RAX: 0000000000000010 RBX: 000000000000cc00 RCX: 0000000000000000 [ 0.045311] RDX: 0000000000000040 RSI: 0000000000000000 RDI: ffffffffffffffff [ 0.046075] RBP: ffffffff96203df0 R08: 00000000ffffffc0 R09: ffffffff9626c950 [ 0.046830] R10: 000000000002fffd R11: 0000000000000004 R12: 0000000000008000 [ 0.047574] R13: 0000000000000000 R14: 000000000000003f R15: 000000000000009b [ 0.048313] FS: 0000000000000000(0000) GS:0000000000000000(0000) knlGS:0000000000000000 [ 0.049151] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.049751] CR2: 0000000000000010 CR3: 00000004d123e000 CR4: 00000000000200b0 [ 0.050494] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 0.051238] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 0.051978] Call Trace: [ 0.052235] [ 0.052455] subsection_map_init+0xe4/0x130 [ 0.052891] free_area_init+0x217/0x3d0 [ 0.053290] zone_sizes_init+0x5e/0x80 [ 0.053682] paging_init+0x27/0x30 [ 0.054046] setup_arch+0x307/0x3e0 [ 0.054422] start_kernel+0x59/0x390 [ 0.054820] x86_64_start_reservations+0x28/0x30 [ 0.055307] x86_64_start_kernel+0x70/0x80 [ 0.055736] common_startup_64+0x13b/0x140 [ 0.056165] [ 0.056392] CR2: 0000000000000010 [ 0.056737] ---[ end trace 0000000000000000 ]--- [ 0.057218] RIP: 0010:__bitmap_set+0x2b/0x80 [ 0.057667] Code: 0f 1e fa 55 48 89 e5 89 f1 89 f0 c1 e8 06 48 8d 04 c7 48 c7 c7 ff ff ff ff 48 d3 e7 41 89 f0 41 83 c8 c0 44 89 c6 01 d6 78 43 <48> 09 38 48 83 c0 08 83 fe 40 72 1a 41 8d 3c 10 83 c7 40 48 c7 00 [ 0.059650] RSP: 0000:ffffffff96203df0 EFLAGS: 00010047 [ 0.060218] RAX: 0000000000000010 RBX: 000000000000cc00 RCX: 0000000000000000 [ 0.060985] RDX: 0000000000000040 RSI: 0000000000000000 RDI: ffffffffffffffff [ 0.061728] RBP: ffffffff96203df0 R08: 00000000ffffffc0 R09: ffffffff9626c950 [ 0.062486] R10: 000000000002fffd R11: 0000000000000004 R12: 0000000000008000 [ 0.063228] R13: 0000000000000000 R14: 000000000000003f R15: 000000000000009b [ 0.063968] FS: 0000000000000000(0000) GS:0000000000000000(0000) knlGS:0000000000000000 [ 0.064812] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.065423] CR2: 0000000000000010 CR3: 00000004d123e000 CR4: 00000000000200b0 [ 0.066175] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 0.066926] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 0.067678] Kernel panic - not syncing: Attempted to kill the idle task! [ 0.068403] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]--- The panic above can be easily reproduced by the following steps, 1. boot a VM with 20GiB physical memory (or larger) and kernel command line "kho=on kho_scratch=2m,256m,128m" 2. echo 1 > /sys/kernel/debug/kho/out/finalize 3. kexec to a new kernel The current panic log above is confusing and it's hard to find the root cause. Add an error log to make it easier to debug such kind of panics. Fixes: d59f43b57480 ("memblock: add support for scratch memory") Signed-off-by: Changyuan Lyu --- mm/memblock.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/memblock.c b/mm/memblock.c index 154f1d73b61f..ed886bfd3de7 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1573,6 +1573,9 @@ phys_addr_t __init memblock_alloc_range_nid(phys_addr_t size, goto again; } + if (flags & MEMBLOCK_KHO_SCRATCH) + pr_err_once("Could not allocate %pap bytes in KHO scratch\n", &size); + return 0; done: -- 2.49.0.1101.gccaa498523-goog