Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kdump for openSUSE:Factory checked 
in at 2026-09-17 15:16:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdump (Old)
 and      /work/SRC/openSUSE:Factory/.kdump.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdump"

Thu Sep 17 15:16:13 2026 rev:167 rq:1378408 version:2.1.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdump/kdump.changes      2026-05-07 
15:43:50.960363501 +0200
+++ /work/SRC/openSUSE:Factory/.kdump.new.383539/kdump.changes  2026-09-17 
15:17:43.572700086 +0200
@@ -1,0 +2,11 @@
+Fri Sep 11 18:03:17 UTC 2026 - Jiri Bohac <[email protected]>
+
+- upgrade to version 2.1.10
+  * calibrate: measure per-cpu requirements 
+  * kdumptool calibrate: take KDUMP_CPUS into account for PPC
+  * PPC: round up KDUMP_CPUS on SMT systems to nearest threads-per-cpu 
+  * Set default KDUMP_CPUs to 4 (jsc#PED-16732, bsc#1239999)
+  * add KDUMP_USE_CMA: experimental support for CMA reservation (jsc#PED-14553)
+- update calibrate values
+
+-------------------------------------------------------------------

Old:
----
  kdump-2.1.9.tar.xz

New:
----
  kdump-2.1.10.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdump.spec ++++++
--- /var/tmp/diff_new_pack.MpYxpc/_old  2026-09-17 15:17:44.449736838 +0200
+++ /var/tmp/diff_new_pack.MpYxpc/_new  2026-09-17 15:17:44.451736922 +0200
@@ -57,7 +57,7 @@
 %define dracutlibdir %{_prefix}/lib/dracut
 
 Name:           kdump
-Version:        2.1.9
+Version:        2.1.10
 Release:        0
 Summary:        Kernel crash dump scripts and utilities
 License:        GPL-2.0-or-later

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.MpYxpc/_old  2026-09-17 15:17:44.487738431 +0200
+++ /var/tmp/diff_new_pack.MpYxpc/_new  2026-09-17 15:17:44.491738598 +0200
@@ -1,6 +1,6 @@
-mtime: 1778078166
-commit: 1a01525bacf61303e988dcd9c56e0550a75c63764454c9cd8510ee182618a73a
+mtime: 1789150827
+commit: b5698f4864f02da7f23dd11c409c96ae97902f7c79a09480148ad36e16672923
 url: https://src.opensuse.org/kernel-kdump/kdump
-revision: 1a01525bacf61303e988dcd9c56e0550a75c63764454c9cd8510ee182618a73a
+revision: b5698f4864f02da7f23dd11c409c96ae97902f7c79a09480148ad36e16672923
 projectscmsync: https://src.opensuse.org/kernel-kdump/_ObsPrj
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-09-11 20:20:27.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ calibrate.conf.all ++++++
--- /var/tmp/diff_new_pack.MpYxpc/_old  2026-09-17 15:17:44.699747315 +0200
+++ /var/tmp/diff_new_pack.MpYxpc/_new  2026-09-17 15:17:44.702747441 +0200
@@ -1,23 +1,23 @@
-alp1600.aarch64:INIT_CACHED=42120
-alp1600.aarch64:INIT_CACHED_64kb=80192
+alp1600.aarch64:INIT_CACHED=47712
+alp1600.aarch64:INIT_CACHED_64kb=102784
 alp1600.aarch64:INIT_CACHED_NET=28336
 alp1600.aarch64:INIT_CACHED_NET_64kb=35584
-alp1600.aarch64:INIT_NET=8912
-alp1600.aarch64:INIT_NET_64kb=8896
-alp1600.aarch64:KERNEL_BASE=106428
-alp1600.aarch64:KERNEL_BASE_64kb=131456
-alp1600.aarch64:KERNEL_INIT=26240
-alp1600.aarch64:KERNEL_INIT_64kb=27520
+alp1600.aarch64:INIT_NET=8964
+alp1600.aarch64:INIT_NET_64kb=8960
+alp1600.aarch64:KERNEL_BASE=110728
+alp1600.aarch64:KERNEL_BASE_64kb=152752
+alp1600.aarch64:KERNEL_INIT=30896
+alp1600.aarch64:KERNEL_INIT_64kb=32128
 alp1600.aarch64:PAGESIZE=4096
 alp1600.aarch64:PAGESIZE_64kb=65536
-alp1600.aarch64:PERCPU=224
-alp1600.aarch64:PERCPU_64kb=896
+alp1600.aarch64:PERCPU=2064
+alp1600.aarch64:PERCPU_64kb=5288
 alp1600.aarch64:SIZEOFPAGE=64
 alp1600.aarch64:SIZEOFPAGE_64kb=64
-alp1600.aarch64:USER_BASE=23568
-alp1600.aarch64:USER_BASE_64kb=68608
-alp1600.aarch64:USER_NET=3444
-alp1600.aarch64:USER_NET_64kb=10304
+alp1600.aarch64:USER_BASE=23424
+alp1600.aarch64:USER_BASE_64kb=69760
+alp1600.aarch64:USER_NET=2028
+alp1600.aarch64:USER_NET_64kb=9152
 alp1600.i386:INIT_CACHED=42804
 alp1600.i386:INIT_CACHED_NET=12916
 alp1600.i386:INIT_NET=4748
@@ -38,16 +38,16 @@
 alp1600.ppc64:SIZEOFPAGE=64
 alp1600.ppc64:USER_BASE=47552
 alp1600.ppc64:USER_NET=1536
-alp1600.ppc64le:INIT_CACHED=84352
-alp1600.ppc64le:INIT_CACHED_NET=41728
-alp1600.ppc64le:INIT_NET=10368
-alp1600.ppc64le:KERNEL_BASE=137536
-alp1600.ppc64le:KERNEL_INIT=23424
+alp1600.ppc64le:INIT_CACHED=86016
+alp1600.ppc64le:INIT_CACHED_NET=42240
+alp1600.ppc64le:INIT_NET=10496
+alp1600.ppc64le:KERNEL_BASE=142950
+alp1600.ppc64le:KERNEL_INIT=23872
 alp1600.ppc64le:PAGESIZE=65536
-alp1600.ppc64le:PERCPU=768
+alp1600.ppc64le:PERCPU=6221
 alp1600.ppc64le:SIZEOFPAGE=64
-alp1600.ppc64le:USER_BASE=69632
-alp1600.ppc64le:USER_NET=10240
+alp1600.ppc64le:USER_BASE=68480
+alp1600.ppc64le:USER_NET=13632
 alp1600.riscv64:INIT_CACHED=32504
 alp1600.riscv64:INIT_CACHED_NET=11580
 alp1600.riscv64:INIT_NET=5320
@@ -58,76 +58,76 @@
 alp1600.riscv64:SIZEOFPAGE=64
 alp1600.riscv64:USER_BASE=12092
 alp1600.riscv64:USER_NET=1928
-alp1600.s390x:INIT_CACHED=36640
-alp1600.s390x:INIT_CACHED_NET=27428
-alp1600.s390x:INIT_NET=9348
-alp1600.s390x:KERNEL_BASE=62292
-alp1600.s390x:KERNEL_INIT=14684
+alp1600.s390x:INIT_CACHED=37144
+alp1600.s390x:INIT_CACHED_NET=27624
+alp1600.s390x:INIT_NET=9444
+alp1600.s390x:KERNEL_BASE=69274
+alp1600.s390x:KERNEL_INIT=14896
 alp1600.s390x:PAGESIZE=4096
-alp1600.s390x:PERCPU=216
+alp1600.s390x:PERCPU=2027
 alp1600.s390x:SIZEOFPAGE=64
-alp1600.s390x:USER_BASE=24436
-alp1600.s390x:USER_NET=3608
-alp1600.x86_64:INIT_CACHED=41564
-alp1600.x86_64:INIT_CACHED_NET=26664
-alp1600.x86_64:INIT_NET=9728
-alp1600.x86_64:KERNEL_BASE=103840
-alp1600.x86_64:KERNEL_INIT=23352
+alp1600.s390x:USER_BASE=23176
+alp1600.s390x:USER_NET=328
+alp1600.x86_64:INIT_CACHED=42420
+alp1600.x86_64:INIT_CACHED_NET=26876
+alp1600.x86_64:INIT_NET=9812
+alp1600.x86_64:KERNEL_BASE=117940
+alp1600.x86_64:KERNEL_INIT=23720
 alp1600.x86_64:PAGESIZE=4096
-alp1600.x86_64:PERCPU=372
+alp1600.x86_64:PERCPU=2144
 alp1600.x86_64:SIZEOFPAGE=64
-alp1600.x86_64:USER_BASE=29824
-alp1600.x86_64:USER_NET=2432
-alp1610.aarch64:INIT_CACHED=41904
-alp1610.aarch64:INIT_CACHED_64kb=80256
-alp1610.aarch64:INIT_CACHED_NET=28456
-alp1610.aarch64:INIT_CACHED_NET_64kb=35712
-alp1610.aarch64:INIT_NET=8924
-alp1610.aarch64:INIT_NET_64kb=8896
-alp1610.aarch64:KERNEL_BASE=85204
-alp1610.aarch64:KERNEL_BASE_64kb=147904
-alp1610.aarch64:KERNEL_INIT=25940
-alp1610.aarch64:KERNEL_INIT_64kb=27200
+alp1600.x86_64:USER_BASE=29604
+alp1600.x86_64:USER_NET=1212
+alp1610.aarch64:INIT_CACHED=47712
+alp1610.aarch64:INIT_CACHED_64kb=102784
+alp1610.aarch64:INIT_CACHED_NET=28336
+alp1610.aarch64:INIT_CACHED_NET_64kb=35584
+alp1610.aarch64:INIT_NET=8964
+alp1610.aarch64:INIT_NET_64kb=8960
+alp1610.aarch64:KERNEL_BASE=110728
+alp1610.aarch64:KERNEL_BASE_64kb=152752
+alp1610.aarch64:KERNEL_INIT=30896
+alp1610.aarch64:KERNEL_INIT_64kb=32128
 alp1610.aarch64:PAGESIZE=4096
 alp1610.aarch64:PAGESIZE_64kb=65536
-alp1610.aarch64:PERCPU=224
-alp1610.aarch64:PERCPU_64kb=896
+alp1610.aarch64:PERCPU=2064
+alp1610.aarch64:PERCPU_64kb=5288
 alp1610.aarch64:SIZEOFPAGE=64
 alp1610.aarch64:SIZEOFPAGE_64kb=64
-alp1610.aarch64:USER_BASE=22860
-alp1610.aarch64:USER_BASE_64kb=70528
-alp1610.aarch64:USER_NET=2996
-alp1610.aarch64:USER_NET_64kb=13056
-alp1610.ppc64le:INIT_CACHED=85312
-alp1610.ppc64le:INIT_CACHED_NET=42112
-alp1610.ppc64le:INIT_NET=10368
-alp1610.ppc64le:KERNEL_BASE=138688
-alp1610.ppc64le:KERNEL_INIT=23168
+alp1610.aarch64:USER_BASE=23424
+alp1610.aarch64:USER_BASE_64kb=69760
+alp1610.aarch64:USER_NET=2028
+alp1610.aarch64:USER_NET_64kb=9152
+alp1610.ppc64le:INIT_CACHED=86016
+alp1610.ppc64le:INIT_CACHED_NET=42240
+alp1610.ppc64le:INIT_NET=10496
+alp1610.ppc64le:KERNEL_BASE=142950
+alp1610.ppc64le:KERNEL_INIT=23872
 alp1610.ppc64le:PAGESIZE=65536
-alp1610.ppc64le:PERCPU=768
+alp1610.ppc64le:PERCPU=6221
 alp1610.ppc64le:SIZEOFPAGE=64
-alp1610.ppc64le:USER_BASE=68736
-alp1610.ppc64le:USER_NET=11392
-alp1610.s390x:INIT_CACHED=36640
-alp1610.s390x:INIT_CACHED_NET=27544
-alp1610.s390x:INIT_NET=9388
-alp1610.s390x:KERNEL_BASE=60448
-alp1610.s390x:KERNEL_INIT=14572
+alp1610.ppc64le:USER_BASE=68480
+alp1610.ppc64le:USER_NET=13632
+alp1610.s390x:INIT_CACHED=37144
+alp1610.s390x:INIT_CACHED_NET=27624
+alp1610.s390x:INIT_NET=9444
+alp1610.s390x:KERNEL_BASE=69274
+alp1610.s390x:KERNEL_INIT=14896
 alp1610.s390x:PAGESIZE=4096
-alp1610.s390x:PERCPU=216
+alp1610.s390x:PERCPU=2027
 alp1610.s390x:SIZEOFPAGE=64
-alp1610.s390x:USER_BASE=24620
-alp1610.s390x:USER_NET=0
-alp1610.x86_64:INIT_CACHED=41376
-alp1610.x86_64:INIT_CACHED_NET=26792
-alp1610.x86_64:INIT_NET=9736
-alp1610.x86_64:KERNEL_BASE=114332
-alp1610.x86_64:KERNEL_INIT=24160
+alp1610.s390x:USER_BASE=23176
+alp1610.s390x:USER_NET=328
+alp1610.x86_64:INIT_CACHED=42420
+alp1610.x86_64:INIT_CACHED_NET=26876
+alp1610.x86_64:INIT_NET=9812
+alp1610.x86_64:KERNEL_BASE=117940
+alp1610.x86_64:KERNEL_INIT=23720
 alp1610.x86_64:PAGESIZE=4096
-alp1610.x86_64:PERCPU=372
+alp1610.x86_64:PERCPU=2144
 alp1610.x86_64:SIZEOFPAGE=64
-alp1610.x86_64:USER_BASE=30072
-alp1610.x86_64:USER_NET=2016
+alp1610.x86_64:USER_BASE=29604
+alp1610.x86_64:USER_NET=1212
 leap150500.aarch64:INIT_CACHED=31912
 leap150500.aarch64:INIT_CACHED_NET=10384
 leap150500.aarch64:INIT_NET=3424
@@ -258,26 +258,26 @@
 leap150700.x86_64:SIZEOFPAGE=64
 leap150700.x86_64:USER_BASE=31084
 leap150700.x86_64:USER_NET=9260
-leap160000.aarch64:INIT_CACHED=42120
-leap160000.aarch64:INIT_CACHED_64kb=80192
+leap160000.aarch64:INIT_CACHED=47712
+leap160000.aarch64:INIT_CACHED_64kb=102784
 leap160000.aarch64:INIT_CACHED_NET=28336
 leap160000.aarch64:INIT_CACHED_NET_64kb=35584
-leap160000.aarch64:INIT_NET=8912
-leap160000.aarch64:INIT_NET_64kb=8896
-leap160000.aarch64:KERNEL_BASE=106428
-leap160000.aarch64:KERNEL_BASE_64kb=131456
-leap160000.aarch64:KERNEL_INIT=26240
-leap160000.aarch64:KERNEL_INIT_64kb=27520
+leap160000.aarch64:INIT_NET=8964
+leap160000.aarch64:INIT_NET_64kb=8960
+leap160000.aarch64:KERNEL_BASE=110728
+leap160000.aarch64:KERNEL_BASE_64kb=152752
+leap160000.aarch64:KERNEL_INIT=30896
+leap160000.aarch64:KERNEL_INIT_64kb=32128
 leap160000.aarch64:PAGESIZE=4096
 leap160000.aarch64:PAGESIZE_64kb=65536
-leap160000.aarch64:PERCPU=224
-leap160000.aarch64:PERCPU_64kb=896
+leap160000.aarch64:PERCPU=2064
+leap160000.aarch64:PERCPU_64kb=5288
 leap160000.aarch64:SIZEOFPAGE=64
 leap160000.aarch64:SIZEOFPAGE_64kb=64
-leap160000.aarch64:USER_BASE=23568
-leap160000.aarch64:USER_BASE_64kb=68608
-leap160000.aarch64:USER_NET=3444
-leap160000.aarch64:USER_NET_64kb=10304
+leap160000.aarch64:USER_BASE=23424
+leap160000.aarch64:USER_BASE_64kb=69760
+leap160000.aarch64:USER_NET=2028
+leap160000.aarch64:USER_NET_64kb=9152
 leap160000.i386:INIT_CACHED=42804
 leap160000.i386:INIT_CACHED_NET=12916
 leap160000.i386:INIT_NET=4748
@@ -298,16 +298,16 @@
 leap160000.ppc64:SIZEOFPAGE=64
 leap160000.ppc64:USER_BASE=47552
 leap160000.ppc64:USER_NET=1536
-leap160000.ppc64le:INIT_CACHED=84352
-leap160000.ppc64le:INIT_CACHED_NET=41728
-leap160000.ppc64le:INIT_NET=10368
-leap160000.ppc64le:KERNEL_BASE=137536
-leap160000.ppc64le:KERNEL_INIT=23424
+leap160000.ppc64le:INIT_CACHED=86016
+leap160000.ppc64le:INIT_CACHED_NET=42240
+leap160000.ppc64le:INIT_NET=10496
+leap160000.ppc64le:KERNEL_BASE=142950
+leap160000.ppc64le:KERNEL_INIT=23872
 leap160000.ppc64le:PAGESIZE=65536
-leap160000.ppc64le:PERCPU=768
+leap160000.ppc64le:PERCPU=6221
 leap160000.ppc64le:SIZEOFPAGE=64
-leap160000.ppc64le:USER_BASE=69632
-leap160000.ppc64le:USER_NET=10240
+leap160000.ppc64le:USER_BASE=68480
+leap160000.ppc64le:USER_NET=13632
 leap160000.riscv64:INIT_CACHED=32504
 leap160000.riscv64:INIT_CACHED_NET=11580
 leap160000.riscv64:INIT_NET=5320
@@ -318,26 +318,26 @@
 leap160000.riscv64:SIZEOFPAGE=64
 leap160000.riscv64:USER_BASE=12092
 leap160000.riscv64:USER_NET=1928
-leap160000.s390x:INIT_CACHED=36640
-leap160000.s390x:INIT_CACHED_NET=27428
-leap160000.s390x:INIT_NET=9348
-leap160000.s390x:KERNEL_BASE=62292
-leap160000.s390x:KERNEL_INIT=14684
+leap160000.s390x:INIT_CACHED=37144
+leap160000.s390x:INIT_CACHED_NET=27624
+leap160000.s390x:INIT_NET=9444
+leap160000.s390x:KERNEL_BASE=69274
+leap160000.s390x:KERNEL_INIT=14896
 leap160000.s390x:PAGESIZE=4096
-leap160000.s390x:PERCPU=216
+leap160000.s390x:PERCPU=2027
 leap160000.s390x:SIZEOFPAGE=64
-leap160000.s390x:USER_BASE=24436
-leap160000.s390x:USER_NET=3608
-leap160000.x86_64:INIT_CACHED=41564
-leap160000.x86_64:INIT_CACHED_NET=26664
-leap160000.x86_64:INIT_NET=9728
-leap160000.x86_64:KERNEL_BASE=103840
-leap160000.x86_64:KERNEL_INIT=23352
+leap160000.s390x:USER_BASE=23176
+leap160000.s390x:USER_NET=328
+leap160000.x86_64:INIT_CACHED=42420
+leap160000.x86_64:INIT_CACHED_NET=26876
+leap160000.x86_64:INIT_NET=9812
+leap160000.x86_64:KERNEL_BASE=117940
+leap160000.x86_64:KERNEL_INIT=23720
 leap160000.x86_64:PAGESIZE=4096
-leap160000.x86_64:PERCPU=372
+leap160000.x86_64:PERCPU=2144
 leap160000.x86_64:SIZEOFPAGE=64
-leap160000.x86_64:USER_BASE=29824
-leap160000.x86_64:USER_NET=2432
+leap160000.x86_64:USER_BASE=29604
+leap160000.x86_64:USER_NET=1212
 sle150500.aarch64:INIT_CACHED=31912
 sle150500.aarch64:INIT_CACHED_NET=10384
 sle150500.aarch64:INIT_NET=3424
@@ -478,26 +478,26 @@
 sle150700.x86_64:SIZEOFPAGE=64
 sle150700.x86_64:USER_BASE=33792
 sle150700.x86_64:USER_NET=2284
-tumbleweed.aarch64:INIT_CACHED=46444
-tumbleweed.aarch64:INIT_CACHED_64kb=100672
-tumbleweed.aarch64:INIT_CACHED_NET=27928
-tumbleweed.aarch64:INIT_CACHED_NET_64kb=35456
-tumbleweed.aarch64:INIT_NET=8940
+tumbleweed.aarch64:INIT_CACHED=47132
+tumbleweed.aarch64:INIT_CACHED_64kb=101504
+tumbleweed.aarch64:INIT_CACHED_NET=28400
+tumbleweed.aarch64:INIT_CACHED_NET_64kb=35712
+tumbleweed.aarch64:INIT_NET=8964
 tumbleweed.aarch64:INIT_NET_64kb=8960
-tumbleweed.aarch64:KERNEL_BASE=99536
-tumbleweed.aarch64:KERNEL_BASE_64kb=143040
-tumbleweed.aarch64:KERNEL_INIT=30140
-tumbleweed.aarch64:KERNEL_INIT_64kb=30848
+tumbleweed.aarch64:KERNEL_BASE=87350
+tumbleweed.aarch64:KERNEL_BASE_64kb=148734
+tumbleweed.aarch64:KERNEL_INIT=30384
+tumbleweed.aarch64:KERNEL_INIT_64kb=31616
 tumbleweed.aarch64:PAGESIZE=4096
 tumbleweed.aarch64:PAGESIZE_64kb=65536
-tumbleweed.aarch64:PERCPU=224
-tumbleweed.aarch64:PERCPU_64kb=448
+tumbleweed.aarch64:PERCPU=2377
+tumbleweed.aarch64:PERCPU_64kb=5249
 tumbleweed.aarch64:SIZEOFPAGE=64
 tumbleweed.aarch64:SIZEOFPAGE_64kb=64
-tumbleweed.aarch64:USER_BASE=22272
-tumbleweed.aarch64:USER_BASE_64kb=72576
-tumbleweed.aarch64:USER_NET=2824
-tumbleweed.aarch64:USER_NET_64kb=7616
+tumbleweed.aarch64:USER_BASE=22764
+tumbleweed.aarch64:USER_BASE_64kb=70400
+tumbleweed.aarch64:USER_NET=2424
+tumbleweed.aarch64:USER_NET_64kb=10816
 tumbleweed.i386:INIT_CACHED=42804
 tumbleweed.i386:INIT_CACHED_NET=12916
 tumbleweed.i386:INIT_NET=4748
@@ -518,16 +518,16 @@
 tumbleweed.ppc64:SIZEOFPAGE=64
 tumbleweed.ppc64:USER_BASE=87872
 tumbleweed.ppc64:USER_NET=4160
-tumbleweed.ppc64le:INIT_CACHED=94976
+tumbleweed.ppc64le:INIT_CACHED=85632
 tumbleweed.ppc64le:INIT_CACHED_NET=42240
-tumbleweed.ppc64le:INIT_NET=10688
-tumbleweed.ppc64le:KERNEL_BASE=142592
-tumbleweed.ppc64le:KERNEL_INIT=25216
+tumbleweed.ppc64le:INIT_NET=10368
+tumbleweed.ppc64le:KERNEL_BASE=137138
+tumbleweed.ppc64le:KERNEL_INIT=23744
 tumbleweed.ppc64le:PAGESIZE=65536
-tumbleweed.ppc64le:PERCPU=448
+tumbleweed.ppc64le:PERCPU=5927
 tumbleweed.ppc64le:SIZEOFPAGE=64
-tumbleweed.ppc64le:USER_BASE=70016
-tumbleweed.ppc64le:USER_NET=6528
+tumbleweed.ppc64le:USER_BASE=69120
+tumbleweed.ppc64le:USER_NET=12160
 tumbleweed.riscv64:INIT_CACHED=32504
 tumbleweed.riscv64:INIT_CACHED_NET=11580
 tumbleweed.riscv64:INIT_NET=5320
@@ -538,24 +538,24 @@
 tumbleweed.riscv64:SIZEOFPAGE=64
 tumbleweed.riscv64:USER_BASE=12092
 tumbleweed.riscv64:USER_NET=1928
-tumbleweed.s390x:INIT_CACHED=37036
-tumbleweed.s390x:INIT_CACHED_NET=26700
-tumbleweed.s390x:INIT_NET=9164
-tumbleweed.s390x:KERNEL_BASE=52828
-tumbleweed.s390x:KERNEL_INIT=15144
+tumbleweed.s390x:INIT_CACHED=36852
+tumbleweed.s390x:INIT_CACHED_NET=27580
+tumbleweed.s390x:INIT_NET=9380
+tumbleweed.s390x:KERNEL_BASE=67554
+tumbleweed.s390x:KERNEL_INIT=14780
 tumbleweed.s390x:PAGESIZE=4096
-tumbleweed.s390x:PERCPU=220
+tumbleweed.s390x:PERCPU=2411
 tumbleweed.s390x:SIZEOFPAGE=64
-tumbleweed.s390x:USER_BASE=10188
-tumbleweed.s390x:USER_NET=4
-tumbleweed.x86_64:INIT_CACHED=45440
-tumbleweed.x86_64:INIT_CACHED_NET=26764
-tumbleweed.x86_64:INIT_NET=9952
-tumbleweed.x86_64:KERNEL_BASE=113956
-tumbleweed.x86_64:KERNEL_INIT=27796
+tumbleweed.s390x:USER_BASE=23004
+tumbleweed.s390x:USER_NET=172
+tumbleweed.x86_64:INIT_CACHED=41804
+tumbleweed.x86_64:INIT_CACHED_NET=26864
+tumbleweed.x86_64:INIT_NET=9732
+tumbleweed.x86_64:KERNEL_BASE=115810
+tumbleweed.x86_64:KERNEL_INIT=23440
 tumbleweed.x86_64:PAGESIZE=4096
-tumbleweed.x86_64:PERCPU=344
+tumbleweed.x86_64:PERCPU=2143
 tumbleweed.x86_64:SIZEOFPAGE=64
-tumbleweed.x86_64:USER_BASE=33164
-tumbleweed.x86_64:USER_NET=0
+tumbleweed.x86_64:USER_BASE=30540
+tumbleweed.x86_64:USER_NET=3204
 

++++++ kdump-2.1.9.tar.xz -> kdump-2.1.10.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/NEWS new/kdump-2.1.10/NEWS
--- old/kdump-2.1.9/NEWS        2026-04-10 16:58:57.000000000 +0200
+++ new/kdump-2.1.10/NEWS       2026-09-11 19:33:19.000000000 +0200
@@ -1,3 +1,11 @@
+2.1.10
+------
+* calibrate: measure per-cpu requirements 
+* kdumptool calibrate: take KDUMP_CPUS into account for PPC
+* PPC: round up KDUMP_CPUS on SMT systems to nearest threads-per-cpu 
+* Set default KDUMP_CPUs to 4 (jsc#PED-16732, bsc#1239999)
+* add KDUMP_USE_CMA: experimental support for CMA reservation (jsc#PED-14553)
+
 2.1.9
 -----
 * fix syntax in sysconfig
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/calibrate/kernel.py 
new/kdump-2.1.10/calibrate/kernel.py
--- old/kdump-2.1.9/calibrate/kernel.py 2026-04-10 16:58:57.000000000 +0200
+++ new/kdump-2.1.10/calibrate/kernel.py        2026-09-11 19:33:19.000000000 
+0200
@@ -9,10 +9,8 @@
                     help='print debugging messages on stderr')
 cmdline = parser.parse_args()
 
-re_memory = re.compile('Memory: (\\d+)K/(\\d+)K available')
 re_freeing = re.compile('Freeing (.*) memory: (\\d+)K$')
 
-available = 0
 freed = 0
 unpack = False
 for line in sys.stdin:
@@ -29,13 +27,5 @@
                   file=sys.stderr)
     elif 'Trying to unpack rootfs image' in line:
         unpack = True
-    else:
-        match = re_memory.search(line)
-        if match:
-            available = int(match[2])
-            if cmdline.debug:
-                print('Memory {}K/{}K'.format(match[1], match[2]),
-                      file=sys.stderr)
 
-print('AVAILABLE={:d}'.format(available))
 print('KERNEL_INIT={:d}'.format(freed))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/calibrate/maxrss.py 
new/kdump-2.1.10/calibrate/maxrss.py
--- old/kdump-2.1.9/calibrate/maxrss.py 2026-04-10 16:58:57.000000000 +0200
+++ new/kdump-2.1.10/calibrate/maxrss.py        2026-09-11 19:33:19.000000000 
+0200
@@ -16,7 +16,6 @@
 
 memfree = None
 cached = None
-percpu = None
 pagesize = None
 sizeofpage = None
 
@@ -57,8 +56,6 @@
                 memfree = int(value.split()[0])
             elif key == 'Cached':
                 cached = int(value.split()[0])
-            elif key == 'Percpu':
-                percpu = int(value.split()[0])
 
         elif category == 'vmcoreinfo':
             try:
@@ -86,10 +83,6 @@
     print('Cannot determine Cached', file=sys.stderr)
     exit(1)
 
-if percpu is None:
-    print('Cannot determine Percpu', file=sys.stderr)
-    exit(1)
-
 if pagesize is None:
     print('Cannot determine page size', file=sys.stderr)
     exit(1)
@@ -107,5 +100,4 @@
 print('SIZEOFPAGE={:d}'.format(sizeofpage))
 print('INIT_MEMFREE={:d}'.format(memfree))
 print('INIT_CACHED={:d}'.format(cached))
-print('PERCPU={:d}'.format(percpu))
 print('USER_BASE={:d}'.format(maxrss))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/calibrate/run-qemu.py 
new/kdump-2.1.10/calibrate/run-qemu.py
--- old/kdump-2.1.9/calibrate/run-qemu.py       2026-04-10 16:58:57.000000000 
+0200
+++ new/kdump-2.1.10/calibrate/run-qemu.py      2026-09-11 19:33:19.000000000 
+0200
@@ -302,9 +302,7 @@
     numpages = (params['TOTAL_RAM'] + pagesize_kb - 1) // pagesize_kb
     memmap_pages = (numpages * results['SIZEOFPAGE'] + pagesize - 1) // 
pagesize
     kernel_base -= memmap_pages * pagesize_kb
-    results['KERNEL_BASE'] = kernel_base - results['PERCPU']
-
-    results['PERCPU'] = results['PERCPU'] // params['NUMCPUS']
+    results['KERNEL_BASE'] = kernel_base
 
     return results
 
@@ -390,7 +388,16 @@
         install_kdump_init(oldcwd)
         init_local_dracut(params)
         
+        # qemu will be run three times:
+        #   with BASE_CPUS cpus, no network to get base requirements
+        #   with MANY_CPUS cpus, no network, to calculate the extra per-cpu 
requirements
+        #   with 2 cpus and network, to calculate the extra network 
requirements
+
+        BASE_CPUS = 2
+        MANY_CPUS = 64
+
         params['NET'] = False
+        params['NUMCPUS'] = BASE_CPUS
         initrd = build_initrd(oldcwd, params, 'dummy.conf', "test-initrd")
         results = run_qemu(oldcwd, params, initrd, elfcorehdr)
         # verify that the dump completed successfully
@@ -401,20 +408,32 @@
         if not ret:
             print("non-network dump failed; calibration failed", 
file=sys.stderr)
             exit(1)
+
+        params['NUMCPUS'] = MANY_CPUS
+        results_many = run_qemu(oldcwd, params, initrd, elfcorehdr)
+        # we don't need to check the dump result, we're only interested in 
KERNEL_BASE
+        if not results_many['KERNEL_BASE']:
+            print("kernel failed with larger number of cpus; calibration 
failed", file=sys.stderr)
+            exit(1)
+
                 
         params['NET'] = True
+        params['NUMCPUS'] = BASE_CPUS
         initrd = build_initrd(oldcwd, params, 'dummy-net.conf', 
"test-initrd-net")
         os.mkdir('/tmp/netdump')
-        netresults = run_qemu(oldcwd, params, initrd, elfcorehdr)
+        results_net = run_qemu(oldcwd, params, initrd, elfcorehdr)
         if not dump_ok('/tmp/netdump'):
             print("network dump failed; calibration failed", file=sys.stderr)
             exit(1)
 
         os.chdir(oldcwd)
 
-    calc_diff(results, netresults, 'KERNEL_INIT', 'INIT_NET')
-    calc_diff(results, netresults, 'INIT_CACHED', 'INIT_CACHED_NET')
-    calc_diff(results, netresults, 'USER_BASE', 'USER_NET')
+    calc_diff(results, results_net, 'KERNEL_INIT', 'INIT_NET')
+    calc_diff(results, results_net, 'INIT_CACHED', 'INIT_CACHED_NET')
+    calc_diff(results, results_net, 'USER_BASE', 'USER_NET')
+
+    results['PERCPU'] = (results_many['KERNEL_BASE'] - results['KERNEL_BASE']) 
// (MANY_CPUS - BASE_CPUS)
+    results['KERNEL_BASE'] -= results['PERCPU'] * BASE_CPUS
 
     keys = (
         'KERNEL_BASE',
@@ -447,9 +466,6 @@
 # Total VM memory in KiB:
 params['TOTAL_RAM'] = 1024 * 1024
 
-# Number of CPUs for the VM
-params['NUMCPUS'] = 2
-
 # Where kernel messages should go
 params['MESSAGES_LOG'] = 'messages.log'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/doc/man/kdump.5.txt.in 
new/kdump-2.1.10/doc/man/kdump.5.txt.in
--- old/kdump-2.1.9/doc/man/kdump.5.txt.in      2026-04-10 16:58:57.000000000 
+0200
+++ new/kdump-2.1.10/doc/man/kdump.5.txt.in     2026-09-11 19:33:19.000000000 
+0200
@@ -102,18 +102,22 @@
 ~~~~~~~~~~
 
 This parameter can be used to limit the number of CPUs used by kdump. 
-The value is passed in the _nr_cpus_ parameter to the kdump / fadump kernel 
and 
-in the _--num-threads_ option to *makedumpfile*(8).
+The value is passed in the _nr_cpus_ parameter to the kdump / fadump kernel.
 
 If the value is zero, all available CPUs are used, i.e. the _nr_cpus_
 parameter is not added to the kdump kernel command line and _--num-threads_ 
 is set to the number of CPUs.
 
+On ppc64, when SMT is active, KDUMP_CPUS is rounded up to the nearest
+number of threads-per-core.
+
+On XEN the KDUMP_CPUS is set to 1.
+
 Decreasing the number of CPUs will lower the memory required by kdump,
 while increasing it can raise memory usage and may cause kdump failure
 if crashkernel memory is insufficient.
 
-Default is 32.
+Default is 4.
 
 
 KDUMP_COMMANDLINE
@@ -661,6 +665,29 @@
 
 Default: ""
 
+KDUMP_USE_CMA
+~~~~~~~~~~~~~
+
+Make _kdumptool commandline_ use the ,cma crashkernel suffix, instructing the
+kernel to use CMA for part of the crashkernel reservation. Memory reserved from
+the CMA remains available to the production system's user space. More memory 
can
+be used by kdump (making it less likely that kdump fails because not enough
+memory has been reserved), while more memory also remains usable for 
production.
+
+*KDUMP_USE_CMA is an experimental feature. Kdump may become less reliable
+because the DMA transfers configured by the production kernel may end up
+corrupting the kdump kernel's memory.* It is intended for systems that can't
+afford to sacrifice enough memory for standard crashkernel reservation and
+where less reliable and possibly incomplete kdump is preferable to no kdump
+at all.
+
+KDUMP_USE_CMA cannot be used when KDUMP_DUMPLEVEL is configured to dump user 
space
+pages.
+
+CMA crashkernel reservation is not supported by all architectures.
+
+Default is "false".
+
 URL FORMAT
 ----------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/dracut/kdump-save 
new/kdump-2.1.10/dracut/kdump-save
--- old/kdump-2.1.9/dracut/kdump-save   2026-04-10 16:58:57.000000000 +0200
+++ new/kdump-2.1.10/dracut/kdump-save  2026-09-11 19:33:19.000000000 +0200
@@ -278,7 +278,6 @@
                # number of threads
                THREADS=""
                CPUS=$(nproc)   
-               [[ ${KDUMP_CPUS} -gt 0 ]] && [[ ${KDUMP_CPUS} -lt ${CPUS} ]] && 
CPUS=${KDUMP_CPUS}
                [[ ${KDUMP_DUMPFORMAT} == ELF ]] && CPUS=1
                [[ ${CPUS} -ne 1 ]] && THREADS="--num-threads ${CPUS}"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/init/load.sh 
new/kdump-2.1.10/init/load.sh
--- old/kdump-2.1.9/init/load.sh        2026-04-10 16:58:57.000000000 +0200
+++ new/kdump-2.1.10/init/load.sh       2026-09-11 19:33:19.000000000 +0200
@@ -101,7 +101,15 @@
             commandline=$(echo "$commandline" | remove_from_commandline 
'quiet')
        fi
 
-       [[ -e /proc/xen ]] && KDUMP_CPUS=1      # makedumpfile does not support 
--num-threads on XEN
+       # KDUMP_CPUS tweaks
+       # round up to nearest threads-per-core on ppc64/SMT systems
+       if SMT=$(ppc64_cpu --smt -n 2>/dev/null); then
+               SMT=${SMT##SMT=}
+               KDUMP_CPUS=$((KDUMP_CPUS+SMT-1-(KDUMP_CPUS+SMT-1)%SMT))
+       fi
+       # makedumpfile does not support --num-threads on XEN
+       [[ -e /proc/xen ]] && KDUMP_CPUS=1
+
         if [ ${KDUMP_CPUS:-1} -ne 0 ] ; then
             nr_cpus="nr_cpus=${KDUMP_CPUS:-1}"
         fi
@@ -297,6 +305,12 @@
        exit 1
     }
 
+    if [[ $((KDUMP_DUMPLEVEL & 8)) -eq 0 ]] && read < 
/sys/kernel/kexec_crash_cma_ranges 2>/dev/null; then
+       echo "KDUMP_DUMPLEVEL must be configured to filter user data when" >&2
+       echo "crashkernel CMA reservation is used." >&2
+       exit 1
+    fi
+
     # check if initrd and the kernel it was built for exist
     # return 6 if not, which is treated as success by 
     # the kdump-early service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/kdump-read-config.sh 
new/kdump-2.1.10/kdump-read-config.sh
--- old/kdump-2.1.9/kdump-read-config.sh        2026-04-10 16:58:57.000000000 
+0200
+++ new/kdump-2.1.10/kdump-read-config.sh       2026-09-11 19:33:19.000000000 
+0200
@@ -10,7 +10,7 @@
        option string    KDUMP_COMMANDLINE ""
        option string    KDUMP_COMMANDLINE_APPEND ""
        option bool      KDUMP_CONTINUE_ON_ERROR true
-       option int       KDUMP_CPUS 32
+       option int       KDUMP_CPUS 4
        option string    KDUMP_CRASHKERNEL "auto"
        option string    KDUMP_DUMPFORMAT "compressed"
        option int       KDUMP_DUMPLEVEL 31
@@ -38,6 +38,7 @@
        option int       KDUMP_VERBOSE 0
        option string    KEXEC_OPTIONS ""
        option string    MAKEDUMPFILE_OPTIONS ""
+       option bool      KDUMP_USE_CMA false
        
        option deprecated KDUMPTOOL_FLAGS ""
        option deprecated KDUMP_COPY_KERNEL ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/kdumptool/calibrate.cc 
new/kdump-2.1.10/kdumptool/calibrate.cc
--- old/kdump-2.1.9/kdumptool/calibrate.cc      2026-04-10 16:58:57.000000000 
+0200
+++ new/kdump-2.1.10/kdumptool/calibrate.cc     2026-09-11 19:33:19.000000000 
+0200
@@ -43,6 +43,7 @@
 char *kernel_version = NULL;
 bool m_shrink = false;
 bool debug = false;
+unsigned long cpus = 0;
 
 void read_str(std::string &str, const char* path);
 
@@ -68,49 +69,37 @@
 // The following macros are defined:
 //
 //    DEF_RESERVE_KB   default reservation size
-//    CAN_REDUCE_CPUS   non-zero if the architecture can reduce kernel
-//                      memory requirements with nr_cpus=
-//
 
 #if defined(__x86_64__)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       1
 
 #elif defined(__i386__)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       1
 
 #elif defined(__powerpc64__)
 # define DEF_RESERVE_KB                MB(384)
-# define CAN_REDUCE_CPUS       0
 
 #elif defined(__powerpc__)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       0
 
 #elif defined(__s390x__)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       1
 
 # define align_memmap          s390x_align_memmap
 
 #elif defined(__s390__)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       1
 
 # define align_memmap          s390_align_memmap
 
 #elif defined(__aarch64__)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       1
 
 #elif defined(__arm__)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       1
 
 #elif defined(__riscv)
 # define DEF_RESERVE_KB                MB(192)
-# define CAN_REDUCE_CPUS       1
 
 #else
 # error "No default crashkernel reservation for your architecture!"
@@ -915,18 +904,7 @@
     }
 
     // Add memory based on CPU count
-    unsigned long cpus = 0, percpu;
-    if (CAN_REDUCE_CPUS) {
-       cpus = KDUMP_CPUS;
-    }
-    if (!cpus) {
-        unsigned long online = 
SystemCPU_count("/sys/devices/system/cpu/online");
-        unsigned long offline = 
SystemCPU_count("/sys/devices/system/cpu/offline");
-        DEBUG("CPUs online: %lu, offline: %lu",
-                            online, offline);
-        cpus = online + offline;
-    }
-    DEBUG("Total assumed CPUs: %lu", cpus);
+    unsigned long percpu;
     percpu = sizes.percpu_kb(); // kernel percpu from calibrate.conf
     percpu += 50 * 2; // generic ~50k thread footprint (measured) * 2 for 
safety
     percpu += 3 * sizes.pagesize() / 1024; // makedumpfile BUF_PARALLEL and 
BUF_OUT_PARALLEL
@@ -1084,6 +1062,8 @@
         cout << "MaxLow: 0" << endl;
         cout << "MinHigh: 0 " << endl;
         cout << "MaxHigh: 0 " << endl;
+        cout << "NonCMA: 0" << endl;
+        cout << "CMA: 0" << endl;
         return 0;
     }
 
@@ -1095,9 +1075,19 @@
     // Get total RAM size
     DEBUG("Expected total RAM: %lu KiB", memtotal);
 
+    cpus = KDUMP_CPUS;
+    if (!cpus) {
+        unsigned long online = 
SystemCPU_count("/sys/devices/system/cpu/online");
+        unsigned long offline = 
SystemCPU_count("/sys/devices/system/cpu/offline");
+        DEBUG("CPUs online: %lu, offline: %lu",
+                            online, offline);
+        cpus = online + offline;
+    }
+    DEBUG("Total assumed CPUs: %lu", cpus);
+
     // Calculate boot requirements
     unsigned long bootsize = sizes.kernel_base_kb() +
-        sizes.kernel_init_kb() + sizes.initramfs_kb();
+        sizes.kernel_init_kb() + sizes.initramfs_kb() + cpus * 
sizes.percpu_kb();
     if (needsNetwork)
         bootsize += sizes.kernel_init_net_kb() + sizes.initramfs_net_kb();
     DEBUG("Memory needed at boot: %lu KiB", bootsize);
@@ -1122,6 +1112,22 @@
 
     unsigned long low, minlow, maxlow;
     unsigned long high, minhigh, maxhigh;
+    unsigned long cma, noncma;
+
+    /* simplified generous calculation for KDUMP_USE_CMA case */
+    noncma = bootsize;
+    noncma = noncma * 5 / 4;
+    noncma += MB(64);
+    cma = 0;
+    cma += sizes.initramfs_kb();
+    cma += sizes.user_base_kb();
+    cma += needsNetwork ? sizes.user_net_kb() : 0;
+    cma *= 4;                           // increase 4 times
+    cma += MB(256);                     // add 256 MB
+    cma += cpus * MB(16);               // add 16 MB per CPU
+    cma += memtotal >> 10;              // add 1/1024 of total RAM
+    cma += KDUMP_LUKS_MEMORY * 5 / 4;   // add LUKS memory + 25%
+    cma = shr_round_up(cma, 16) << 16;  // round up to nearest 64 MB
 
 #if defined(__x86_64__)
 
@@ -1173,6 +1179,8 @@
     cout << "MaxLow: " << (maxlow >> 10) << endl;
     cout << "MinHigh: " << shr_round_up(minhigh, 10) << endl;
     cout << "MaxHigh: " << (maxhigh >> 10) << endl;
+    cout << "NonCMA: " << shr_round_up(noncma, 10) << endl;
+    cout << "CMA: " << shr_round_up(cma, 10) << endl;
 
 #if HAVE_FADUMP
     unsigned long fadump, minfadump, maxfadump;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/kdumptool/kdumptool 
new/kdump-2.1.10/kdumptool/kdumptool
--- old/kdump-2.1.9/kdumptool/kdumptool 2026-04-10 16:58:57.000000000 +0200
+++ new/kdump-2.1.10/kdumptool/kdumptool        2026-09-11 19:33:19.000000000 
+0200
@@ -116,11 +116,15 @@
                CALIBRATE_LOW=
                CALIBRATE_HIGH=
                CALIBRATE_FADUMP=
+               CALIBRATE_NONCMA=
+               CALIBRATE_CMA=
                while read -r KEY VALUE; do
                        case "${KEY}" in
                                "Low:") CALIBRATE_LOW=${VALUE};;
                                "High:") CALIBRATE_HIGH=${VALUE};;
                                "Fadump:") CALIBRATE_FADUMP=${VALUE};;
+                               "NonCMA:") CALIBRATE_NONCMA=${VALUE};;
+                               "CMA:") CALIBRATE_CMA=${VALUE};;
                        esac
                done <<<"$(do_calibrate)"
 
@@ -130,6 +134,13 @@
                                return 1
                        fi
                        CRASHKERNEL=("crashkernel=${CALIBRATE_FADUMP}M")
+               elif ${KDUMP_USE_CMA} && [[ ${CALIBRATE_CMA} -gt 0 ]] && [[ 
${CALIBRATE_NONCMA} -gt 0 ]]; then
+                       if [[ $((KDUMP_DUMPLEVEL & 8)) -eq 0 ]]; then
+                               echo "KDUMP_DUMPLEVEL must be configured to 
filter user data when" >&2
+                               echo "KDUMP_USE_CMA is used." >&2
+                               return 1
+                       fi
+                       CRASHKERNEL=("crashkernel=${CALIBRATE_NONCMA}M" 
"crashkernel=${CALIBRATE_CMA}M,cma")
                else
                        if [[ -z ${CALIBRATE_LOW} ]] || [[ -z ${CALIBRATE_HIGH} 
]]; then
                                echo "Error parsing calibrate output" >&2
@@ -311,6 +322,15 @@
 set -a
 . /usr/lib/kdump/kdump-read-config.sh
 
+# KDUMP_CPUS tweaks
+# round up to nearest threads-per-core on ppc64/SMT systems
+if SMT=$(ppc64_cpu --smt -n 2>/dev/null); then
+       SMT=${SMT##SMT=}
+       KDUMP_CPUS=$((KDUMP_CPUS+SMT-1-(KDUMP_CPUS+SMT-1)%SMT))
+fi
+# makedumpfile does not support --num-threads on XEN
+[[ -e /proc/xen ]] && KDUMP_CPUS=1
+
 case $1 in
        calibrate)
                do_calibrate "$@"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/packaging/suse/calibrate/README 
new/kdump-2.1.10/packaging/suse/calibrate/README
--- old/kdump-2.1.9/packaging/suse/calibrate/README     2026-04-10 
16:58:57.000000000 +0200
+++ new/kdump-2.1.10/packaging/suse/calibrate/README    2026-09-11 
19:33:19.000000000 +0200
@@ -29,10 +29,10 @@
   
   One way to do this is to branch the package. In OBS, in the branched
   projects's "Project Config" tab, enter:
+         BuildFlags: allowrootforbuild:1
          Macros:
          %_with_calibrate 1
          :Macros
-         BuildFlags: allowrootforbuild:1
 
   The package build will run qemu and generate a fresh calibrate.conf
   file, not using the pre-built values from calibrate.conf.all
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/packaging/suse/kdump.spec 
new/kdump-2.1.10/packaging/suse/kdump.spec
--- old/kdump-2.1.9/packaging/suse/kdump.spec   2026-04-10 16:58:57.000000000 
+0200
+++ new/kdump-2.1.10/packaging/suse/kdump.spec  2026-09-11 19:33:19.000000000 
+0200
@@ -73,10 +73,7 @@
 BuildRequires:  pkgconfig(systemd)
 BuildRequires:  pkgconfig(udev)
 #!BuildIgnore:  fop
-# dependencies needed when with_calibrate is turned on
-# OBS does not work with conditional buildrequires
-# so turn them on unconditionally
-# %if %{with calibrate}
+%if %{with calibrate}
 BuildRequires:  %qemu
 BuildRequires:  udev
 BuildRequires:  systemd
@@ -102,8 +99,7 @@
 BuildRequires:  qemu-ipxe
 BuildRequires:  qemu-vgabios
 %endif
-# end of with_calibrate dependencies
-# %endif
+%endif
 Requires:       /usr/bin/sed
 Requires:       dracut >= 047
 Requires:       kexec-tools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdump-2.1.9/sysconfig.kdump.in 
new/kdump-2.1.10/sysconfig.kdump.in
--- old/kdump-2.1.9/sysconfig.kdump.in  2026-04-10 16:58:57.000000000 +0200
+++ new/kdump-2.1.10/sysconfig.kdump.in 2026-09-11 19:33:19.000000000 +0200
@@ -64,7 +64,7 @@
 #
 # See also: kdump(5).
 #
-KDUMP_CPUS=32
+KDUMP_CPUS=4
 
 ## Type:       string
 ## Default:    ""
@@ -428,3 +428,30 @@
 #
 # See also: kdump(5)
 KDUMP_SSH_IDENTITY=""
+
+## Type:        boolean ## Default:    "false" ## ServiceRestart:      kdump
+#
+# Experimental!
+#
+# Make _kdumptool commandline_ use the ,cma crashkernel suffix, instructing the
+# kernel to use CMA for part of the crashkernel reservation. Memory reserved
+# from the CMA remains available to the production system's user space. More
+# memory can be used by kdump (making it less likely that kdump fails because
+# not enough memory has been reserved), while more memory also remains usable
+# for production.
+#
+# KDUMP_USE_CMA is an experimental feature. Kdump may become less reliable
+# because the DMA transfers configured by the production kernel may end up
+# corrupting the kdump kernel's memory. It is intended for systems that can't
+# afford to sacrifice enough memory for standard crashkernel reservation and
+# where less reliable and possibly incomplete kdump is preferable to no kdump
+# at all.
+#
+# KDUMP_USE_CMA cannot be used when KDUMP_DUMPLEVEL is configured to dump user 
space
+# pages.
+#
+# CMA crashkernel reservation is not supported by all architectures.
+#
+# See also: kdump(5)
+
+KDUMP_USE_CMA="false"

Reply via email to