Hello community,

here is the log from the commit of package kdump for openSUSE:Factory checked 
in at 2014-09-20 07:26:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdump (Old)
 and      /work/SRC/openSUSE:Factory/.kdump.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdump"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdump/kdump.changes      2014-09-10 
17:01:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdump.new/kdump.changes 2014-09-20 
07:26:45.000000000 +0200
@@ -1,0 +2,11 @@
+Thu Sep 18 15:33:21 UTC 2014 - [email protected]
+
+- kdump-remove-root-and-resume.patch: Remove root= and resume= from
+  the kdump kernel command line (bnc#883883).
+- kdump-systemd-support.patch: Dracut-systemd support (bnc#883883).
+- kdump-calibrate-systemd-runtime.patch: Calibrate: update
+  user-space run-time requirements for systemd (bnc#883883).
+- kdump-calibrate-systemd-initramfs.patch: Calibrate: update the
+  initramfs size (bnc#883883).
+
+-------------------------------------------------------------------

New:
----
  kdump-calibrate-systemd-initramfs.patch
  kdump-calibrate-systemd-runtime.patch
  kdump-remove-root-and-resume.patch
  kdump-systemd-support.patch

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

Other differences:
------------------
++++++ kdump.spec ++++++
--- /var/tmp/diff_new_pack.87eg2f/_old  2014-09-20 07:26:46.000000000 +0200
+++ /var/tmp/diff_new_pack.87eg2f/_new  2014-09-20 07:26:46.000000000 +0200
@@ -68,6 +68,10 @@
 Patch1:         %{name}-use-fstab-device.patch
 Patch2:         %{name}-count-framebuffer.patch
 Patch3:         %{name}-count-const-slabs.patch
+Patch4:         %{name}-remove-root-and-resume.patch
+Patch5:         %{name}-systemd-support.patch
+Patch6:         %{name}-calibrate-systemd-runtime.patch
+Patch7:         %{name}-calibrate-systemd-initramfs.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # rename "kdump-helpers" (10.3) -> "kdump" (11.0/SP2)
 Provides:       kdump-helpers = %{version}
@@ -109,6 +113,10 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
 
 %build
 export CFLAGS="%optflags"

++++++ kdump-calibrate-systemd-initramfs.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Thu Sep 18 17:03:46 2014 +0200
Subject: Calibrate: update the initramfs size
References: bnc#883883
Patch-mainline: v0.8.16
Git-commit: b2ab003f54da780cc1ca8ebfe47f39ddd936b34a

Yes, systemd also needs some space in the initramfs, causing approx.
20% increase. Let's account for it...

Signed-off-by: Petr Tesarik <[email protected]>

---
 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 INIT_KB               MB(28)
+# define INIT_KB               MB(34)
 # define INIT_NET_KB           MB(3)
 # define SIZE_STRUCT_PAGE      56
 # define KDUMP_PHYS_LOAD       0
@@ -69,7 +69,7 @@
 #elif defined(__i386__)
 # define DEF_RESERVE_KB                MB(128)
 # define KERNEL_KB             MB(14)
-# define INIT_KB               MB(24)
+# define INIT_KB               MB(29)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      32
 # define KDUMP_PHYS_LOAD       0
@@ -79,7 +79,7 @@
 #elif defined(__powerpc64__)
 # define DEF_RESERVE_KB                MB(256)
 # define KERNEL_KB             MB(16)
-# define INIT_KB               MB(48)
+# define INIT_KB               MB(58)
 # define INIT_NET_KB           MB(4)
 # define SIZE_STRUCT_PAGE      64
 # define KDUMP_PHYS_LOAD       MB(128)
@@ -89,7 +89,7 @@
 #elif defined(__powerpc__)
 # define DEF_RESERVE_KB                MB(128)
 # define KERNEL_KB             MB(12)
-# define INIT_KB               MB(28)
+# define INIT_KB               MB(34)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      32
 # define KDUMP_PHYS_LOAD       MB(128)
@@ -99,7 +99,7 @@
 #elif defined(__s390x__)
 # define DEF_RESERVE_KB                MB(128)
 # define KERNEL_KB             MB(13)
-# define INIT_KB               MB(28)
+# define INIT_KB               MB(34)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      56
 # define KDUMP_PHYS_LOAD       0
@@ -111,7 +111,7 @@
 #elif defined(__s390__)
 # define DEF_RESERVE_KB                MB(128)
 # define KERNEL_KB             MB(12)
-# define INIT_KB               MB(24)
+# define INIT_KB               MB(29)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      32
 # define KDUMP_PHYS_LOAD       0
@@ -123,7 +123,7 @@
 #elif defined(__ia64__)
 # define DEF_RESERVE_KB                MB(512)
 # define KERNEL_KB             MB(32)
-# define INIT_KB               MB(36)
+# define INIT_KB               MB(44)
 # define INIT_NET_KB           MB(4)
 # define SIZE_STRUCT_PAGE      56
 # define KDUMP_PHYS_LOAD       0
@@ -133,7 +133,7 @@
 #elif defined(__aarch64__)
 # define DEF_RESERVE_KB                MB(128)
 # define KERNEL_KB             MB(10)
-# define INIT_KB               MB(24)
+# define INIT_KB               MB(29)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      56
 # define KDUMP_PHYS_LOAD       0
@@ -143,7 +143,7 @@
 #elif defined(__arm__)
 # define DEF_RESERVE_KB                MB(128)
 # define KERNEL_KB             MB(12)
-# define INIT_KB               MB(24)
+# define INIT_KB               MB(29)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      32
 # define KDUMP_PHYS_LOAD       0
++++++ kdump-calibrate-systemd-runtime.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Thu Sep 18 17:01:08 2014 +0200
Subject: Calibrate: update user-space run-time requirements for systemd
References: bnc#883883
Patch-mainline: v0.8.16
Git-commit: 04bc6fa91a88e7ff91acb6d2924774bf28463c6b

If systemd is included, journald is also started, so the estimate
must add:

1. the process
2. the journal, which is stored in ramfs

I would love to reduce the size of the journal, but systemd hard-codes
the minimum to 4M, see src/journal/journal-file.c:

/* This is the minimum journal file size */
#define JOURNAL_FILE_SIZE_MIN (4ULL*1024ULL*1024ULL)           /* 4 MiB */

Strictly speaking, journald is allowed to use at least twice as much,
but let's hope it doesn't in practice.

Signed-off-by: Petr Tesarik <[email protected]>

---
 kdumptool/calibrate.cc |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

--- a/kdumptool/calibrate.cc
+++ b/kdumptool/calibrate.cc
@@ -203,13 +203,15 @@ static inline unsigned long s390x_align_
 #define DIRTY_RATIO            20
 
 // Userspace base requirements:
-//   bash (PID 1)       3 M
+//   systemd (PID 1)    3 M
+//   journald           2 M
+//   the journal itself         4 M
 //   10 * udevd                12 M
 //   kdumptool          4 M
 //   makedumpfile       1 M
 // -------------------------
-// TOTAL:              20 M
-#define USER_BASE_KB   MB(20)
+// TOTAL:              26 M
+#define USER_BASE_KB   MB(26)
 
 // Additional requirements when network is configured
 //   dhclient           7 M
++++++ kdump-remove-root-and-resume.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Thu Sep 18 10:15:59 2014 +0200
Subject: Remove root= and resume= from the kdump kernel command line
References: bnc#883883
Patch-mainline: v0.8.16
Git-commit: 8caaba657548133d476b2a13fd5abb68314927c7

Resume from hibernation should never be even attempted in kdump.
If using dracut, the module is even omitted from the initrd, so
passing the command line option only consumes command line space.

The default root device is not needed either, because all required
filesystems are handled by the mount dracut module. In fact, if the
root filesystem is also mounted, it may be mounted twice.

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/rc.kdump.functions |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/init/rc.kdump.functions
+++ b/init/rc.kdump.functions
@@ -108,7 +108,7 @@ function build_kdump_commandline()
         local nr_cpus=$(cpus_param "$kdump_kernel")
         commandline=$(
             remove_from_commandline \
-                
'crashkernel|splash|mem|BOOT_IMAGE|showopts|zfcp\.allow_lun_scan|hugepages|acpi_no_memhotplug|cgroup_disable'
 \
+                
'root|resume|crashkernel|splash|mem|BOOT_IMAGE|showopts|zfcp\.allow_lun_scan|hugepages|acpi_no_memhotplug|cgroup_disable'
 \
                 < /proc/cmdline)
         # Use deadline for saving the memory footprint
         commandline="$commandline elevator=deadline sysrq=yes reset_devices 
acpi_no_memhotplug cgroup_disable=memory"
++++++ kdump-systemd-support.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Thu Sep 18 15:40:37 2014 +0200
Subject: Dracut-systemd support
References: bnc#883883
Patch-mainline: v0.8.16
Git-commit: 9940475e501273ddac4a13fa2f4284b4121415de
    
Adjust the dracut module to work with the systemd module.

A new service is added to the initrd. I could not use a pre-pivot
hook, because dracut-pre-pivot.service does not send the output
to the terminal, so dump progress was not visible.

It is also necessary to avoid mounting the root filesystem. All
filesystems needed by kdump are mounted under /kdump and set up
with the --mount dracut option.

The system root mount can be generated in two ways:

a. by initrd-fstab-generator (if "root=" is passed on the kernel
   command line)

b. by dracut-rootfs-generator (if the root option is stored in
   /etc/cmdline.d/*)

The root= parameter is already removed from the command line, but
it is always saved to /etc/cmdline.d/95root-dev.conf if dracut is
called with --hostonly-cmdline. This is the default in SLES (cf.
/etc/dracut.conf.d/01-dist.conf) and it is required to get correct
configuration for many setups.

So, the only way to avoid mounting /sysroot is to remove the
appropriate systemd generator from the initrd.

Signed-off-by: Petr Tesarik <[email protected]>

diff --git a/init/CMakeLists.txt b/init/CMakeLists.txt
index 662197c..9cc8b71 100644
--- a/init/CMakeLists.txt
+++ b/init/CMakeLists.txt
@@ -79,4 +79,15 @@ INSTALL(
         WORLD_READ WORLD_EXECUTE
 )
 
+INSTALL(
+    FILES
+        ${CMAKE_CURRENT_SOURCE_DIR}/kdump-save.service
+    DESTINATION
+        /usr/lib/dracut/modules.d/99kdump
+    PERMISSIONS
+        OWNER_READ OWNER_WRITE
+        GROUP_READ
+        WORLD_READ
+)
+
 # vim: set sw=4 ts=4 et:
diff --git a/init/kdump-save.service b/init/kdump-save.service
new file mode 100644
index 0000000..ac527f4
--- /dev/null
+++ b/init/kdump-save.service
@@ -0,0 +1,31 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+# See systemd.special(7) for details
+
+[Unit]
+Description=save kernel crash dump
+Documentation=man:kdump(7)
+Wants=dracut-mount.service dracut-pre-pivot.service
+After=dracut-mount.service dracut-pre-pivot.service
+After=initrd.target
+Before=initrd-cleanup.service
+ConditionPathExists=/etc/initrd-release
+ConditionPathExists=/proc/vmcore
+
+[Service]
+Type=oneshot
+ExecStart=/lib/kdump/save_dump.sh
+StandardInput=tty
+StandardOutput=tty
+StandardError=tty
+KillMode=process
+RemainAfterExit=yes
+
+# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
+# terminates cleanly.
+KillSignal=SIGHUP
diff --git a/init/mkdumprd b/init/mkdumprd
index 334786f..bb818d2 100755
--- a/init/mkdumprd
+++ b/init/mkdumprd
@@ -122,7 +122,7 @@ function run_dracut()
 {
     local modules="kdump"
 
-    DRACUT_ARGS="--force --hostonly --omit 'systemd plymouth resume usrmount'"
+    DRACUT_ARGS="--force --hostonly --omit 'plymouth resume usrmount'"
     DRACUT_ARGS="$DRACUT_ARGS --compress='xz -0 --check=crc32'"
 
     # add mount points
diff --git a/init/module-setup.sh b/init/module-setup.sh
index 06f9775..690de38 100644
--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -18,8 +18,18 @@ install() {
 
     kdump_setup_files "$initdir" "${!host_fs_types[*]}"
 
-    inst_hook mount 30 "$moddir/mount-kdump.sh"
-    inst_hook pre-pivot 90 /lib/kdump/save_dump.sh
+    if dracut_module_included "systemd" ; then
+       rm -f 
"${initdir}/$systemdutildir"/system-generators/dracut-rootfs-generator
+       inst_simple /lib/kdump/save_dump.sh
+       inst_simple "$moddir/kdump-save.service" \
+           "$systemdsystemunitdir"/kdump-save.service
+       ln_r "$systemdsystemunitdir"/kdump-save.service \
+           "$systemdsystemunitdir"/initrd.target.wants/kdump-save.service
+    else
+       inst_hook mount 30 "$moddir/mount-kdump.sh"
+       inst_hook pre-pivot 90 /lib/kdump/save_dump.sh
+    fi
+
     inst_multiple makedumpfile makedumpfile-R.pl kdumptool \
        $KDUMP_REQUIRED_PROGRAMS
     inst_simple /etc/resolv.conf
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to