From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pz2-f1.google.com (mail-pz2-f1.google.com [74.125.228.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 72901435528 for ; Thu, 6 Aug 2026 09:35:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008952; cv=none; b=ZzaKp6PPqooDxcpo0fb5tFGV+aEA8PrjSuMKj7BwEJAXjHIf3pIxEhPjN7Wa0zPSheJ9e5m9yGZq+uvoLb7swg49H3O/iD8EG/2/VDlPkfZDHM1m4wJnmB1P3JQfKBWA3kfzepLKhWNd+xtNbZLAe0fECmzp5niquE2IDQ06QBI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008952; c=relaxed/simple; bh=PZZL/NWy6VBObnRhtunYLM2umAGqZc9M5rEhiePSLao=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jeSabil8QX/m+s5C6Vq59WOVYWlKnJW4MsKBZtQNNBH6T6885gZF1YSV6xZJ+Ng8nUDXrpaByWLvXoq83Web4UAz0NNFSQPCc3KTgeJ9WX8WkZj7HylWzmiLPMhrt4/Zi2ZrxKmuFCCkJHzlndrpYwkm9RmhEj57S1KjiQL27Jw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=qWXI+juy; arc=none smtp.client-ip=74.125.228.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qWXI+juy" Received: by mail-pz2-f1.google.com with SMTP id 41be03b00d2f7-cbb8ebaca74so1068354a12.1 for ; Thu, 06 Aug 2026 02:35:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786008948; x=1786613748; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=3gF4E42dXY09sWBsDK5gTPPv7oygQNLJ0717q+HvJkA=; b=qWXI+juy163kfjtQrHJp24i2XyKLmu9afWdnj2EbD+AjwR608R6rcf8TVydmHY6BTl cnmnOSSDFa9KF6+bCfeHVzrBmYQ7D7YIUzQSJdd0cUZWRNlXkVEzj7UU9BxZYDp+4ThA HAWdCtll3UMThFmy7vD4YTsiQL2CCQ5QNVe1/UNFSrF499tKdzEedIlRZ4OfEkghi3P8 zYjUuhp6BdeuxS2x2bU/vVaWk7irBWSf7u/4/dSdC7+PcMRGemYlAokI+K7EnqdEu0QX 1hgJUDT8rXcejeW+gc9Ui0hzbL4+RNniP7wmCVwyGPlFALfRfbwNxnBdBuf8oAWC9c05 II5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786008948; x=1786613748; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=3gF4E42dXY09sWBsDK5gTPPv7oygQNLJ0717q+HvJkA=; b=sRUIV1ol9lQiTMgE2J47ne2DIA4KDuOMq8ESOWjPBzyV1B4kzSMH6+WJ9a5utSuKRG r/soAy8Fj/ZDvCAEi8cpnnyxOqNGHzQ9XwKz+UOu1QY537j7rTSvi/0BANF5rYhFgMky aqZArDXp/fB5oJyAc0Azo39er0Ei2DaW70aAe0kCtn5iBvV3HlNf6iQPisNswAIFQrEF WNT1Y+2aYAHPhAlu1/qWf4Ur5K9Xoq4D23E386K2aHV+j19cchPiiBh87zILULZRbmor scn3tQ6t8uagCIzFHBR76c0fPDF62fkWfGlntnMy275vRQwi1/5VsaFuZGi72fZp04MJ ncZQ== X-Forwarded-Encrypted: i=1; AHgh+RrzdhmnbpwVFQu4C3A/aQBgUCraJxlzEVqZAlCWkKAwxvWG3JgntdhOe3dc7iZpdzbdhLdSGvF0BR0qMJI=@vger.kernel.org X-Gm-Message-State: AOJu0YwrfZbFk7cbrWob1peV4IZF8JYTUjHWK5cfcT/0BudlO6L6CrG7 w8en2wL4MStWiut4nt6TgEKCrP+B+XOqznsuHViHYviWhON4M1r1pBJi X-Gm-Gg: AR+sD12ZAKtcGBCss9KKMGmNjkSLqSiyJkSCX9W/j1mwWhatRM5fXmysYklc4pAhT5K PKtAKRLJp+E3x4a2N8Qw/UJT14p9peXcNnCb4vpk5q9tG6qROq4ilMsZSyFD8d5GDkNGcSW6v3H Rc1VGRDbUN8vHdly4Hnm2pOzhSgR+HrXobaBSxchTKwRpvaDBk63ecngQsdq4ezhaGi8Z/FROVw HTy9BMcx05BK1jrLE2ZGq5/kduvqdfAAoBihiNOEHNE8lETKuf+JSjqTmR3qQHVTzDcT26OwNFs DjuDu4oGgWxalQw92gFolHCyjpUviuAy8rRkItsRatc3rtVaI/8naGrXuMDWu44iQDXMXaQ6Ucc deTPNP5aveNU2itsCWONuTVEcMMvSWXgXxlfnjgK+yw2+yVV5xMeaQU6hu8//t1KE5MveNoo5gu 5RSbMSTdwYWVer72NKtvLK9UISxeb7ZHmxKNr+/pjj9IVeuBOI4zr3gFpPTob+U1So28F+Ue8cv g== X-Received: by 2002:a05:6a00:302a:b0:848:7443:f2de with SMTP id d2e1a72fcca58-84f2dff77cbmr16112920b3a.13.1786008947826; Thu, 06 Aug 2026 02:35:47 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.35.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:35:47 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 1/8] memblock: introduce MEMBLOCK_NODUMP flag Date: Thu, 6 Aug 2026 17:35:12 +0800 Message-ID: <20260806093519.2907771-2-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen Add MEMBLOCK_NODUMP to mark regions that should be excluded from kdump vmcores. The flag is meant for reserved memory that carries no data useful for crash analysis. Reusable reserved regions such as CMA may hold useful data, so these regions must not be marked MEMBLOCK_NODUMP. Subsequent patches wire this up for /reserved-memory and /memreserve/ entries. Suggested-by: Rob Herring Signed-off-by: Wandun Chen Tested-by: Meijing Zhao --- include/linux/memblock.h | 9 +++++++++ mm/memblock.c | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index d62db9e776cf..b2fcf11fba2b 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h @@ -52,6 +52,8 @@ extern unsigned long long max_possible_pfn; * kernel that we know is good to use. It is the only memory that * allocations may happen from in this phase. * @MEMBLOCK_RSRV_HUGETLB: memory is reserved for hugetlb pages + * @MEMBLOCK_NODUMP: exclude from kdump vmcore. It carries no data useful + * for crash analysis (e.g. firmware carveouts). */ enum memblock_flags { MEMBLOCK_NONE =3D 0x0, /* No special request */ @@ -63,6 +65,7 @@ enum memblock_flags { MEMBLOCK_RSRV_KERN =3D 0x20, /* memory reserved for kernel use */ MEMBLOCK_KHO_SCRATCH =3D 0x40, /* scratch memory for kexec handover */ MEMBLOCK_RSRV_HUGETLB =3D 0x80, /* memory reserved for hugetlb pages */ + MEMBLOCK_NODUMP =3D 0x100,/* exclude from kdump vmcore */ }; =20 /** @@ -160,6 +163,7 @@ int memblock_reserved_mark_noinit(phys_addr_t base, phy= s_addr_t size); int memblock_reserved_mark_kern(phys_addr_t base, phys_addr_t size); int memblock_mark_kho_scratch(phys_addr_t base, phys_addr_t size); int memblock_clear_kho_scratch(phys_addr_t base, phys_addr_t size); +int memblock_mark_nodump(phys_addr_t base, phys_addr_t size); =20 void memblock_free(void *ptr, size_t size); void reset_all_zones_managed_pages(void); @@ -306,6 +310,11 @@ static inline bool memblock_is_kho_scratch(struct memb= lock_region *m) return m->flags & MEMBLOCK_KHO_SCRATCH; } =20 +static inline bool memblock_is_nodump(struct memblock_region *m) +{ + return m->flags & MEMBLOCK_NODUMP; +} + int memblock_search_pfn_nid(unsigned long pfn, unsigned long *start_pfn, unsigned long *end_pfn); void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn, diff --git a/mm/memblock.c b/mm/memblock.c index 9ce86349a29f..79231634c25b 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1204,6 +1204,21 @@ __init int memblock_clear_kho_scratch(phys_addr_t ba= se, phys_addr_t size) MEMBLOCK_KHO_SCRATCH); } =20 +/** + * memblock_mark_nodump - Mark a memory region with flag MEMBLOCK_NODUMP. + * @base: the base phys addr of the region + * @size: the size of the region + * + * Mark the region as not to be included in crash dumps. + * + * Return: 0 on success, -errno on failure. + */ +int __init_memblock memblock_mark_nodump(phys_addr_t base, phys_addr_t siz= e) +{ + return memblock_setclr_flag(&memblock.memory, base, size, 1, + MEMBLOCK_NODUMP); +} + static bool should_skip_region(struct memblock_type *type, struct memblock_region *m, int nid, int flags) @@ -2886,6 +2901,7 @@ static const char * const flagname[] =3D { [ilog2(MEMBLOCK_RSRV_NOINIT)] =3D "RSV_NIT", [ilog2(MEMBLOCK_RSRV_KERN)] =3D "RSV_KERN", [ilog2(MEMBLOCK_KHO_SCRATCH)] =3D "KHO_SCRATCH", + [ilog2(MEMBLOCK_NODUMP)] =3D "NODUMP", }; =20 static int memblock_debug_show(struct seq_file *m, void *private) --=20 2.43.0 From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pz2-f0.google.com (mail-pz2-f0.google.com [74.125.228.0]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34F27439351 for ; Thu, 6 Aug 2026 09:36:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.0 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008966; cv=none; b=nI4gwIXzF6rIy/TMW2cmQ7Q6miH6qNORXMbbH5GS+wNbJlKnNlgebr1suDDNtSpm0MhRD6NDVL8LsMZjhNvmV1OspANp5cxPhpKvenuzEsk7NUl03LIf3G7T3/El6KcJqktTX187U7hdGdJNEFM0d57x306gyDCph0vZIxRfWSY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008966; c=relaxed/simple; bh=lZf+l4j/Q4ThP9Eu+M5Jyz5exYGOi//i+2xKo39QXs0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DIlLxBYq2vkytJUlMOtK5XEjMsT196nag5evdVxnPi1dop73Zq01/ZOICjqGo2Z6BAqlTEwDJ8L8B9fwgmoo/KvMpDZbqEUr5qqpSbe10iK+Aha++NvfTFH9ruL8ua5PJvVwUMS6xjW/EFtXifryOWmZ28YKOinGkEreKbnhdnk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ng2BmNDE; arc=none smtp.client-ip=74.125.228.0 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ng2BmNDE" Received: by mail-pz2-f0.google.com with SMTP id 41be03b00d2f7-ca24d39d8a4so1086037a12.1 for ; Thu, 06 Aug 2026 02:36:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786008960; x=1786613760; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=knTPycIW4JC9RtVxI7lTQdVb1SJbys3U0akygREf/j8=; b=Ng2BmNDEflIgQRMw6MjhdXuQREtj8M6wTz1KAAKNYBYCCjuh37DO6DvvD9IVQ2UVtm PrN02d0S8FhMYnQYIb4Dgc5mjvqPBR1FrCvCtPiZOXoL5d4HjpWvGkxe3/XqvUxjSaG5 eyNPruUhRyzDqShquRxHBahbpLJRwcJPgY6/5OzTKhKPFxjqRWLt2Kxz5fRhzlfGJFzd uv4GMIEXmTfdTkGsqczh9wpMWN5OvEuCn+v71oi3xF5TiNlnXg1QsqSXkDM0IZmVz18X 62tSA4pEFlw6YEPIICciQ3qEbUT11qjE/7vA8GKN0WBf4o3RcDEVje0uVZHxubJ5/MmE QzQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786008960; x=1786613760; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=knTPycIW4JC9RtVxI7lTQdVb1SJbys3U0akygREf/j8=; b=q801EyqdQOh5wtCvQ0/TBqyhoXq4aLwMqPxXhjkrlX3n9YZkZHs5SnJUxUv1tqhBfH q2sP+r739uxHoXkE78ny1uuVJUStgQGQgJM+kkyyB2GBPQtApSoE77bs7zLsRD6HLvgi ka6edkn3wfUSsWphz5OtnaTxoctSV2DbqHaX/p36bFYG4t8qa2J7u94re0R8nnb+SZBt HorfiecTIi62tsGx97ABwdp8wL5r524kicfTmMwr8KSqa/ru7LuKKXswe6bSJGh7b49g uEDNT4hX6/77RNkqlCo9oTXATcMqM23fotkViBYrQ+ENpey+yKIqUvlKXser8HUSlK3A uMCA== X-Forwarded-Encrypted: i=1; AHgh+RpYmg4/tVA9buOSH8iDKN7g9bSo92gax8bVG73lAqCkMlAI7o0r5sdcx04fEcg8fs3IJPhKq6Wd6RkBmIA=@vger.kernel.org X-Gm-Message-State: AOJu0YycMtpOxTWvpNuiJG2I4ekhia5/csSWIQyum6ZGANG3CjVc2kMV GYdQ+otK5+U2vRZ2Cw7cshxH52YMi9W3wdFgG0UO5EVLFSVqz8yKPYfv X-Gm-Gg: AR+sD1220kqv6zSORQbuNX19wWge/e5Q/mhHgAap9tGx3rkpY27X55zh9Vxn5aWDop/ u2VhFiD82mI6TSpV4J0R5IZgCONyVPsDpYtXxyMnXH/IVUQGRJ5O0PM7AywM3wshXOK69xk3yCQ EvxsObv6vBl4ZKA4f23LtlIp4so6LlVnAwsGEvFylG9lMEGkfBYTSfBGrKL43YUltdBiAzLGx/I cYqa+EpVb6hZQKHOqUQ76+GkEiXHJF50wLC7QyN6cpEXS6kRFJd1wnNWiC3eAVF9iwTrYo/+5KE q2kZglmQmKus0FMZU4TXT35rKuQLAzZtQyBqG6i/sQhfjp4LCNLEU9tj4dGW2UrtLp/wigZynBl YRkDrger+YIFrtyIDOSCd6H5n6Hmnr96/UR18fSNlvcvrebDmyU3BBhkErO0rUxa5Kx3lXHg4XH vScpSbOLfq4PUcqs3KAzYrFWF13x3jFpwfzAU4Oy8lBfeyPqyL86RB0CilJrWJ+sWCKYER2B88q +g= X-Received: by 2002:a05:6a00:2d8f:b0:848:7552:3d86 with SMTP id d2e1a72fcca58-84f2e009be7mr14478703b3a.23.1786008959699; Thu, 06 Aug 2026 02:35:59 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.35.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:35:59 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 2/8] of: reserved_mem: add dumpable flag to opt-in vmcore Date: Thu, 6 Aug 2026 17:35:13 +0800 Message-ID: <20260806093519.2907771-3-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen Add a 'dumpable' flag to struct reserved_mem to decide whether a reserved area should be included in the kdump vmcore. Non-dumpable regions are later marked MEMBLOCK_NODUMP;the filtering itself happens in memblock, keeping the arch kdump code independent of the DT API. Most reserved regions are owned by devices and do not contain data useful for kernel crash analysis, so dumpable default to false. Reusable CMA regions are different: their pages are handed back to the buddy allocator and may contain key data for crash analysis, so set dumpable to true in rmem_cma_setup(). The dumpable flag is also used to check /memreserve/ entries for overlap with other dumpable regions. Suggested-by: Rob Herring Signed-off-by: Wandun Chen Tested-by: Meijing Zhao Acked-by: Marek Szyprowski --- include/linux/of_reserved_mem.h | 1 + kernel/dma/contiguous.c | 1 + 2 files changed, 2 insertions(+) diff --git a/include/linux/of_reserved_mem.h b/include/linux/of_reserved_me= m.h index e8b20b29fa68..55a67cee41ea 100644 --- a/include/linux/of_reserved_mem.h +++ b/include/linux/of_reserved_mem.h @@ -15,6 +15,7 @@ struct reserved_mem { phys_addr_t base; phys_addr_t size; void *priv; + bool dumpable; }; =20 struct reserved_mem_ops { diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c index f754079a287d..63ff134dadd4 100644 --- a/kernel/dma/contiguous.c +++ b/kernel/dma/contiguous.c @@ -565,6 +565,7 @@ static int __init rmem_cma_setup(unsigned long node, st= ruct reserved_mem *rmem) dma_contiguous_default_area =3D cma; =20 rmem->priv =3D cma; + rmem->dumpable =3D true; =20 pr_info("Reserved memory: created CMA memory pool at %pa, size %ld MiB\n", &rmem->base, (unsigned long)rmem->size / SZ_1M); --=20 2.43.0 From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pz2-f0.google.com (mail-pz2-f0.google.com [74.125.228.0]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 40B7B3F4122 for ; Thu, 6 Aug 2026 09:36:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.0 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008974; cv=none; b=XZzB6OpN0mgR2NyDBrN1nUblW8p0JmuXq4FOWgUGgdXHSQD2TfO9TKyAQX5VHpqxyGzQryaixoNOtILR7dV8qht5q5A9ELTIw3/zP61G1iwpo9kRKRG6NWbj3KZWiJzzxRigkLCzMnPPDvR1uBHIOH3btCXwFkwekPsro3H9e0E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008974; c=relaxed/simple; bh=/woMQBlsW3X8qxXLH9mBLMDq8jOPUBo5XVC406TKw0E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ipqR33Fits8WH3uVBu6/IHHz0a1RF7VQIxnfCVEjYa3PatzWEEmAd8plliqHVmzEkpT33y22W6bzYrkgJa5L+aoUtLK+tjI5sttsz8NV4woBf9Pu9J6Rp6B5uB1/l4M1/XhbxQYL3rPsxCBprY2rrgTwxbj4thGm51AMCgjd2x8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A48VH6Zc; arc=none smtp.client-ip=74.125.228.0 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A48VH6Zc" Received: by mail-pz2-f0.google.com with SMTP id 41be03b00d2f7-c96739a46acso1071117a12.1 for ; Thu, 06 Aug 2026 02:36:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786008972; x=1786613772; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rxssx1F9jirIGuLt/jYdKLTnwp1BKr8qLnqrQJiF24Q=; b=A48VH6ZcO/j07MTTeRJA2q/DDvqIufXVXX7xxcu70mSsrUDmSwU8kaMF7rksYS1O0V tjijOSmmZCG4PuQf6ZdiwZWdMYa9PzCNTOPmA50ZsbeWbQIHsGWCcFW303nR3SCfYhHq Q0QmfUItm1V0h+Sv9p6ERwx1vDqhmjCl7LooF3+Ta/VJNO6vAkN8+i6LR5GstKE6JOzg kpmCyT32GdEIWkXcSuT+dpkBYolimcKFq2zQAvGjSuKkV3Wq3DhwODm0oV393veAEQe6 XaE1FD8s4q6puk4RJ6B78a/Tv/Bl1QuQcbu/n4P9QECiyCjLdXsFGJJJvNmUfuTTWFgI v58w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786008972; x=1786613772; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=rxssx1F9jirIGuLt/jYdKLTnwp1BKr8qLnqrQJiF24Q=; b=mSrDrShoWOyo27pl1Vme2SfyYhcb4l7hq7aFdECzFKbRPZFuYdw0ddC22g7T2vANCZ qw4c5wamwZjXoHSwh7jRy3VHCDsWRr653FSPvNHCadllgMzd66d1N6j4fzHslzpMl5yx g8eCGyDsi4+I957/f/u7rq6oKJuj1BLOcnTfegDBWd0hGeMwDPVD5HHN98WSiUjqteNw QYcdu6xn+aGyfpHGZJi20YuOFAjJMDexipNDtGJLi1JbLAiW4S52SXeXSmW2Ma+ptACL XSavR7UekBN1IKYZs6xTdbT1MLflD5rS0fRb2uX08iSJHj5Qi0pWMR33/GTg1Qr4r5Ya yzUg== X-Forwarded-Encrypted: i=1; AHgh+RpDFAjtKbG1P6uSqoxrnZVu0pixNWql/714o87JQ85TC7Td7F2zGlcz5TcEMGOUH9N25MiEp/OR1iHTKgY=@vger.kernel.org X-Gm-Message-State: AOJu0YzGf6lweFjuj5jEFFgRWfCEcHL8JbS1/TOyu7gIbL7t69lQZE74 9Nx3YUIexCCuMlKeMY/lo+Xa0xITf7uOkupxVNA3IeoRyhy5vPwx9xCn X-Gm-Gg: AR+sD11wwbXpAClwUQSyRNdiC4h4C1YL0jyRn0rb5Y7VMh8kOvULJTlPyAviKmHl6Gd 8bmb/JtDWqsU7PzfCrvkm1MjKIIMpqqwtB00f0XiFfuyta1VDN2W23RN2dGxQ/k60CJAD36Kmlq vLfwexBT0Irf5M0fZvIdfLwMXlcC5Hshgpy+C689iTgarqcP48vf7jxvk09eE55MNQtwpQg3dLE XPqfeE2f4O1GfGcKbyX3GupOwkkjgcgrF4D3DpWwLB56vM7OiJJ7ihxDqEMU+O3Ho0btdEjEn6o wE+zIYGxmHsIUsI5XZNkpuKqKQ0EWCA7w0fkumfSFReG4Zuf38j1zFCow8yO89iIBXGDQlbWebI CFHWmASNcLBmX/mV7F0JGxZQPdR0TME665uwr8yu2YINgrigz9BEyyai0YfQrzWbLEGhKIeoOY4 USuA/LHfdPlCRANYd7wtIjC3Kct9ePW0Y6NpWCJhfxEFT9eEJsqh/ox88gFRsEoQSzzGp3TWFjn g== X-Received: by 2002:a05:6a00:80e:b0:847:e791:d5c5 with SMTP id d2e1a72fcca58-84f2e0dc989mr14792962b3a.35.1786008972602; Thu, 06 Aug 2026 02:36:12 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.36.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:36:11 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 3/8] of: reserved_mem: mark /reserved-memory entries with MEMBLOCK_NODUMP Date: Thu, 6 Aug 2026 17:35:14 +0800 Message-ID: <20260806093519.2907771-4-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen Mark non-dumpable reserved-memory regions with MEMBLOCK_NODUMP so kdump can omit them from the vmcore. The marking is guarded by CONFIG_CRASH_DUMP so non-kdump kernels do not pay the cost of splitting memblock.memory entries at NODUMP boundaries. Signed-off-by: Wandun Chen Tested-by: Meijing Zhao --- drivers/of/of_reserved_mem.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c index 7b1616b9c6c2..f38d11df6f15 100644 --- a/drivers/of/of_reserved_mem.c +++ b/drivers/of/of_reserved_mem.c @@ -674,6 +674,9 @@ static void __init fdt_init_reserved_mem_node(unsigned = long node, const char *un rmem->name ? rmem->name : "unknown"); } =20 + if (IS_ENABLED(CONFIG_CRASH_DUMP) && !rmem->dumpable) + memblock_mark_nodump(rmem->base, rmem->size); + reserved_mem_count++; } =20 --=20 2.43.0 From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A67653115AF for ; Thu, 6 Aug 2026 09:36:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008986; cv=none; b=gtUV8NZ8XclIb8O3FHPl5/NBnCIP/6lNvUuwj9IOK6RZSYFJFRzvr77XKOiTQdLEhx8iuuZna1CG45FYICUFrfZMVlocJvQIPnxEQj4M39Z2hwsVe0rHR3Irtqerb4MgdihhKPbzas2GxWniMylIScmQ3N3BsSFgq9EiCjYSwg4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008986; c=relaxed/simple; bh=EUNr4WhuIYQkkKj8MSIpKNUa/1/RumTAD0mx3DUcTaU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fL7YzeJyzawdfyIQ2z53c0pVAuaB36AdZlpnXNgKEAA7TiHlB31Pp1eYe7QvXD0dOdeYLXuxmBHIjAvMEES5uchZpHJEIYcib6rvbMZ2UbRHuoUN4CNhyxunWLG+sQRfrUhKi939Bs7kMJitztiHn4hD/+K2P5OOv8zckD/Bdco= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EMiAZn4g; arc=none smtp.client-ip=209.85.210.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EMiAZn4g" Received: by mail-pf1-f193.google.com with SMTP id d2e1a72fcca58-8486ac3f347so818739b3a.1 for ; Thu, 06 Aug 2026 02:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786008984; x=1786613784; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=JoRhdZOCeEiS1VMpBUeU4kVAqK2jVYvx0TEggrSzApM=; b=EMiAZn4gS3LT3bepYS+m6BPV0wEjth3aqnhY2i02TpeD/aOg8SsJbf74Os1EGZXbRm Kiak5lgONOImU3wPQGgp3/7cjo1a/pUj5aF+Rb96BJreyF0KshkJbXqZnK4mb1WWBMQt oJt+1/yqVddd8GpVAnJ32OEgHyH8QYRCR4iCQ+C1mTdfrfe0hjFZT77k6akkP2MgWr5Z lVWaUfj764udF7NJdW5VWDepqpTEkY/uungvEKUTQ11YJ3y6S7uhbL5efxWRAGWIQoqp mZaxtmTClt4Hy5lcpq+Lf505cThqbk3WTDqwatbh0h7KBvyDb19yUlHPIZzZexw0+LpF 5E6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786008984; x=1786613784; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=JoRhdZOCeEiS1VMpBUeU4kVAqK2jVYvx0TEggrSzApM=; b=rUjciNKscGxEJ+I0eXQ/CFo1DX5TfE054NtWbiIsA4J1e+RnNVMn1sLlDqfVZQ6vU2 80AVJrHB9bnQESv9jYC5K9lnpVCRo6bAsXsjtN+uIFw9hvGC1lFdy4BTps5MwjbqkJ7Z 7d4pGo10UaXB6vBZa8Zf3AFuOrAC9rMCk1vR5TumRVa2tIipB/0pOqTApoZx+WDZIhD/ wK4R87dzVM9KA4IJWPTuCe1AQfg8tVdeT95GfXfOCXO6VQVitKkAxhfqn3Ro5CHc5N7t 7clfl6HsHTCWoyEcJyQduJbOsLJSCcjFEdUWag4mwTh00tvKPZi4AjJExHgSbw2n/nBb 5BKw== X-Forwarded-Encrypted: i=1; AHgh+RqMHAFXg8bQvYkXsC2nDnvMALV1Hsy81gjqZUtyZaMduS4m56ayMpr9HwZkri0m3E34BDTLrXlt8987wM4=@vger.kernel.org X-Gm-Message-State: AOJu0YwkCBfb/4O0IfPhpfmt4xUU9MLAVRlS7Hd0rWce+nwuG5EuU0ep NAh48vF7FUrQMY7LfxC9ehK1DMdkWGCZuOUS5+hHBoqoctyGNfkLtqS+ X-Gm-Gg: AR+sD11F4XHsTR3V/RgubwnSok6YTBm22Lxzk41hnF/FhyKKSDh/xMXs+C5J8vUjWjE A931j6E7pP3ZjDkzi9LiOdDywpGPabSUaGRHtKqoSTkZSS7aEZaAT5aGNl6h7jv7EkajhqPxW5w P372IQB2lh63drThx4Xda9MvnAzF4ja00ubwoEiq6RdHIntexbtZ6ndwseqBSLChqz6h8m5rj6o z3y8eDf4tSyoeyLh5WzD6WPcQMQ7Q9Yme2KBxUB7nUcrhzDpXkb8kUMHHghoLeHGM8/ZUpDKH4Q 6P76r++N54jVdwFV8kgddFonDYvObxvdlBlfQqoXtgn7PaCUrZNk1zab811Xpm/JaUyruUHlc5Q V654lcREEgS2G2QUrM1UvSa+EQYVZSCz4k3ayl9nc2hydJW2l3bQYcDd20JpsH75Rvce1OD2wbS Z1NQHGLCqXF7yLz217nHdfSlKQy6LsZzQdu5BCKmk6DQAP4ed/HYpM9GTLk1EuVf6Pb1G2xA3yK g== X-Received: by 2002:a05:6a00:f8a:b0:847:9dd7:2683 with SMTP id d2e1a72fcca58-84f41df42ccmr6551184b3a.9.1786008984000; Thu, 06 Aug 2026 02:36:24 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.36.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:36:23 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 4/8] of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP Date: Thu, 6 Aug 2026 17:35:15 +0800 Message-ID: <20260806093519.2907771-5-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen The /memreserve/ entries are memory reservations made by the bootloader or firmware, their contents are not needed for kernel crash analysis, so mark them MEMBLOCK_NODUMP to have kdump omit them from the vmcore. Entries that overlap a dumpable region (such as CMA) are left unmarked, because the pages of a dumpable region may carry crash-relevant data. Signed-off-by: Wandun Chen Tested-by: Meijing Zhao --- drivers/of/fdt.c | 2 ++ drivers/of/of_private.h | 1 + drivers/of/of_reserved_mem.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index a64afc3ded3d..2aa888997e9b 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -1286,6 +1286,8 @@ void __init unflatten_device_tree(void) /* Save the statically-placed regions in the reserved_mem array */ fdt_scan_reserved_mem_late(); =20 + fdt_mark_memreserve_nodump(); + /* Populate an empty root node when bootloader doesn't provide one */ if (!fdt) { fdt =3D (void *) __dtb_empty_root_begin; diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h index 0ae16da066e2..667ce9e46aab 100644 --- a/drivers/of/of_private.h +++ b/drivers/of/of_private.h @@ -187,6 +187,7 @@ static inline struct device_node *__of_get_dma_parent(c= onst struct device_node * =20 int fdt_scan_reserved_mem(void); void __init fdt_scan_reserved_mem_late(void); +void __init fdt_mark_memreserve_nodump(void); =20 bool of_fdt_device_is_available(const void *blob, unsigned long node); =20 diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c index f38d11df6f15..f0683b5d77b3 100644 --- a/drivers/of/of_reserved_mem.c +++ b/drivers/of/of_reserved_mem.c @@ -251,6 +251,38 @@ static void __init __rmem_check_for_overlap(void) } } =20 +void __init fdt_mark_memreserve_nodump(void) +{ + u64 base, size; + int n; + const void *fdt =3D initial_boot_params; + + if (!IS_ENABLED(CONFIG_CRASH_DUMP)) + return; + + if (!fdt) + return; + + for (n =3D 0; ; n++) { + int i; + + if (fdt_get_mem_rsv(fdt, n, &base, &size)) + break; + if (!size) + break; + + for (i =3D 0; i < reserved_mem_count; i++) { + struct reserved_mem *rmem =3D &reserved_mem[i]; + + if (rmem->dumpable && base < rmem->base + rmem->size && + rmem->base < base + size) + break; + } + if (i =3D=3D reserved_mem_count) + memblock_mark_nodump(base, size); + } +} + /** * fdt_scan_reserved_mem_late() - Scan FDT and initialize remaining reserv= ed * memory regions. --=20 2.43.0 From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pz2-f1.google.com (mail-pz2-f1.google.com [74.125.228.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3E004399EF for ; Thu, 6 Aug 2026 09:36:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008999; cv=none; b=UEOerRHAKXQW1iDs0NT/6UJCmQS/3T8CsCjzTNss7ljBenyGMyFnLiC+tAuTe3SK4zcWZnGMm/cMqiYBCnJxJSI0+eig0WgfOnchR/kl0o27m8htPel8pRs4cKpcD/fujBlsOLthmsMhyCPH5C3Cx0p06BDAFyItOTFXXu+/+Mk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786008999; c=relaxed/simple; bh=wy05bPp05mHS8vyW01X9jptReYWXDYKNhtr1n2hZSC4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VoQNX5TAooToP7jBvLUWQCLWWoArftHcrnZV57IWdYTGJ+UBSgRCUCdsz853zVq0QNdSYDyeW3iTqf3o+Wu0gB39yll930vooNUU6WI2uL9Y099BhnwJIy0LAzBtabkxprrK0b4wcpM4bNfvtRX1LRvF45g5kYiJknlqFue0lAU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jQPgddWH; arc=none smtp.client-ip=74.125.228.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jQPgddWH" Received: by mail-pz2-f1.google.com with SMTP id 41be03b00d2f7-c9fcd903839so1052951a12.1 for ; Thu, 06 Aug 2026 02:36:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786008996; x=1786613796; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=LuSw8PyHR5EplcrqG8+HZ+85Dl0Ckz8ecCi5UKpH+2g=; b=jQPgddWHgO6IhUyhsA4JBWVs5aYs0P2nJGuhCe45ZC7ClqQcBYOtwOb+I+RWEENDCp PqQBCkx2IaBgrmP4PEiP5O/RBkz/0RHj3iOFC6wndCA0IzlKQ8/wTPm41mXPBylUzJaw /r+cdFeOf+09NHQ9kiZ8Vs14SS6FMGPOeeto43n7cNHs9ZK017QR2psUYxqqaE9ldegu 1F+nrGpXTWJX+7WLdpm84P8nasa0Qu3qSf2l4FJy730C1W6kPhJp/aLXNqpFAPfY7MdL GuReDE0K4XjfsCM5r5EdS7MfpLfQIUCC9K2UZV9Qy9B+rZTGohv0/ZCKNwYgOEhE9any lWCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786008996; x=1786613796; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=LuSw8PyHR5EplcrqG8+HZ+85Dl0Ckz8ecCi5UKpH+2g=; b=hsx8XsM8RZsXSy3j61HURaTieN1meI3UAlkyBNnCI8RIAPD317QE1KJOgkP8cMd0gh +UMvAMapI4AzJab6NFkBspb59pxoJMZZ4F+uISGCrFQmy7aZzw/yj+lU/TxNraqA91C+ LIW0ks8y4+XuHg+WUhd8QrT0avVYj/zSf7N9GpNYBUc+0bpjVoYex8vYzKrJdrKYNKvo oTu55SMSwMRpo9eIB5pFg4g3qX3bf7oCh8xkGz5Rwtx7kxazoqwRJUI0BKndTWJd6Rau U+MI+QxRzFxGieVKMIzskyANNLchXgM1CfT9qVdY8BaaZGLpH2XQ1z1ULVyFw9y+8huQ 6ESA== X-Forwarded-Encrypted: i=1; AHgh+RrlE8qT5JnLcr7AaDLPNIZJifjf+ltcgzngseYr4F7he/9mU3uhFFFLDHfDABMuf6uAiZjAllLXbnTFxQU=@vger.kernel.org X-Gm-Message-State: AOJu0Ywv/rBTPWvmRNWdN1qrqMb+YqpqrAIECqftvyuRim8PrA7jFEJJ g082DQIiXdZ+AVpWXpTeZW9kFsfxlYtjNywVM4T21dUlqMqgDdaFnX04 X-Gm-Gg: AR+sD13M15vIeB6W8bkjK0x1sFeB4poN8s4hmUZuWMcy7bD84Cq2otC559tKw8Oqm0/ lg9dlABKg1D/78YJCIE6x5AmudpRxeRb5KvJOft/+mFy7fa+MHwEKSFNG6tHq/OeH3J1qeQo4ub mA5UxMT/8FgZ5ETNZPfS6hVr6n7tOxmLDgjxt60SMZ30LSUnCwCGWMDFDZ2aP9Rk8a6M3D+0ZNV VXQ507qClotx7krQyy5HurAcG/kQk30qM55X5QnARVcS6vS2PzvKDm01XxnAeuUAFtDd81wragJ 2TMamY5sH96cY/Hbf+RwjpcDEDomiHJrYYzAgDiNEwnBX6I7u5MLkM/X43LQhnWFcSaaxRjX1kO R2IcY8AWu7qWxt688Kyjvt7KlHti+zKrybcE/b4jrdDlPNLckJ3CvgDbBxsNkJcU3XWcNiD/Upp +rnhgSqyJFOoLnQJAKQVGvRHmenYcGnKfHbEHusTGBoGt9tnpe02WL3dYah1rLBdPrYMeBgBsFY w== X-Received: by 2002:a05:6a00:298e:b0:845:dffa:3740 with SMTP id d2e1a72fcca58-84f2e0151aemr16066036b3a.4.1786008995542; Thu, 06 Aug 2026 02:36:35 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:36:34 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 5/8] riscv: build crash_mem ranges from memblock instead of resource tree Date: Thu, 6 Aug 2026 17:35:16 +0800 Message-ID: <20260806093519.2907771-6-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen Replace walk_system_ram_res() with for_each_mem_range(). The MEMBLOCK_NODUMP flag lives in memblock, so only by walking memblock can the reserved-memory regions marked MEMBLOCK_NODUMP be excluded from the vmcore. for_each_mem_range() iterates memblock.memory, which is freed after init unless ARCH_KEEP_MEMBLOCK is selected. riscv needs ARCH_KEEP_MEMBLOCK to filter reserved memory from the vmcore, so extend its condition (ACPI || KEXEC) with (KEXEC_FILE && CRASH_DUMP). arm64 and loongarch already select ARCH_KEEP_MEMBLOCK unconditionally. Signed-off-by: Wandun Chen Tested-by: Meijing Zhao --- arch/riscv/Kconfig | 2 +- arch/riscv/kernel/machine_kexec_file.c | 31 ++++++++++---------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index ef1101bec76c..bd8726b4dfbe 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -57,7 +57,7 @@ config RISCV select ARCH_HAS_UBSAN select ARCH_HAS_VDSO_ARCH_DATA select ARCH_HAVE_NMI_SAFE_CMPXCHG - select ARCH_KEEP_MEMBLOCK if ACPI || KEXEC + select ARCH_KEEP_MEMBLOCK if ACPI || KEXEC || (KEXEC_FILE && CRASH_DUMP) select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE if 64BIT && MMU select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT diff --git a/arch/riscv/kernel/machine_kexec_file.c b/arch/riscv/kernel/mac= hine_kexec_file.c index 26cd2a8bd0cd..808e872f4063 100644 --- a/arch/riscv/kernel/machine_kexec_file.c +++ b/arch/riscv/kernel/machine_kexec_file.c @@ -37,39 +37,32 @@ int arch_kimage_file_post_load_cleanup(struct kimage *i= mage) } =20 #ifdef CONFIG_CRASH_DUMP -static int get_nr_ram_ranges_callback(struct resource *res, void *arg) -{ - unsigned int *nr_ranges =3D arg; - - (*nr_ranges)++; - return 0; -} - unsigned int arch_get_system_nr_ranges(void) { unsigned int nr_ranges =3D 2 + crashk_cma_cnt; /* For exclusion of crashk= ernel region */ + u64 i; + phys_addr_t start, end; =20 - walk_system_ram_res(0, -1, &nr_ranges, get_nr_ram_ranges_callback); + for_each_mem_range(i, &start, &end) + nr_ranges++; =20 return nr_ranges; } =20 -static int prepare_elf64_ram_headers_callback(struct resource *res, void *= arg) +int arch_crash_populate_cmem(struct crash_mem *cmem) { - struct crash_mem *cmem =3D arg; + u64 i; + phys_addr_t start, end; =20 - cmem->ranges[cmem->nr_ranges].start =3D res->start; - cmem->ranges[cmem->nr_ranges].end =3D res->end; - cmem->nr_ranges++; + for_each_mem_range(i, &start, &end) { + cmem->ranges[cmem->nr_ranges].start =3D start; + cmem->ranges[cmem->nr_ranges].end =3D end - 1; + cmem->nr_ranges++; + } =20 return 0; } =20 -int arch_crash_populate_cmem(struct crash_mem *cmem) -{ - return walk_system_ram_res(0, -1, cmem, prepare_elf64_ram_headers_callbac= k); -} - static char *setup_kdump_cmdline(struct kimage *image, char *cmdline, unsigned long cmdline_len) { --=20 2.43.0 From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pz2-f1.google.com (mail-pz2-f1.google.com [74.125.228.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2B884399CD for ; Thu, 6 Aug 2026 09:36:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786009012; cv=none; b=TR5Z3Mqxxq8sduzUgrHc5sZsJVQ1D1Lmc9QhziHNhNNqK816S2i+3oYJr/8+Mq46ULBNBrPmNnn0+2dqKfrzGc6i5KR8fUULsvFgbINBlrHIKZCgM5jKRuYNKvY61MIicJ9MNjVCCXIEUT6nIOht8TR477OxQ30Gt2X0AL7stHQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786009012; c=relaxed/simple; bh=3+eeaa1ZvEiSWwM8HzdyswyClU6vwmIcEhsy7E60oGg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XrH91P8zgRwgS3TkObydcNBB1ZRC/cV8BUHpWDxH1nI6vqr2HPcZ8LIaGWJsyx6HDQm2NgVnB6C73B9w5c1IRi7DLJ8KBYEJd8pBggCCm4ArIABr+PgW8egfDIS9I9qzUCIYubQgVLXjcjBaJ+mg9UbGrfKum/xC6OMVy+TD7Mc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VOC0V6ef; arc=none smtp.client-ip=74.125.228.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VOC0V6ef" Received: by mail-pz2-f1.google.com with SMTP id 41be03b00d2f7-ca7a25cd87dso1606675a12.1 for ; Thu, 06 Aug 2026 02:36:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786009007; x=1786613807; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wVDvUsuVz4fOLoguLRCQrGgJgNWPqJ2TDc/OI8CtAH0=; b=VOC0V6efCw9nhlZgkY7z1+35AcjsEv2+gAqjD2l34+TdptK73c2kMNCC+xv4TurvEi F2DOW9cKmvKTlRcCmRx+ezIPu65GB3OyXd1X3qzp0KEb+NVXLtVMyIpChHIZYL5Owlwz w58if2PLPgdgIiXdpZeuVtsT8Z8j6pZc2NUxFzLsJFDd8tg9dGLBVrkUfR+yvzBm3dpf B6AEZ2xdv9iIQ5vx24D8/PMpsa0UbNu4ZvMBizkL46LJOXPx7iQyiedmPSAfOU04uZvq UDoX/U/0lUAiYEv22HOI9IMqXrwHyITXv8N6DP+Bl9Wnfi+oA8g7jhwZ5qQhVaoVfPbI bYSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786009007; x=1786613807; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=wVDvUsuVz4fOLoguLRCQrGgJgNWPqJ2TDc/OI8CtAH0=; b=g/NBpWBbL/+O4BlXbKQx0nSfJnJh3jgYDjUQM2OCY6Zk+jSjhq4qGUJ3swRy1ozcoU Ca2qjH1S4cJukuqk51ZY3fNqp6HJZ7OX+m4+Qmn7lOKwhLdHGb0/qe3I/b7yWpvsKR9M OWsQXZqZvjL9n/6i9I2cQnZJzHNAJsIoEqo8viGrlK1ZzagKnHw5aKAWuT5rA4K+M8e7 V1wZ3gDaqfHAoYTot/7r2EnLXnAk2ARDz4h4/c4fvWkXqrgofrXHsFVWzzxcRHQ360W8 lqzMBWnfoi2n4YIzx2Xv0hF8lXOg9tqGnHvxXUJpatmTCZ9Ruu0Zku2qRbPtGym+G+te uJvQ== X-Forwarded-Encrypted: i=1; AHgh+RoqbaVXAkzi2Oo+Ndf4SB0yY79xa9w3bvh15p68WolBQlEdMy0SVdUw7Jq055eYAGK1YsW3OuvFdEN7VWc=@vger.kernel.org X-Gm-Message-State: AOJu0YzsqFfr3yOoRMIGGEjLUHkh5OKSn2umXfgn0+TSH5MSpcU8CVci qrdW2hWxLyI3W871kPlWjYAUAsxvh2lvA634eQh913ZwsbvmzFQFzTNx X-Gm-Gg: AR+sD11bCjTOfsjkNNjhC4ydSvp1fIe03U4ncGImh0UbtEEhmJaB1DzpeLPTYjwQyxn TokLTPE8Mn3CYoe14GZxZIiA+EMZgToI5MSv85W3ik5KfB9+Hio9YeGDdk82E/5BYLT5alZRQjI vwEC1k3/PhE9UAvxs085yozQ/jQQDKhx/5aOZWusSIQFzDhpGLdKOrH+PMyiPuz0cX8cWPHRN1P jArWHwmI3WATDM7xbimmy910ohXbDc86dq8PK9apFR6Y6VsicJN/nwCy4tc128OUH/RtzgBEhjf hZp1NsRe1Enkw0Uqv4e0YmTsFupbKdatLmL/pP+DG/0etFeMpoZMKbJKaD0wnOHtwLLyUkbVNK6 vjS+vDZ5zJNJZXkUWN3U886QdMIDm8BFvkqX7qKfNgX3VKpKo6e7v1ITsy3Sk6NvHKmfnFmBsSx dFZa0v4Yh9OS1prktt0YIOBPE1Frk2i/QOajgsd1g7+2lDk/NiByT1MynlApboJ/XOsHTezm9vY DgQ+bKy1Ojb X-Received: by 2002:a05:6a00:3687:b0:848:467d:293b with SMTP id d2e1a72fcca58-84f2dfb4e5bmr16809060b3a.11.1786009006714; Thu, 06 Aug 2026 02:36:46 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.36.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:36:46 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 6/8] crash_core: fold duplicated memblock arch hooks into the weak default Date: Thu, 6 Aug 2026 17:35:17 +0800 Message-ID: <20260806093519.2907771-7-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen The weak defaults are only consumed by crash_prepare_headers(), which is called only by arm64, riscv, loongarch (via the weak default) and x86 (via its own non-weak override). arm64, loongarch and riscv open-code the same memblock walk in arch_get_system_nr_ranges() and arch_crash_populate_cmem(). Move it into the __weak defaults in kernel/crash_core.c and delete the arch copies. No functional change. Signed-off-by: Wandun Chen Tested-by: Meijing Zhao --- arch/arm64/kernel/machine_kexec_file.c | 29 ---------------------- arch/loongarch/kernel/machine_kexec_file.c | 27 -------------------- arch/riscv/kernel/machine_kexec_file.c | 26 ------------------- kernel/crash_core.c | 25 +++++++++++++++++-- 4 files changed, 23 insertions(+), 84 deletions(-) diff --git a/arch/arm64/kernel/machine_kexec_file.c b/arch/arm64/kernel/mac= hine_kexec_file.c index 854d872dfd0f..34d944d3f22f 100644 --- a/arch/arm64/kernel/machine_kexec_file.c +++ b/arch/arm64/kernel/machine_kexec_file.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -39,34 +38,6 @@ int arch_kimage_file_post_load_cleanup(struct kimage *im= age) return kexec_image_post_load_cleanup_default(image); } =20 -#ifdef CONFIG_CRASH_DUMP -unsigned int arch_get_system_nr_ranges(void) -{ - unsigned int nr_ranges =3D 2 + crashk_cma_cnt; /* for exclusion of crashk= ernel region */ - phys_addr_t start, end; - u64 i; - - for_each_mem_range(i, &start, &end) - nr_ranges++; - - return nr_ranges; -} - -int arch_crash_populate_cmem(struct crash_mem *cmem) -{ - phys_addr_t start, end; - u64 i; - - for_each_mem_range(i, &start, &end) { - cmem->ranges[cmem->nr_ranges].start =3D start; - cmem->ranges[cmem->nr_ranges].end =3D end - 1; - cmem->nr_ranges++; - } - - return 0; -} -#endif - /* * Tries to add the initrd and DTB to the image. If it is not possible to = find * valid locations, this function will undo changes to the image and retur= n non diff --git a/arch/loongarch/kernel/machine_kexec_file.c b/arch/loongarch/ke= rnel/machine_kexec_file.c index 5412aa9f3568..481b8f906a56 100644 --- a/arch/loongarch/kernel/machine_kexec_file.c +++ b/arch/loongarch/kernel/machine_kexec_file.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -56,32 +55,6 @@ static void cmdline_add_initrd(struct kimage *image, uns= igned long *cmdline_tmpl } =20 #ifdef CONFIG_CRASH_DUMP -unsigned int arch_get_system_nr_ranges(void) -{ - int nr_ranges =3D 2; /* for exclusion of crashkernel region */ - phys_addr_t start, end; - uint64_t i; - - for_each_mem_range(i, &start, &end) - nr_ranges++; - - return nr_ranges; -} - -int arch_crash_populate_cmem(struct crash_mem *cmem) -{ - phys_addr_t start, end; - uint64_t i; - - for_each_mem_range(i, &start, &end) { - cmem->ranges[cmem->nr_ranges].start =3D start; - cmem->ranges[cmem->nr_ranges].end =3D end - 1; - cmem->nr_ranges++; - } - - return 0; -} - /* * Add the "mem=3Dsize@start" command line parameter to command line, indi= cating the * memory region the new kernel can use to boot into. diff --git a/arch/riscv/kernel/machine_kexec_file.c b/arch/riscv/kernel/mac= hine_kexec_file.c index 808e872f4063..fdc6695e8588 100644 --- a/arch/riscv/kernel/machine_kexec_file.c +++ b/arch/riscv/kernel/machine_kexec_file.c @@ -37,32 +37,6 @@ int arch_kimage_file_post_load_cleanup(struct kimage *im= age) } =20 #ifdef CONFIG_CRASH_DUMP -unsigned int arch_get_system_nr_ranges(void) -{ - unsigned int nr_ranges =3D 2 + crashk_cma_cnt; /* For exclusion of crashk= ernel region */ - u64 i; - phys_addr_t start, end; - - for_each_mem_range(i, &start, &end) - nr_ranges++; - - return nr_ranges; -} - -int arch_crash_populate_cmem(struct crash_mem *cmem) -{ - u64 i; - phys_addr_t start, end; - - for_each_mem_range(i, &start, &end) { - cmem->ranges[cmem->nr_ranges].start =3D start; - cmem->ranges[cmem->nr_ranges].end =3D end - 1; - cmem->nr_ranges++; - } - - return 0; -} - static char *setup_kdump_cmdline(struct kimage *image, char *cmdline, unsigned long cmdline_len) { diff --git a/kernel/crash_core.c b/kernel/crash_core.c index 2b36aa9fade0..77285ae3ce60 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -281,8 +281,29 @@ static struct crash_mem *alloc_cmem(unsigned int nr_ra= nges) return cmem; } =20 -unsigned int __weak arch_get_system_nr_ranges(void) { return 0; } -int __weak arch_crash_populate_cmem(struct crash_mem *cmem) { return -1; } +unsigned int __weak arch_get_system_nr_ranges(void) +{ + unsigned int nr_ranges =3D 2 + crashk_cma_cnt; /* crashk_res + crashk_low= _res, +CMA splits */ + phys_addr_t start, end; + u64 i; + + for_each_mem_range(i, &start, &end) + nr_ranges++; + return nr_ranges; +} + +int __weak arch_crash_populate_cmem(struct crash_mem *cmem) +{ + phys_addr_t start, end; + u64 i; + + for_each_mem_range(i, &start, &end) { + cmem->ranges[cmem->nr_ranges].start =3D start; + cmem->ranges[cmem->nr_ranges].end =3D end - 1; + cmem->nr_ranges++; + } + return 0; +} int __weak arch_crash_exclude_ranges(struct crash_mem *cmem) { return 0; } =20 int __weak arch_crash_exclude_mem_range(struct crash_mem **mem, --=20 2.43.0 From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pz2-f0.google.com (mail-pz2-f0.google.com [74.125.228.0]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBD83441625 for ; Thu, 6 Aug 2026 09:36:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.0 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786009020; cv=none; b=Oeja4OpBZrMMwEx/sJlKi0bTLD5XLgJWrZvfc5NdutGHVz+h5aOQknZwRviXsWelhn0+5w/vdO8GoxxPRalYnXFXnu1k48wvR9cd4EjdACLDWW3IGIys5NdcAPkncVXkdO02QvzY168vEiCW5RpohsJ4ZE20Mbo20wv3ygDkXIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786009020; c=relaxed/simple; bh=asV5+uk1HNpC2yg4Ca+u8e82+cUPHo9klzhytwWRRZw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KEu8W7cCFVLuZYrFt1hBqmNvwayR75KB+bkgBtBmgdBBUHAtEmGFwuISnOKfNP5HV7M7Q/EDUD2sYFkkDBzHIx7pTuG5PLEK6V3/NbYgGTgA1B2OAQ26ch7E7v5J0UOrvx8ZraQ5kDwuQwR4xbzZDzdKd3zA1FC5Aq+4drGI1eM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WnIiChSj; arc=none smtp.client-ip=74.125.228.0 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WnIiChSj" Received: by mail-pz2-f0.google.com with SMTP id 41be03b00d2f7-ca7fcfe1669so1143347a12.0 for ; Thu, 06 Aug 2026 02:36:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786009018; x=1786613818; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=qD4VW4BZeNXzCi3gbNaQKdLxxRurNtLyN+adWk+/0t8=; b=WnIiChSj8iXfepfYAJuXWk5QcADY72HxFMYsYBxSF2nWZvkQohi01jOPJMet7MJsb6 z4EoNC9Qj/MRRDoTFZ+M96v7thtvY4Te23p5PjyRNJ25CFTY/ecZYa0M7qTOdAWzXpw4 AMjeY1nOxcqgiJh5sRsS+HiGJiBsbkgTVAjm+wYELL/ouzs054en59m0GBBhAPWqbN5m mGDk6jLGMO6PzBqLvOfEkRnyCQakQXX2tWv/WSPO157+6PPDlJvnbGwxLmo28if0OgyX lwsqfEDNhkh0mkikfRLGc00u5/lF17pzQjOXhTGvD3o8r7YKH96+aJV4n817w7ykneYi WgnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786009018; x=1786613818; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=qD4VW4BZeNXzCi3gbNaQKdLxxRurNtLyN+adWk+/0t8=; b=hLR8CnRYZyjeSwBOncm977yWA717hy3i49mZi9+JPccvoK0PX5T7s2sejp+q/xHSxc xdihKVQiyMCqZN7YeSCJ48EplgiUfoW/nVUPdaQZcH7BytcvVypdN5lTCzKK6MteLY4O U/+N09lf+5lWI7nQ3RCtlip8Dg8dPpkmgHyLmzmzRI5oSD4/GJgXNOpkF2z+m0og0y69 RFWRwnKQJAbwIaJrt/0qdxAvUK26FO7ivqZnzuzHR3Smq2iL/p5n2wQr7uJCme9GPD/t mIBwUzllnyTlsuYq8txOJiR5Z9I/dT0hxQ5c9ahEQMXPki3tQJUK/YvkgAHvF9imX7W/ 6s4Q== X-Forwarded-Encrypted: i=1; AHgh+RqLfNw/B1ZGWvXf/cu/eEl82q/+dPoV7NoAyCGYr0VwLBSkooD8Za3RE2YtdJmst4dFw+xsjWpmy3SsgTE=@vger.kernel.org X-Gm-Message-State: AOJu0YyWlCHMULgmA+AWq9jCF2KUqyhjHNai2Tl81PTmzn+DEOm9CrdJ +IL8TM41CNuFm+eG3a6+MDdFamL//G2ytEEuVI1eLhUOlSIaVJ4C/NbC X-Gm-Gg: AR+sD12RjCD+0MPP9tEyVXOrPxCqI/+Wf9Mf6R3PBjHnQgKf8KdPc8jZwFgoWPCBaCW IV+VwG/MSVM0qqI1flGGbQNp3jRdi0n1ee5HubjYHBiqkV1SPL9WcWC0OiFkOAwu/yAfs9km2jA JhpwR44fIbe6Y+QSkWmbWJkTtiVanzqGDjOkWpDyCSr7XkhUidHp4a5EIoWMu6d1yy3DAofA7Lf DS/uXUo+vTy9ImTqw4TOt0Mrsu6qxp3ZBWOE2GW93tWeiVYVvGhrsLl2CE49ee0ihvpSp8hmin3 8jc+XeTZIegQ0w8w7N5DfAdLw0WODuwpyFy2chrLdSIooG/4LGbDa278QCBLyDTqc1frW6ukEL2 YAYYEAs4xsQj4+JBOrG06MYwPtCqWISi4fjPCM8ivy6XSq1mbJTirGUyRTv11vy/ktjfXRIA7NL jSPsFgRfqcKtULn+Eyzf+w6v5+AEGMUrKxD29djOQHqvQsdL3lfhca9fRsqEBV7D0413WOSp1jc Q== X-Received: by 2002:a05:6a00:2d81:b0:848:6c9c:4074 with SMTP id d2e1a72fcca58-84f2dff6cd5mr14050456b3a.1.1786009018224; Thu, 06 Aug 2026 02:36:58 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.36.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:36:57 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 7/8] crash_core: replace for_each_mem_range() with for_each_mem_region() Date: Thu, 6 Aug 2026 17:35:18 +0800 Message-ID: <20260806093519.2907771-8-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen for_each_mem_range() skips MEMBLOCK_NOMAP regions implicitly. Switch the weak defaults to for_each_mem_region(), which exposes struct memblock_region and per-region flags, and filter NOMAP regions explicitly via the new crash_should_skip_region() helper. This prepares for a subsequent patch to extend the skip filter. No functional change. Signed-off-by: Wandun Chen Tested-by: Meijing Zhao --- kernel/crash_core.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/kernel/crash_core.c b/kernel/crash_core.c index 77285ae3ce60..fb78b7814f18 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -269,6 +269,12 @@ int crash_prepare_elf64_headers(struct crash_mem *mem,= int need_kernel_map, return 0; } =20 +/* Exclude NOMAP regions from the vmcore. */ +static bool crash_should_skip_region(struct memblock_region *reg) +{ + return memblock_is_nomap(reg); +} + static struct crash_mem *alloc_cmem(unsigned int nr_ranges) { struct crash_mem *cmem; @@ -284,22 +290,25 @@ static struct crash_mem *alloc_cmem(unsigned int nr_r= anges) unsigned int __weak arch_get_system_nr_ranges(void) { unsigned int nr_ranges =3D 2 + crashk_cma_cnt; /* crashk_res + crashk_low= _res, +CMA splits */ - phys_addr_t start, end; - u64 i; + struct memblock_region *reg; =20 - for_each_mem_range(i, &start, &end) + for_each_mem_region(reg) { + if (crash_should_skip_region(reg)) + continue; nr_ranges++; + } return nr_ranges; } =20 int __weak arch_crash_populate_cmem(struct crash_mem *cmem) { - phys_addr_t start, end; - u64 i; + struct memblock_region *reg; =20 - for_each_mem_range(i, &start, &end) { - cmem->ranges[cmem->nr_ranges].start =3D start; - cmem->ranges[cmem->nr_ranges].end =3D end - 1; + for_each_mem_region(reg) { + if (crash_should_skip_region(reg)) + continue; + cmem->ranges[cmem->nr_ranges].start =3D reg->base; + cmem->ranges[cmem->nr_ranges].end =3D reg->base + reg->size - 1; cmem->nr_ranges++; } return 0; --=20 2.43.0 From nobody Sat Oct 3 03:53:59 2026 Received: from mail-pj2-f0.google.com (mail-pj2-f0.google.com [74.125.227.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D13B14483A0 for ; Thu, 6 Aug 2026 09:37:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.227.128 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786009034; cv=none; b=vALl1KL3Lg5mlxwiINpQNp3yHcJ0DeZJFgVaZlg4j8C00nELo+wbBWK4fGyBHqgoEp9J7QQTcQ698RsM0irrs+PLcIeQDhYQyg89xwDZWQ1Ml6DMti31LihZWzq5/HDLynczQFO8fC7sKm8TSbewx3Eq4XRNhdaeUc37h0kaIE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786009034; c=relaxed/simple; bh=reK7rFNBw0BdYQ91tXN/M3BLzkC5IvWkzOQ7lbAAVK8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eAV/XjxxlY5N4oJWtr290Le3NugeOpHJRHHrA1PW9NkOnDqkfaWv3ZRW0jNdrdhVke6TDM0sVuzSJYejUZli5P0rfSLLOhRuevaic7RXb5B0iBkWi+bAdCDKfbDa9mM779IEXQp1be0HvimFB1IzmbcroKUVFX5fonVhqWm8my0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=AM53nFnv; arc=none smtp.client-ip=74.125.227.128 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AM53nFnv" Received: by mail-pj2-f0.google.com with SMTP id d9443c01a7336-2cc6bb7476dso2630925ad.0 for ; Thu, 06 Aug 2026 02:37:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786009029; x=1786613829; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=6uyTtFjVVo4Ow+xxdf9JzDuHeX18HS+OnizMa+EN8GU=; b=AM53nFnvbT7fhsU7KsWEXcp83bfGNSi+zHrxuxkw55a25BbyP/Pcf4XJRYI+8UroB5 jzxp9nWImIr38rGLtLypIS66+FC3dNr0dbjn42jo+VCp2vId97TlVsb6sJkW5IiEVgAC K9bq3PhRtiEhYe1M/htIJivPAWbM+XVQxNtrTd1GgGFi+h+bJlgxsr3x6Wt6XPnhgBlg vAiHKCPJASoknavU9c32LZfSSuQy4AmocNYfDZCl7nNILIKnxTw3HOmAMczJFXav5YpZ sG2CtVVTDeTjQMsdubeN7tXjawsq6TVkIe/2tKsrNIoj+da/AVNBAlqjVADRPA8YAFKx Setg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786009029; x=1786613829; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=6uyTtFjVVo4Ow+xxdf9JzDuHeX18HS+OnizMa+EN8GU=; b=GR1aaqR0ofV3a1Ne+nXcPrpc9gbSKK/iwXNPBC/PuPP/7e6W5ndTBy1ME+JAVVf62Z e5N7Z6sHEP80xP/MpjWEJmt+cM80kxXz/5OJIePP0o/ZK19B35BRXA7mI2l6allPHNBc e9eWjxxmUWdLZ+Zeveltc8OTvP7Q7mg+A9o98lkL4n9ibXX2UdJcty/LtnsUPqCfV8JA fCMdW0vsOJPjZPF0jL3qRfmrCSb0rXozZvhNe8lui6ndjwbu7Xct1SruoYuD+O8WlE8W zY6zejM81nIvZLlRdHZWpYUUrWaq2u67BlkqakieaEmfuzml7Yd4QkJhfs76zb1h2XuM dmRg== X-Forwarded-Encrypted: i=1; AHgh+Ron+33QJNxqNzvihu6d9KE6wB8H49WGBLcdnsIIMVW8MQPDMMB+23igDsTB03WPO/WRy+wbTafnhmVJI9A=@vger.kernel.org X-Gm-Message-State: AOJu0YzTUTDB3IE7qVWL3w9gZEVxe8joGDxuTPAM0wXdVSZfe3PsWloy SIGlswHAPT6RxEovRjUHfiJB2UObLS8TNXgqcaoNuSZagXiGQ6Fyn0MQ X-Gm-Gg: AR+sD13hWwVSJTU7I3U1JvOczCQJpV7MEhc7S+qb6rEJtNdAWJbFOXXrlOw9xLkKGWp ilYep5HiEdft6KsjDjeB1xpSHsGJIolhgUxgQbeBH46KWsurlng+WDFTxidoUlrgyckOCzYhIhm Kap7esSF2qn/w8g5/ivLk5vL+Wu1TK8N6+KXtH35v2SwoGQCX0UPYMf5sQtlH1cakSYsI6m5ZtV VhpnTTYpgypauACjbWZoT969b8WCBnjHhtt8xX8S5Koe64oqMc2v+wPGbsv6PP6R0FKfNbvfWoA aMP94t35meGoLnNXKjf6eM1DoUB26nv24nIldzAuPndvqs+bwbtjenAY3WcmYIbP8U6X6ktaH6v 33V9p21hRDbEqWDKCnQsZEPjS6/QIojYDF5zee5YY9vOfitLXBQQPriiVeRbA5PJo0chI4hg5dI KM6ulj8pDJD6i0j+/NU3Ya465BSn4jluR9Jh0/XRsNn3LrNlJdS2Nflkc3B3LHwL/grm0gRCtOo w== X-Received: by 2002:a05:6a00:464f:b0:846:5d1f:56d4 with SMTP id d2e1a72fcca58-84f47dd0b44mr3119262b3a.14.1786009028817; Thu, 06 Aug 2026 02:37:08 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f453b0aeasm1043878b3a.13.2026.08.06.02.36.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 02:37:08 -0700 (PDT) From: Wandun Chen To: catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, baoquan.he@linux.dev, pasha.tatashin@soleen.com, pratyush@kernel.org, m.szyprowski@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-mm@kvack.org, kexec@lists.infradead.org, iommu@lists.linux.dev Cc: kernel@xen0n.name, alex@ghiti.fr, akpm@linux-foundation.org, ruirui.yang@linux.dev, robin.murphy@arm.com Subject: [PATCH v5 8/8] crash_core: skip MEMBLOCK_NODUMP regions when building vmcore ELF header Date: Thu, 6 Aug 2026 17:35:19 +0800 Message-ID: <20260806093519.2907771-9-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806093519.2907771-1-chenwandun1@gmail.com> References: <20260806093519.2907771-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen Reserve regions (for GPU, DSP, ...) carry no data useful for crash analysis. Exclude MEMBLOCK_NODUMP regions from the vmcore ELF header to reduce vmcore size and capture time. crash_should_skip_region() now also returns true for MEMBLOCK_NODUMP. Signed-off-by: Wandun Chen Tested-by: Meijing Zhao --- kernel/crash_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/crash_core.c b/kernel/crash_core.c index fb78b7814f18..8cc9d666bc54 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -269,10 +269,10 @@ int crash_prepare_elf64_headers(struct crash_mem *mem= , int need_kernel_map, return 0; } =20 -/* Exclude NOMAP regions from the vmcore. */ +/* Exclude NOMAP and NODUMP regions from the vmcore. */ static bool crash_should_skip_region(struct memblock_region *reg) { - return memblock_is_nomap(reg); + return memblock_is_nomap(reg) || memblock_is_nodump(reg); } =20 static struct crash_mem *alloc_cmem(unsigned int nr_ranges) --=20 2.43.0