Hello community,

here is the log from the commit of package kdump for openSUSE:Factory checked 
in at 2014-02-15 08:05:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-01-13 
10:53:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdump.new/kdump.changes 2014-02-15 
08:05:31.000000000 +0100
@@ -1,0 +2,22 @@
+Fri Feb 14 16:14:45 UTC 2014 - [email protected]
+
+- kdump-0.8.7-nr_cpus.patch: Use nr_cpus instead of maxcpus with
+  recent kernels. (FATE#315725).
+- kdump-0.8.7-bsp.patch: Add disable_cpu_apicid for BSP to the
+  commandline (bnc#861981).
+- kdump-0.8.7-calibrate.patch: Implement kdump memory calibration
+  (FATE#315241).
+
+
+-------------------------------------------------------------------
+Fri Feb 14 12:15:14 UTC 2014 - [email protected]
+
+- Added patch kdumptool_find_kernel.patch: kdumptool argument order was
+  wrong in debug mode 
+
+-------------------------------------------------------------------
+Fri Jan 24 02:26:20 UTC 2014 - [email protected]
+
+- Removed s390x from the list of excluded architectures.
+
+-------------------------------------------------------------------

New:
----
  kdump-0.8.7-bsp.patch
  kdump-0.8.7-calibrate.patch
  kdump-0.8.7-nr_cpus.patch
  kdumptool_find_kernel.patch

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

Other differences:
------------------
++++++ kdump.spec ++++++
--- /var/tmp/diff_new_pack.YWBbPl/_old  2014-02-15 08:05:31.000000000 +0100
+++ /var/tmp/diff_new_pack.YWBbPl/_new  2014-02-15 08:05:31.000000000 +0100
@@ -47,6 +47,10 @@
 Source:         %{name}-%{version}.tar.bz2
 Source2:        %{name}-%{version}-rpmlintrc
 Source3:        kdump.service
+Patch1:         kdumptool_find_kernel.patch
+Patch2:         %{name}-%{version}-nr_cpus.patch
+Patch3:         %{name}-%{version}-bsp.patch
+Patch4:         %{name}-%{version}-calibrate.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # rename "kdump-helpers" (10.3) -> "kdump" (11.0/SP2)
 Provides:       kdump-helpers = %{version}
@@ -59,7 +63,7 @@
 %endif
 Recommends:     nfs-client cifs-utils
 PreReq:         coreutils sed
-ExcludeArch:    s390 s390x ppc
+ExcludeArch:    s390 ppc
 
 %description
 kdump is a package that includes several scripts for kdump, including
@@ -84,6 +88,11 @@
 
 %prep
 %setup
+%patch1 -p0
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
 %build
 export CFLAGS="%optflags"
 export CXXFLAGS="%optflags"

++++++ kdump-0.8.7-bsp.patch ++++++
From: Petr Tesarik <[email protected]>
Subject: Add disable_cpu_apicid for BSP to the commandline
References: bnc#861981
Patch-mainline: v0.8.8

Since the BSP cannot be brought up in the kdump environment, and there is no
reliable way of getting the APIC ID of an offlined CPU, it must be figured
out by the primary kernel and passed as a command-line option.

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

---
 NEWS                    |    2 ++
 init/rc.kdump.functions |   13 +++++++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,7 @@
 0.8.8
 -----
+  * Add disable_cpu_apicid parameter to the command line on x86 to prevent
+    bringing up the BSP in the kdump kernel.
   * Use nr_cpus instead of maxcpus with recent kernels.
 
 0.8.7
--- a/init/rc.kdump.functions
+++ b/init/rc.kdump.functions
@@ -103,9 +103,18 @@ function build_kdump_commandline()
                 < /proc/cmdline)
         # Use deadline for saving the memory footprint
         commandline="$commandline elevator=deadline sysrq=yes reset_devices"
-        case `uname -i` in
+        local arch=$(uname -i)
+        case "$arch" in
         i?86|x86_64|ia64)
-            commandline="$commandline irqpoll maxcpus=${KDUMP_CPUS:-1}"
+            local nr_cpus=$(cpus_param "$kdump_kernel")
+            commandline="$commandline irqpoll ${nr_cpus}=${KDUMP_CPUS:-1}"
+            if [ "$arch" = "x86_64" -o -z "${arch#i?86}" ]; then
+                local boot_apicid=$(
+                    awk -F':[ \t]' '/^initial apicid[ \t]*:/ {print $2; exit}' 
\
+                    /proc/cpuinfo)
+                test -n "$boot_apicid" &&
+                    commandline="$commandline disable_cpu_apicid=$boot_apicid"
+            fi
             ;;
        s390*)
            commandline="$commandline zfcp.allow_lun_scan=0"
++++++ kdump-0.8.7-calibrate.patch ++++++
From: Petr Tesarik <[email protected]>
Subject: Implement kdump memory calibration
References: FATE#315241
Patch-mainline: v0.8.8

This command is used by yast-kdump to find out how much RAM should
be reserved for the crash kernel.

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

---
 NEWS                     |    1 
 kdumptool/CMakeLists.txt |    2 +
 kdumptool/calibrate.cc   |   78 +++++++++++++++++++++++++++++++++++++++++++++++
 kdumptool/calibrate.h    |   60 ++++++++++++++++++++++++++++++++++++
 kdumptool/main.cc        |    2 +
 5 files changed, 143 insertions(+)

--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@
 0.8.8
 -----
+  * New command: calibrate
   * Add disable_cpu_apicid parameter to the command line on x86 to prevent
     bringing up the BSP in the kdump kernel.
   * Use nr_cpus instead of maxcpus with recent kernels.
--- a/kdumptool/CMakeLists.txt
+++ b/kdumptool/CMakeLists.txt
@@ -86,6 +86,8 @@ SET(COMMON_SRC
     quotedstring.h
     multipath.cc
     multipath.h
+    calibrate.cc
+    calibrate.h
 )
 
 add_library(common STATIC ${COMMON_SRC})
--- /dev/null
+++ b/kdumptool/calibrate.cc
@@ -0,0 +1,78 @@
+/*
+ * (c) 2014, Petr Tesarik <[email protected]>, SUSE LINUX Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+#include <iostream>
+
+#include "subcommand.h"
+#include "debug.h"
+#include "calibrate.h"
+
+// Default reservation size depends on architecture
+#if defined(__x86_64__)
+# define DEF_RESERVE_MB 128
+#elif defined(__i386__)
+# define DEF_RESERVE_MB 128
+#elif defined(__powerpc64__)
+# define DEF_RESERVE_MB 256
+#elif defined(__powerpc__)
+# define DEF_RESERVE_MB 128
+#elif defined(__s390x__)
+# define DEF_RESERVE_MB 128
+#elif defined(__s390__)
+# define DEF_RESERVE_MB 128
+#elif defined(__ia64__)
+# define DEF_RESERVE_MB 512
+#elif defined(__aarch64__)
+# define DEF_RESERVE_MB 128
+#elif defined(__arm__)
+# define DEF_RESERVE_MB 128
+#else
+# error "No default crashkernel reservation for your architecture!"
+#endif
+
+using std::cout;
+using std::endl;
+
+//{{{ Calibrate 
----------------------------------------------------------------
+
+// 
-----------------------------------------------------------------------------
+Calibrate::Calibrate()
+    throw ()
+{}
+
+// 
-----------------------------------------------------------------------------
+const char *Calibrate::getName() const
+    throw ()
+{
+    return "calibrate";
+}
+
+// 
-----------------------------------------------------------------------------
+void Calibrate::execute()
+    throw (KError)
+{
+    unsigned long required;
+    Debug::debug()->trace("Calibrate::execute()");
+
+    required = DEF_RESERVE_MB;
+    cout << required << endl;
+}
+
+//}}}
+
+// vim: set sw=4 ts=4 fdm=marker et: :collapseFolds=1:
--- /dev/null
+++ b/kdumptool/calibrate.h
@@ -0,0 +1,60 @@
+/*
+ * (c) 2014, Petr Tesarik <[email protected]>, SUSE LINUX Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+#ifndef CALIBRATE_H
+#define CALIBRATE_H
+
+#include "subcommand.h"
+
+//{{{ Calibrate 
----------------------------------------------------------------
+
+/**
+ * Subcommand to calibrate reserved memory
+ */
+class Calibrate : public Subcommand {
+
+    public:
+        /**
+         * Creates a new Calibrate object.
+         */
+        Calibrate()
+        throw ();
+
+    public:
+        /**
+         * Returns the name of the subcommand (calibrate).
+         */
+        const char *getName() const
+        throw ();
+
+        /**
+         * Executes the function.
+         *
+         * @throw KError on any error. No exception indicates success.
+         */
+        void execute()
+        throw (KError);
+
+    private:
+};
+
+//}}}
+
+#endif /* CALIBRATE_H */
+
+// vim: set sw=4 ts=4 fdm=marker et: :collapseFolds=1:
--- a/kdumptool/main.cc
+++ b/kdumptool/main.cc
@@ -38,6 +38,7 @@
 #include "read_ikconfig.h"
 #include "read_vmcoreinfo.h"
 #include "savedump.h"
+#include "calibrate.h"
 
 using std::cerr;
 using std::cout;
@@ -61,6 +62,7 @@ int main(int argc, char *argv[])
         kdt.addSubcommand(new ReadIKConfig);
         kdt.addSubcommand(new ReadVmcoreinfo);
         kdt.addSubcommand(new SaveDump);
+        kdt.addSubcommand(new Calibrate);
 
         kdt.parseCommandline(argc, argv);
         kdt.readConfiguration();
++++++ kdump-0.8.7-nr_cpus.patch ++++++
From: Petr Tesarik <[email protected]>
Subject: Use nr_cpus instead of maxcpus with recent kernels.
References: FATE#315725
Patch-mainline: v0.8.8

Linux 2.6.34+ has nr_cpus, which limits the number of possible CPUs
(unlike maxcpus, which only limits the number of online CPUs at boot).

For compatibility, use maxcpus with older kernels.

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

---
 NEWS                    |    4 ++++
 init/rc.kdump.functions |   18 +++++++++++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+0.8.8
+-----
+  * Use nr_cpus instead of maxcpus with recent kernels.
+
 0.8.7
 -----
   * Change libelf interface to elfutils (libelf1)
--- a/init/rc.kdump.functions
+++ b/init/rc.kdump.functions
@@ -75,9 +75,25 @@ function remove_from_commandline()
 }
 
 #
+# Get the name of kernel parameter to limit CPUs
+# Linux 2.6.34+ has nr_cpus, older versions must use maxcpus
+function cpus_param()
+{
+    local version=$(get_kernel_version "$1")
+    version="${version%%-*}"
+    local verhex=$(IFS=. ; set -- $version ; printf "0x%02x%02x%02x" $1 $2 $3)
+    if [ $(( $verhex )) -ge $(( 0x020622 )) ] ; then
+       echo nr_cpus
+    else
+       echo maxcpus
+    fi
+}
+
+#
 # Builds the kdump command line from KDUMP_COMMANDLINE.
 function build_kdump_commandline()
 {
+    local kdump_kernel="$1"
     local commandline="$KDUMP_COMMANDLINE"
 
     if [ -z "$commandline" ]; then
@@ -168,7 +184,7 @@ function load_kdump_kexec()
         rc_exit
     fi
 
-    local kdump_commandline=$(build_kdump_commandline)
+    local kdump_commandline=$(build_kdump_commandline "$kdump_kernel")
     local kexec_options=$(build_kexec_options "$kdump_kernel")
 
     KEXEC_CALL="$KEXEC -p $kdump_kernel --append=\"$kdump_commandline\""
++++++ kdumptool_find_kernel.patch ++++++
--- init/rc.kdump.functions.old 2014-01-13 07:35:41.000000000 +0100
+++ init/rc.kdump.functions     2014-02-14 12:46:28.375308000 +0100
@@ -261,7 +261,7 @@
         find_kernel_args="-D"
     fi
 
-    local output=$(kdumptool find_kernel $find_kernel_args)
+    local output=$(kdumptool $find_kernel_args find_kernel)
     if [ $? -ne 0 ] ; then
         rc_status -s
         rc_failed 6
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to