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 DDE43C2D0CD for ; Wed, 21 May 2025 07:03:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 100E96B0082; Wed, 21 May 2025 03:03:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0B1CE6B0085; Wed, 21 May 2025 03:03:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F097F6B0088; Wed, 21 May 2025 03:03:28 -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 D2DB16B0082 for ; Wed, 21 May 2025 03:03:28 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 476DA14062A for ; Wed, 21 May 2025 07:03:28 +0000 (UTC) X-FDA: 83466024096.05.AE932B7 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf07.hostedemail.com (Postfix) with ESMTP id 76C4F40012 for ; Wed, 21 May 2025 07:03:26 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=UrD56H1s; spf=pass (imf07.hostedemail.com: domain of 3vHotaAoKCK8RWPcVnjPcaVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--changyuanl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3vHotaAoKCK8RWPcVnjPcaVddVaT.RdbaXcjm-bbZkPRZ.dgV@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=1747811006; 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=fvqFxmwCugkGRFduaM1yC9/G72/UC4N96zy6Pb6E2hc=; b=LQ09j6cZex/v3QEvmcka6g1sx1nMK8ufv+i0yt2R2QgCF6htghj0glcI7otrzjB7/6ALJO WGGu4dGFLy9cThhdbsY2R3n0TCBneKsmqGhcAQ7vOHywwSS/rn7Vq+Bkqdk1mx709X6gqZ ZRWQHY0uqBRQmi5tCnfbppzebC0D5yQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747811006; a=rsa-sha256; cv=none; b=QgjVIHNBHSSnQnrCVIF3O2BoAhGRUPSiLVfaNvm7sbVLuxDAJeyfATQUyf4gS1yaL21yMB A2ZVzJJ+8ctEotzx9jKi3m8wko29eTrEf+5G6SBkvgvVQUm+FQgClc3OjH0bqy5dW3ZWKl Luz+Gmjl5j2OzkHba11CMM0xfz1ArZ0= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=UrD56H1s; spf=pass (imf07.hostedemail.com: domain of 3vHotaAoKCK8RWPcVnjPcaVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--changyuanl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3vHotaAoKCK8RWPcVnjPcaVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--changyuanl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-231d7a20b31so49685985ad.0 for ; Wed, 21 May 2025 00:03:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747811005; x=1748415805; 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=fvqFxmwCugkGRFduaM1yC9/G72/UC4N96zy6Pb6E2hc=; b=UrD56H1sgqE1SnMNjhjJD+WZD95HZ3FV/m5jFApsLcQvbRUZkqfpXQRJN9q9uXFQsD TspOjgmG4MJjnMimPQ2fpBIDcyjSalTsuYQQBi2Kw1wIBPiocKaw5fJLpff9iDeHhGTD RscWZskdZVXYooKlJYkS8ic7Brf0WztAZGLvkyNWzyCCsBilO880GfbGvthyR6cgddF7 fXKhPAAiDbptEYg0qTK0HZMyeRzj8l1BICE/UaYKD9bUW+6gk8TFoTZfZ7/Riu6NT/8J hJNig53+/KBecWwRgGcr74QKJf7pWSypgMt10TSdQwrht0JT9rDQ1bbENHJrjdcRNOIL WnsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747811005; x=1748415805; 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=fvqFxmwCugkGRFduaM1yC9/G72/UC4N96zy6Pb6E2hc=; b=BAIDAMXLTzL/VHOx9XYNDGQJnV/5wLp21eZ9lPa4ZbeYfRu4OTbMPnCF56xGt2h9WV wauLbjDyyk+yi591W3uef8Dyk/S4/7uWk6kwIa6SAOyVcdhCNRF4gyPoD1HSSgX4OwQH B23Uajc/pf6017KMN/esWVYc8tNUho/f8b1YaGB8xz8b9lH8QdiYCDIDt38chYqrIr87 tojQHnm9kNdS5EqaSB0Q1joOVAPWbkVutDoi+sZXGmIIkwWRSKgdgSSAd/gL8HaLDaH/ n2b6rmdgq355CvTq/DVYFfviMy8Nw7eY5iTjbBc2b1ZaWK0OufrGZS7+QAPtmxUTZd7Q voYw== X-Forwarded-Encrypted: i=1; AJvYcCVHHKNAcej6Rgsgi+/JK5AGmjqtJVeCwMdHJy9NruZuEr9zuCwg2U4d2CkyuGCUaLhrLFPhvU1b/A==@kvack.org X-Gm-Message-State: AOJu0YwWyiCGLH1WmJvZUVR/y1UruDunMBCrpyqO1uitPs6YgDfbU4KE 0P/MQ+TCdEy1HE2RAQ97byg23TsXA5UAylJI1MC/Vg4U/shoCorlnfEeH7N/s6K2p8knuo1/LRm FY5BW9Y3k0i76WMtARhQAeg== X-Google-Smtp-Source: AGHT+IF6aDnLlx0cahb66vqQ/hyXs7ORhFhmlY5s4lac6acsvfd20OfJpd5g3oyQKnm4eJ+Vxo2lhAf+V0NPk9Qi X-Received: from pliy11.prod.google.com ([2002:a17:903:3d0b:b0:231:e2ee:34c9]) (user=changyuanl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:2f4c:b0:231:bbbe:3c85 with SMTP id d9443c01a7336-231d45a9b69mr316255325ad.38.1747811004933; Wed, 21 May 2025 00:03:24 -0700 (PDT) Date: Wed, 21 May 2025 00:03:10 -0700 In-Reply-To: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.49.0.1112.g889b7c5bd8-goog Message-ID: <20250521070310.2478491-1-changyuanl@google.com> Subject: Re: [PATCH 1/2] memblock: show a warning if allocation in KHO scratch fails From: Changyuan Lyu To: rppt@kernel.org Cc: akpm@linux-foundation.org, bhe@redhat.com, changyuanl@google.com, chrisl@kernel.org, graf@amazon.com, jasonmiu@google.com, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, pasha.tatashin@soleen.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 76C4F40012 X-Stat-Signature: orusx9uporrqchjgrocghkjrnjuo6uuo X-Rspam-User: X-HE-Tag: 1747811006-416138 X-HE-Meta: U2FsdGVkX19Fy/cKphtRzGB7qS5TnCvQ2j1RSBOsqlOQlaFtTp/HfPOmXTnMC9SQ/utK1cNhyy3UHQMWmGYkAjoKW+cdT2/0y2qmb94AYGsx61WoHDHtQfbQ4xvpQlA5Tt3ipfhS1sAP5I223gUlsaYTZmjgibfYIiryndRCpQ1nNq/wPMb5aSxay7AiAQPf7yOo5tidcKB/DJsayW7HPnDOmPJrIBFL8yVg3JgnFyscug3/cemAF8vcJihq9dRgTgkOf54YO5zqiQHqKKABkHH1xVSk7rAOyw12FarPIuVnvKmN+SzNHgAp//piERolYePRntPy4alKBisNBB5Ac7asaZ5yRQHhligAINyt5Pb+Q5iVyEgKoak5ZBRqQ1mtddUJU24ckAJ5OSRGaDfbR8wNDDX0boqxrNKRYbAza4aLboZwiBV+ihi3U53d3TS2hptQOkqSLv5UyYtBvhPyCmSoc/EBUjFE4IjWnWjnFDNprwvyR14popEU+gkO6jUyloQp5UMELcCrgMuGHDxRB3IHUuPRh16phluRcB8stIt7h1ENE3WmogBKZHdJ6hfE/RGGGi55k73ZpV0Jko/9eDH6M5a9Nieeb2fl7+0kWDPSfv7XEK0ZAhfraY3pZtDy0fC+dG2h7/SLMaH4nMeWkMfa4YjmgnJ2bqpIdrWeKELpmvBrEmOfQ/MTY/sERFTExNbHaI1+R+4Pw3bNvHGQm7YTkapwkNC4aPusxXhsfsG4j+gGqtxroG/BYWduZ+tZ7evZVZZhoArGg0nqx38Fc4Leo9SQ8SLWHSEDvS4LcOH3c+D6x2eKWvEgb7wVZrX9s+gJl4tgK9xxawNW0uJ1fPYKb0OT76gXqvdzdqsjeGlDQkfE16L42Y9Wj2OyrS9jt2HSjLD9Rh7MdwXNmYME+pVuIiqeVF00qju9IYp6C8aAcs0BBqy/04qVuegxSFmznpXuiz3N76jf9iVHWUW se43byEQ aVbV0rUPpydQrv7zykJWjD3DgxtS3NQQSulCCo2pC8vDfJLmROVwJmtY/QJcJ/7hBisNSBjUfBbI9QZNg20RB1X1JBPNwczcfn5Ys7yLfDjqnJyewWv/pco2atpMT9c7i5mQiA313NdYXaBolwcpxkWMeJby+tbB/4pjRR7vrHS147Ul1uPgPEnpxJYHpmNYj5YgF9o9ajcYSr5HOPLOoCosOWxNdSQUhQ049yu5WKwlAMEf0L79X6Py0XPsO3TldPVGi2ba+FozjehHNlQAl/yesSrORM0KnCmFrnVF+9+jbekvqtCq9q2jSfJvpER+vR95/YLKSpbTnI2S/iBZQlMAFZvlHiKwgW17rF/hwrJ3hWTnIKYQjWhx+L/p6hb7KCoiH6EyjRPE93M/4CraOlrlxO5HlHY028hLVpUFv1by7DngFji32uc/wq0N3j44mdA3FiDbVERq9R7jfxC9fIeYleHHa9EgtuD6ykbfRlw5HhjifSGElsbPyw/Ui/oa2Lyfy5anzo8XK42Mnx9XdPX4TmHNy0biwBYdvNXqZencK9+xeFMZC/qnBU6FRkDHqxuU/2PePksWE3E0gwfAMJ22WbcGkCHJwO+kC 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: Hi Mike, On Sun, May 18, 2025 at 19:07:02 +0300, Mike Rapoport wrote: > On Sun, May 18, 2025 at 07:23:14AM -0700, Changyuan Lyu wrote: > > 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 > > This can be reproduced without KHO, just squeeze the RAM size, boot with a huge > kernel and initrd and you'll get the same panic. > > The issue is that sparse_init_nid() does not treat allocation failures as > fatal and just continues with some sections being unpopulated and then > subsection_map_init() presumes all the sections are valid. > > This should be fixed in mm/sparse.c regardless of KHO, maybe as simple as > > diff --git a/mm/sparse.c b/mm/sparse.c > index 3c012cf83cc2..64d071f9f037 100644 > --- a/mm/sparse.c > +++ b/mm/sparse.c > @@ -197,6 +197,10 @@ void __init subsection_map_init(unsigned long pfn, unsigned long nr_pages) > pfns = min(nr_pages, PAGES_PER_SECTION > - (pfn & ~PAGE_SECTION_MASK)); > ms = __nr_to_section(nr); > + > + if (!ms->section_mem_map) > + continue; > + > subsection_mask_set(ms->usage->subsection_map, pfn, pfns); > > pr_debug("%s: sec: %lu pfns: %lu set(%d, %d)\n", __func__, nr, I tried your patch and the kernel log now looks like [ 0.027562] Faking a node at [mem 0x0000000000000000-0x000000057fffffff] [ 0.028338] NODE_DATA(0) allocated [mem 0x562bd5a00-0x562bfffff] [ 0.029201] Could not allocate 0x0000000014000000 bytes in KHO scratch [ 0.030229] sparse_init_nid: node[0] memory map backing failed. Some memory will not be available. [ 0.030232] Zone ranges: [ 0.031539] DMA [mem 0x0000000000001000-0x0000000000ffffff] [ 0.032242] DMA32 [mem 0x0000000001000000-0x00000000ffffffff] [ 0.032952] Normal [mem 0x0000000100000000-0x000000057fffffff] [ 0.033658] Device empty [ 0.033987] Movable zone start for each node [ 0.034473] Early memory node ranges [ 0.034878] node 0: [mem 0x0000000000001000-0x000000000007ffff] [ 0.035591] node 0: [mem 0x0000000000100000-0x00000000773fffff] [ 0.036308] node 0: [mem 0x0000000077400000-0x00000000775fffff] [ 0.037030] node 0: [mem 0x0000000077600000-0x000000007fffffff] [ 0.037750] node 0: [mem 0x0000000100000000-0x000000054abfffff] [ 0.038463] node 0: [mem 0x000000054ac00000-0x0000000562bfffff] [ 0.039180] node 0: [mem 0x0000000562c00000-0x000000057fffffff] [ 0.039901] Initmem setup node 0 [mem 0x0000000000001000-0x000000057fffffff] [ 0.040707] On node 0, zone DMA: 1 pages in unavailable ranges [ 0.041401] On node 0, zone DMA: 128 pages in unavailable ranges [ 0.221829] BUG: kernel NULL pointer dereference, address: 0000000000000018 [ 0.222675] #PF: supervisor read access in kernel mode [ 0.223271] #PF: error_code(0x0000) - not-present page [ 0.223859] PGD 0 P4D 0 [ 0.224152] Oops: Oops: 0000 [#1] SMP [ 0.224575] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.15.0-rc4+ #279 NONE [ 0.225439] RIP: 0010:set_pageblock_migratetype+0x97/0xd0 [ 0.226069] Code: b6 c9 c1 e1 04 48 01 c8 eb 02 31 c0 48 8b 70 08 89 f9 c1 e9 07 c1 ef 0d 83 e7 03 80 e1 3c 41 b8 07 00 00 00 49 d3 e0 48 d3 e2 <48> 8b 44 fe 18 49 f7 d0 48 89 c1 4c 21 c1 48 09 d1 f0 48 0f b1 4c [ 0.228231] RSP: 0000:ffffffffa4203d58 EFLAGS: 00010046 [ 0.228834] RAX: ffff8e4722bd13b0 RBX: 0000000000000000 RCX: 0000000000009b00 [ 0.229664] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000000 [ 0.230487] RBP: ffffffffa4203d58 R08: 0000000000000007 R09: 0000000000000000 [ 0.231303] R10: ffffffffa4edc610 R11: 000000000000000c R12: 000000000054ac00 [ 0.232119] R13: 0017fff000000000 R14: 0000000000000002 R15: 00000000004d8000 [ 0.232937] FS: 0000000000000000(0000) GS:0000000000000000(0000) knlGS:0000000000000000 [ 0.233868] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.234529] CR2: 0000000000000018 CR3: 000000055923e000 CR4: 00000000000200b0 [ 0.235351] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 0.236171] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 0.236990] Call Trace: [ 0.237272] [ 0.237514] memmap_init_range+0x1d8/0x210 [ 0.237983] memmap_init_zone_range+0x7f/0xb0 [ 0.238488] memmap_init+0x9a/0x120 [ 0.238892] free_area_init+0x369/0x3d0 [ 0.239331] zone_sizes_init+0x5e/0x80 [ 0.239765] paging_init+0x27/0x30 [ 0.240153] setup_arch+0x307/0x3e0 [ 0.240556] start_kernel+0x59/0x390 [ 0.240968] x86_64_start_reservations+0x28/0x30 [ 0.241493] x86_64_start_kernel+0x70/0x80 [ 0.241962] common_startup_64+0x13b/0x140 [ 0.242433] [ 0.242682] CR2: 0000000000000018 [ 0.243064] ---[ end trace 0000000000000000 ]--- It seems we are just defering the panic from subsection_map_init() to memmap_init(). To me it is still not obvious that the failure was caused by samll KHO scratch. I think the error log in my original patch still makes sense since it indicates potential panics early. > > 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 > > -- > Sincerely yours, > Mike. Best, Changyuan