diff --git a/kdump-bail-out-if-no-default-interface.patch b/kdump-bail-out-if-no-default-interface.patch new file mode 100644 index 0000000..f74c413 --- /dev/null +++ b/kdump-bail-out-if-no-default-interface.patch @@ -0,0 +1,33 @@ +From: Petr Tesarik +Date: Fri, 9 Feb 2018 16:55:55 +0100 +Subject: Bail out of kdump_check_net if no default interface is found +References: bsc#1058202 +Upstream: merged +Git-commit: 0f07085aac4f506752e2cd41a43b34b85f3f09aa + +If network is required but no default interface is found, dracut +spits spurious errors, such as: + +/lib/kdump/setup-kdump.functions: line 471: /sys/class/net//addr_assign_type: No such file or directory +/lib/kdump/setup-kdump.functions: line 472: [: : integer expression expected +/lib/kdump/setup-kdump.functions: line 476: ethtool: command not found + +Signed-off-by: Petr Tesarik +--- + init/module-setup.sh | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/init/module-setup.sh ++++ b/init/module-setup.sh +@@ -33,6 +33,11 @@ kdump_check_net() { + if [ "$kdump_host_if" = "default" ] ; then + kdump_host_if=$(kdump_default_netdev) + fi ++ if [ -z "$kdump_host_if" ] ; then ++ kdump_neednet= ++ return 1 ++ fi ++ + if [ "$kdump_net_mode" = "auto" ] ; then + kdump_net_mode=$(kdump_netdev_mode "$kdump_host_if") + fi diff --git a/kdump-calibrate-adjust-sizeof-struct-page.patch b/kdump-calibrate-adjust-sizeof-struct-page.patch new file mode 100644 index 0000000..8243370 --- /dev/null +++ b/kdump-calibrate-adjust-sizeof-struct-page.patch @@ -0,0 +1,87 @@ +From: Petr Tesarik +Date: Thu, 8 Feb 2018 17:47:21 +0100 +Subject: calibrate: Adjust sizeof(struct page) +Upstream: merged +Git-commit: f3aed9afcece4a6d25f9ee5ed0d4a2e82204cfa1 + +After adding a memcg pointer, struct page has grown by one pointer. + +Signed-off-by: Petr Tesarik +--- + kdumptool/calibrate.cc | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +--- a/kdumptool/calibrate.cc ++++ b/kdumptool/calibrate.cc +@@ -63,7 +63,7 @@ + # define KERNEL_INIT_KB MB(5) + # define INIT_KB MB(34) + # define INIT_NET_KB MB(3) +-# define SIZE_STRUCT_PAGE 56 ++# define SIZE_STRUCT_PAGE 64 + # define KDUMP_PHYS_LOAD 0 + # define CAN_REDUCE_CPUS 1 + # define PERCPU_KB 108 +@@ -74,7 +74,7 @@ + # define KERNEL_INIT_KB MB(4) + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) +-# define SIZE_STRUCT_PAGE 32 ++# define SIZE_STRUCT_PAGE 36 + # define KDUMP_PHYS_LOAD 0 + # define CAN_REDUCE_CPUS 1 + # define PERCPU_KB 56 +@@ -96,7 +96,7 @@ + # define KERNEL_INIT_KB MB(5) + # define INIT_KB MB(34) + # define INIT_NET_KB MB(2) +-# define SIZE_STRUCT_PAGE 32 ++# define SIZE_STRUCT_PAGE 36 + # define KDUMP_PHYS_LOAD MB(128) + # define CAN_REDUCE_CPUS 0 + # define PERCPU_KB 0 // TODO !!! +@@ -107,7 +107,7 @@ + # define KERNEL_INIT_KB 512 + # define INIT_KB MB(34) + # define INIT_NET_KB MB(2) +-# define SIZE_STRUCT_PAGE 56 ++# define SIZE_STRUCT_PAGE 64 + # define KDUMP_PHYS_LOAD 0 + # define CAN_REDUCE_CPUS 1 + # define PERCPU_KB 48 +@@ -120,7 +120,7 @@ + # define KERNEL_INIT_KB 512 + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) +-# define SIZE_STRUCT_PAGE 32 ++# define SIZE_STRUCT_PAGE 36 + # define KDUMP_PHYS_LOAD 0 + # define CAN_REDUCE_CPUS 1 + # define PERCPU_KB 0 // TODO !!! +@@ -133,7 +133,7 @@ + # define KERNEL_INIT_KB MB(3) + # define INIT_KB MB(44) + # define INIT_NET_KB MB(4) +-# define SIZE_STRUCT_PAGE 56 ++# define SIZE_STRUCT_PAGE 64 + # define KDUMP_PHYS_LOAD 0 + # define CAN_REDUCE_CPUS 1 + # define PERCPU_KB 0 // TODO !!! +@@ -144,7 +144,7 @@ + # define KERNEL_INIT_KB MB(1) + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) +-# define SIZE_STRUCT_PAGE 56 ++# define SIZE_STRUCT_PAGE 64 + # define KDUMP_PHYS_LOAD 0 + # define CAN_REDUCE_CPUS 1 + # define PERCPU_KB 0 // TODO !!! +@@ -155,7 +155,7 @@ + # define KERNEL_INIT_KB MB(1) + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) +-# define SIZE_STRUCT_PAGE 32 ++# define SIZE_STRUCT_PAGE 36 + # define KDUMP_PHYS_LOAD 0 + # define CAN_REDUCE_CPUS 1 + # define PERCPU_KB 0 // TODO !!! diff --git a/kdump-calibrate-update-kernel-text-data-size.patch b/kdump-calibrate-update-kernel-text-data-size.patch new file mode 100644 index 0000000..a999f18 --- /dev/null +++ b/kdump-calibrate-update-kernel-text-data-size.patch @@ -0,0 +1,97 @@ +From: Petr Tesarik +Date: Thu, 8 Feb 2018 18:29:20 +0100 +Subject: calibrate: Update kernel text+data size +Upstream: merged +Git-commit: b7905e9aa93712e4fa25aec1213fa412318f0c7a + +Kernel size has (more than) doubled. This constant should be +configurable in fact... + +Signed-off-by: Petr Tesarik +--- + kdumptool/calibrate.cc | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +--- a/kdumptool/calibrate.cc ++++ b/kdumptool/calibrate.cc +@@ -59,7 +59,7 @@ + + #if defined(__x86_64__) + # define DEF_RESERVE_KB MB(128) +-# define KERNEL_KB MB(16) ++# define KERNEL_KB MB(32) + # define KERNEL_INIT_KB MB(5) + # define INIT_KB MB(34) + # define INIT_NET_KB MB(3) +@@ -70,7 +70,7 @@ + + #elif defined(__i386__) + # define DEF_RESERVE_KB MB(128) +-# define KERNEL_KB MB(14) ++# define KERNEL_KB MB(28) + # define KERNEL_INIT_KB MB(4) + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) +@@ -81,7 +81,7 @@ + + #elif defined(__powerpc64__) + # define DEF_RESERVE_KB MB(256) +-# define KERNEL_KB MB(16) ++# define KERNEL_KB MB(32) + # define KERNEL_INIT_KB MB(5) + # define INIT_KB MB(58) + # define INIT_NET_KB MB(4) +@@ -92,7 +92,7 @@ + + #elif defined(__powerpc__) + # define DEF_RESERVE_KB MB(128) +-# define KERNEL_KB MB(12) ++# define KERNEL_KB MB(24) + # define KERNEL_INIT_KB MB(5) + # define INIT_KB MB(34) + # define INIT_NET_KB MB(2) +@@ -103,7 +103,7 @@ + + #elif defined(__s390x__) + # define DEF_RESERVE_KB MB(128) +-# define KERNEL_KB MB(13) ++# define KERNEL_KB MB(26) + # define KERNEL_INIT_KB 512 + # define INIT_KB MB(34) + # define INIT_NET_KB MB(2) +@@ -116,7 +116,7 @@ + + #elif defined(__s390__) + # define DEF_RESERVE_KB MB(128) +-# define KERNEL_KB MB(12) ++# define KERNEL_KB MB(24) + # define KERNEL_INIT_KB 512 + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) +@@ -129,7 +129,7 @@ + + #elif defined(__ia64__) + # define DEF_RESERVE_KB MB(512) +-# define KERNEL_KB MB(32) ++# define KERNEL_KB MB(64) + # define KERNEL_INIT_KB MB(3) + # define INIT_KB MB(44) + # define INIT_NET_KB MB(4) +@@ -140,7 +140,7 @@ + + #elif defined(__aarch64__) + # define DEF_RESERVE_KB MB(128) +-# define KERNEL_KB MB(10) ++# define KERNEL_KB MB(26) + # define KERNEL_INIT_KB MB(1) + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) +@@ -151,7 +151,7 @@ + + #elif defined(__arm__) + # define DEF_RESERVE_KB MB(128) +-# define KERNEL_KB MB(12) ++# define KERNEL_KB MB(24) + # define KERNEL_INIT_KB MB(1) + # define INIT_KB MB(29) + # define INIT_NET_KB MB(2) diff --git a/kdump-calibrate-update-user-space-requirements.patch b/kdump-calibrate-update-user-space-requirements.patch new file mode 100644 index 0000000..fecc3bb --- /dev/null +++ b/kdump-calibrate-update-user-space-requirements.patch @@ -0,0 +1,44 @@ +From: Petr Tesarik +Date: Thu, 8 Feb 2018 18:59:55 +0100 +Subject: calibrate: Update user-space requirements +Upstream: merged +Git-commit: 9703485b83c13c3382ede24d92bef47ae3efe7af + +Userspace memory consumption has also increased. + +Signed-off-by: Petr Tesarik +--- + kdumptool/calibrate.cc | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +--- a/kdumptool/calibrate.cc ++++ b/kdumptool/calibrate.cc +@@ -213,20 +213,20 @@ static inline unsigned long s390x_align_ + #define DIRTY_RATIO 20 + + // Userspace base requirements: +-// systemd (PID 1) 3 M +-// haveged 4 M +-// journald 2 M ++// systemd (PID 1) 8 M ++// haveged 6 M ++// journald 5 M + // the journal itself 4 M +-// 10 * udevd 12 M ++// 10 * udevd 28 M + // kdumptool 4 M + // makedumpfile 1 M + // ------------------------- +-// TOTAL: 30 M +-#define USER_BASE_KB MB(30) ++// TOTAL: 56 M ++#define USER_BASE_KB MB(56) + + // Additional requirements when network is configured +-// dhclient 7 M +-#define USER_NET_KB MB(7) ++// dhclient 10 M ++#define USER_NET_KB MB(10) + + // Maximum size of the page bitmap + // 32 MiB is 32*1024*1024*8 = 268435456 bits diff --git a/kdump-fix-missing-index-of-kdump_Host.patch b/kdump-fix-missing-index-of-kdump_Host.patch new file mode 100644 index 0000000..3d09821 --- /dev/null +++ b/kdump-fix-missing-index-of-kdump_Host.patch @@ -0,0 +1,29 @@ +From: Lance Wang +Date: Mon, 4 Dec 2017 16:05:23 +0800 +Subject: Fix missing index of kdump_Host +References: bsc#1002617 +Upstream: merged +Git-commit: 3d0ba82b678f996dd78a8de7da043340efec7dcb + +Fix missing index of kdump_Host + +--- + init/setup-kdump.functions | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/init/setup-kdump.functions ++++ b/init/setup-kdump.functions +@@ -868,11 +868,11 @@ function kdump_modify_config() # + kdump_over_ssh=yes + if [ -z "$KDUMP_HOST_KEY" ] ; then + KDUMP_HOST_KEY=$( +- ssh-keygen -F "$kdump_Host" 2>/dev/null | \ ++ ssh-keygen -F "${kdump_Host[i]}" 2>/dev/null | \ + awk '/^[^#]/ { if (NF==3) { print $3; exit } }' + ) + fi +- ssh-keygen -F "$kdump_Host" 2> /dev/null \ ++ ssh-keygen -F "${kdump_Host[i]}" 2> /dev/null \ + >>"${dest}/kdump/.ssh/known_hosts" + fi + diff --git a/kdump-nsswitch.conf-filtering.patch b/kdump-nsswitch.conf-filtering.patch new file mode 100644 index 0000000..9e9770e --- /dev/null +++ b/kdump-nsswitch.conf-filtering.patch @@ -0,0 +1,38 @@ +From: Lance Wang +Date: Mon, 4 Dec 2017 16:14:06 +0800 +Subject: Copy /etc/hosts and /etc/nsswitch.conf in setup-kdump.functions +References: bsc#1048178,bsc#1002617 +Upstream: merged +Git-commit: c5b2ce7c303d19f3615607d9867a06ce0f0d7ae2 + +Only filter field hosts from /etc/nsswitch.conf to avoid ssh login failure. +It is better to copy files in kdump dracut module than via the cmdline +to dracut. +--- + init/mkdumprd | 3 --- + init/setup-kdump.functions | 2 ++ + 2 files changed, 2 insertions(+), 3 deletions(-) + +--- a/init/mkdumprd ++++ b/init/mkdumprd +@@ -142,9 +142,6 @@ function run_dracut() + # Make resolved variables visible to the dracut module + kdump_export_targets + +- # Include additional files in the kdump initial ram disk +- DRACUT_ARGS="$DRACUT_ARGS --install '/etc/hosts /etc/nsswitch.conf'" +- + DRACUT_ARGS="$DRACUT_ARGS --add 'kdump' $INITRD $KERNELVERSION" + echo "Regenerating kdump initrd ..." >&2 + eval "bash -$- $DRACUT $DRACUT_ARGS" +--- a/init/setup-kdump.functions ++++ b/init/setup-kdump.functions +@@ -859,6 +859,8 @@ function kdump_modify_config() # + KDUMP_SAVEDIR="${KDUMP_SAVEDIR}file://${kdump_Realpath[i]}" + elif [ "$protocol" != "srcfile" ] ; then + KDUMP_SAVEDIR="${KDUMP_SAVEDIR}${kdump_URL[i]}" ++ cp /etc/hosts "${dest}/etc" ++ grep '^hosts:' /etc/nsswitch.conf > "${dest}/etc/nsswitch.conf" + fi + + # diff --git a/kdump.changes b/kdump.changes index 259f649..18b39db 100644 --- a/kdump.changes +++ b/kdump.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Fri Feb 9 17:46:06 UTC 2018 - ptesarik@suse.com + +- kdump-nsswitch.conf-filtering.patch + +------------------------------------------------------------------- +Fri Feb 9 17:44:42 UTC 2018 - ptesarik@suse.com + +- kdump-fix-missing-index-of-kdump_Host.patch: Fix missing index of + kdump_Host (bsc#1002617). + +------------------------------------------------------------------- +Fri Feb 9 16:09:48 UTC 2018 - ptesarik@suse.com + +- kdump-bail-out-if-no-default-interface.patch: Bail out of + kdump_check_net if no default interface is found (bsc#1058202). + +------------------------------------------------------------------- +Thu Feb 8 18:38:43 UTC 2018 - ptesarik@suse.com + +- kdump-calibrate-adjust-sizeof-struct-page.patch: calibrate: + Adjust sizeof(struct page). +- kdump-calibrate-update-kernel-text-data-size.patch: calibrate: + Update kernel text+data size. +- kdump-calibrate-update-user-space-requirements.patch: calibrate: + Update user-space requirements. + ------------------------------------------------------------------- Fri Jan 26 13:03:47 UTC 2018 - ptesarik@suse.com diff --git a/kdump.spec b/kdump.spec index ccee5c4..07b28ba 100644 --- a/kdump.spec +++ b/kdump.spec @@ -79,6 +79,12 @@ Patch29: %{name}-fillupdir-fixes.patch Patch30: %{name}-kdump_echo-and-kdump_logger-helpers.patch Patch31: %{name}-try-both-kexec_load-and-kexec_file_load.patch Patch32: %{name}-fix-m_threads-missing-initialization.patch +Patch33: %{name}-calibrate-adjust-sizeof-struct-page.patch +Patch34: %{name}-calibrate-update-kernel-text-data-size.patch +Patch35: %{name}-calibrate-update-user-space-requirements.patch +Patch36: %{name}-bail-out-if-no-default-interface.patch +Patch37: %{name}-fix-missing-index-of-kdump_Host.patch +Patch38: %{name}-nsswitch.conf-filtering.patch BuildRequires: asciidoc BuildRequires: cmake BuildRequires: gcc-c++ @@ -173,6 +179,12 @@ cp %{S:1} tests/data/ %patch30 -p1 %patch31 -p1 %patch32 -p1 +%patch33 -p1 +%patch34 -p1 +%patch35 -p1 +%patch36 -p1 +%patch37 -p1 +%patch38 -p1 %build export CFLAGS="%{optflags}"