Release 2.0.27-4
Signed-off-by: Coiby Xu <coxu@redhat.com>
This commit is contained in:
parent
4841bc6a6d
commit
cb761c7224
@ -1,81 +0,0 @@
|
||||
From 5f17bdd2128998a3eeeb4521d136a192222fadb6 Mon Sep 17 00:00:00 2001
|
||||
From: Kazuhito Hagio <k-hagio-ab@nec.com>
|
||||
Date: Wed, 21 Dec 2022 11:06:39 +0900
|
||||
Subject: [PATCH] [PATCH] Fix wrong exclusion of slab pages on Linux 6.2-rc1
|
||||
|
||||
* Required for kernel 6.2
|
||||
|
||||
Kernel commit 130d4df57390 ("mm/sl[au]b: rearrange struct slab fields to
|
||||
allow larger rcu_head"), which is contained in Linux 6.2-rc1 and later,
|
||||
made the offset of slab.slabs equal to page.mapping's one. As a result,
|
||||
"makedumpfile -d 8", which should exclude user data, excludes some slab
|
||||
pages wrongly because isAnon() returns true when slab.slabs is an odd
|
||||
number. With such dumpfiles, crash can fail to start session with an
|
||||
error like this:
|
||||
|
||||
# crash vmlinux dumpfile
|
||||
...
|
||||
crash: page excluded: kernel virtual address: ffff8fa047ac2fe8 type: "xa_node shift"
|
||||
|
||||
Make isAnon() check that the page is not slab to fix this.
|
||||
|
||||
Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
|
||||
---
|
||||
makedumpfile.c | 6 +++---
|
||||
makedumpfile.h | 9 +++------
|
||||
2 files changed, 6 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/makedumpfile-1.7.2/makedumpfile.c b/makedumpfile-1.7.2/makedumpfile.c
|
||||
index ff821eb..f403683 100644
|
||||
--- a/makedumpfile-1.7.2/makedumpfile.c
|
||||
+++ b/makedumpfile-1.7.2/makedumpfile.c
|
||||
@@ -6502,7 +6502,7 @@ __exclude_unnecessary_pages(unsigned long mem_map,
|
||||
*/
|
||||
else if ((info->dump_level & DL_EXCLUDE_CACHE)
|
||||
&& is_cache_page(flags)
|
||||
- && !isPrivate(flags) && !isAnon(mapping)) {
|
||||
+ && !isPrivate(flags) && !isAnon(mapping, flags)) {
|
||||
pfn_counter = &pfn_cache;
|
||||
}
|
||||
/*
|
||||
@@ -6510,7 +6510,7 @@ __exclude_unnecessary_pages(unsigned long mem_map,
|
||||
*/
|
||||
else if ((info->dump_level & DL_EXCLUDE_CACHE_PRI)
|
||||
&& is_cache_page(flags)
|
||||
- && !isAnon(mapping)) {
|
||||
+ && !isAnon(mapping, flags)) {
|
||||
if (isPrivate(flags))
|
||||
pfn_counter = &pfn_cache_private;
|
||||
else
|
||||
@@ -6522,7 +6522,7 @@ __exclude_unnecessary_pages(unsigned long mem_map,
|
||||
* - hugetlbfs pages
|
||||
*/
|
||||
else if ((info->dump_level & DL_EXCLUDE_USER_DATA)
|
||||
- && (isAnon(mapping) || isHugetlb(compound_dtor))) {
|
||||
+ && (isAnon(mapping, flags) || isHugetlb(compound_dtor))) {
|
||||
pfn_counter = &pfn_user;
|
||||
}
|
||||
/*
|
||||
diff --git a/makedumpfile-1.7.2/makedumpfile.h b/makedumpfile-1.7.2/makedumpfile.h
|
||||
index 70a1a91..21dec7d 100644
|
||||
--- a/makedumpfile-1.7.2/makedumpfile.h
|
||||
+++ b/makedumpfile-1.7.2/makedumpfile.h
|
||||
@@ -161,12 +161,9 @@ test_bit(int nr, unsigned long addr)
|
||||
#define isSwapBacked(flags) test_bit(NUMBER(PG_swapbacked), flags)
|
||||
#define isHWPOISON(flags) (test_bit(NUMBER(PG_hwpoison), flags) \
|
||||
&& (NUMBER(PG_hwpoison) != NOT_FOUND_NUMBER))
|
||||
-
|
||||
-static inline int
|
||||
-isAnon(unsigned long mapping)
|
||||
-{
|
||||
- return ((unsigned long)mapping & PAGE_MAPPING_ANON) != 0;
|
||||
-}
|
||||
+#define isSlab(flags) test_bit(NUMBER(PG_slab), flags)
|
||||
+#define isAnon(mapping, flags) (((unsigned long)mapping & PAGE_MAPPING_ANON) != 0 \
|
||||
+ && !isSlab(flags))
|
||||
|
||||
#define PTOB(X) (((unsigned long long)(X)) << PAGESHIFT())
|
||||
#define BTOP(X) (((unsigned long long)(X)) >> PAGESHIFT())
|
||||
--
|
||||
2.39.0
|
||||
|
@ -1,11 +1,11 @@
|
||||
%global eppic_ver e8844d3793471163ae4a56d8f95897be9e5bd554
|
||||
%global eppic_shortver %(c=%{eppic_ver}; echo ${c:0:7})
|
||||
%global mkdf_ver 1.7.2
|
||||
%global mkdf_ver 1.7.4
|
||||
%global mkdf_shortver %(c=%{mkdf_ver}; echo ${c:0:7})
|
||||
|
||||
Name: kexec-tools
|
||||
Version: 2.0.27
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
License: GPL-2.0-only
|
||||
Summary: The kexec/kdump userspace component
|
||||
|
||||
@ -105,7 +105,6 @@ Requires: systemd-udev%{?_isa}
|
||||
#
|
||||
# Patches 601 onward are generic patches
|
||||
#
|
||||
Patch601: kexec-tools-2.0.26-makedumpfile-Fix-wrong-exclusion-of-slab-pages-on-Linux-6.2.patch
|
||||
# kexec-tools 2.0.27.git
|
||||
# Author: Simon Horman <horms@kernel.org>
|
||||
Patch602: 0001-kexec-tools-2.0.27.git.patch
|
||||
@ -133,7 +132,6 @@ mkdir -p -m755 kcp
|
||||
tar -z -x -v -f %{SOURCE9}
|
||||
tar -z -x -v -f %{SOURCE19}
|
||||
|
||||
%patch601 -p1
|
||||
%patch602 -p1
|
||||
%patch603 -p1
|
||||
%patch604 -p1
|
||||
@ -376,6 +374,11 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Nov 08 2023 Coiby Xu <coxu@redhat.com> - 2.0.27-4
|
||||
- update to makedumpfile-1.7.4
|
||||
- kdump-lib.sh: add extra 64M to default crashkernel if sme/sev is active
|
||||
- Allow _crashkernel_add to address larger memory ranges
|
||||
|
||||
* Tue Oct 17 2023 Coiby Xu <coxu@redhat.com> - 2.0.27-3
|
||||
- Only try to reset crashkernel when kdump.service is enabled
|
||||
|
||||
|
1
sources
1
sources
@ -1,3 +1,4 @@
|
||||
SHA512 (kexec-tools-2.0.27.tar.xz) = 30b5ef7c2075dfd11fd1c3c33abe6b60673400257668d60145be08a2472356c7191a0810095da0fa32e327b9806a7578c73129ac0550d26c28ea6571c88c7b3c
|
||||
SHA512 (makedumpfile-1.7.2.tar.gz) = 324e303dd5f507703f66e2bd5dc9d24f9f50ba797be70c05702008ba77078f61ffcc884796ddf9ab737de1d124c3a9d881ab5ce4f3f459690ec00055af25ea9e
|
||||
SHA512 (eppic-e8844d3.tar.gz) = d86b9f90c57e694107272d8f71b87f66a30743b9530480fb6f665026bbada4c6b0205a83e40b5383663a945681cfbfcf1ee79469fc219ddf679473c4b2290763
|
||||
SHA512 (makedumpfile-1.7.4.tar.gz) = 6c3455b711bd4e120173ee07fcc5ff708ae6d34eaee0f4c135eca7ee0e0475b4d391429c23cf68e848b156ee3edeab956e693a390d67ccc634c43224c7129a96
|
||||
|
Loading…
Reference in New Issue
Block a user