Hello community, here is the log from the commit of package kexec-tools checked in at Wed Dec 20 12:32:27 CET 2006. -------- --- kexec-tools/kexec-tools.changes 2006-07-13 18:13:49.000000000 +0200 +++ /mounts/work_src_done/STABLE/kexec-tools/kexec-tools.changes 2006-12-20 11:06:57.000000000 +0100 @@ -1,0 +2,15 @@ +Wed Dec 20 10:59:26 CET 2006 - tiwai@suse.de + +- take kexec-tools-testing snapshot-20061219. + o ia64 support + o relocatable kernel support + o lots of cleanups/fixes +- fix manpage and help about -u option (#208710) +- ia64 kdump support (#214865, FATE#301433, FATE#301434) + o add boot argument "CRASH=1" to indicate the crash environment + (for kexec'ing with the same kernel) + o fix kdump init script for ia64, which has only vmlinuz and + uses the same kernel for kdump +- reduce boot options for kdump kernel (#223500) + +------------------------------------------------------------------- Old: ---- kexec-tools-1.101-kdump7.patch kexec-tools-1.101.tar.bz2 kexec-tools-configure-fix.diff kexec-tools-ia64-fix.diff kexec-tools-ppc64-rm-platform-prop-fix.patch kexec-tools-s390-fix.diff kexec-tools-x86-warning-fix.diff kexec-tools-x86_64-acpi-nvs-fix.patch kexec.8 ppc64-kdump-tools-ELF-header-fix.patch New: ---- kexec-tools-testing-20061219.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kexec-tools.spec ++++++ --- /var/tmp/diff_new_pack.xo3t11/_old 2006-12-20 12:32:05.000000000 +0100 +++ /var/tmp/diff_new_pack.xo3t11/_new 2006-12-20 12:32:05.000000000 +0100 @@ -11,28 +11,20 @@ # norootforbuild Name: kexec-tools -License: GPL +%define package_version testing-20061219 +License: GNU General Public License (GPL) Group: System/Kernel Requires: %insserv_prereq %fillup_prereq Autoreqprov: on Summary: Tools for fast kernel loading Version: 1.101 -Release: 38 -Source: %{name}-%{version}.tar.bz2 +Release: 59 +Source: %{name}-%{package_version}.tar.bz2 Source1: kdump Source2: sysconfig.kdump Source3: gdbinit.kdump Source4: gdb-kdump Source5: README.SUSE -Source6: kexec.8 -Patch: kexec-tools-1.101-kdump7.patch -Patch1: kexec-tools-configure-fix.diff -Patch2: kexec-tools-x86-warning-fix.diff -Patch3: kexec-tools-ia64-fix.diff -Patch4: kexec-tools-s390-fix.diff -Patch5: kexec-tools-ppc64-rm-platform-prop-fix.patch -Patch6: ppc64-kdump-tools-ELF-header-fix.patch -Patch7: kexec-tools-x86_64-acpi-nvs-fix.patch URL: http://www.xmission.com/~ebiederm/files/kexec/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -54,27 +46,19 @@ Tim Deegan <tjd21@cl.cam.ac.uk> %prep -%setup -q -%patch -p1 -%patch1 -%patch2 -%patch3 -%patch4 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 +%setup -q -n kexec-tools %{?suse_update_config -f} cp %{SOURCE5} . %build autoreconf -fi ./configure --prefix=/ --sbindir=/sbin --libdir=/%_lib -make +make CPPFLAGS="$RPM_OPT_FLAGS" %install make DESTDIR=$RPM_BUILD_ROOT install mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8 -install -c -m 0644 %{SOURCE6} $RPM_BUILD_ROOT%{_mandir}/man8 +install -c -m 0644 kexec/kexec.8 $RPM_BUILD_ROOT%{_mandir}/man8 mkdir -p $RPM_BUILD_ROOT/etc/init.d install -c -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d mkdir -p $RPM_BUILD_ROOT/sbin @@ -82,7 +66,12 @@ mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates install -c -m 0644 %{SOURCE2} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump %ifarch %ix86 x86_64 -sed -i 's@^\(KEXEC_OPTIONS="\)\(.*"[[:blank:]]*$\)@\1 --args-linux \2@' $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump +# add --args-linux kexec command line option as default +sed -i 's@^\(KEXEC_OPTIONS="\)\(.*"[[:blank:]]*$\)@\1--args-linux \2@' $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump +%endif +%ifarch ia64 +# empty string for kdump kernel version (to indicate the same kernel) +sed -i 's@^\(KDUMP_KERNELVER=\).*$@\1""@' $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.kdump %endif # install gdb helpers mkdir -p $RPM_BUILD_ROOT%{_datadir} @@ -112,12 +101,24 @@ %{_bindir}/* %{_datadir}/gdbinit.* %ifarch %ix86 x86_64 -/%_lib/kexec-tools +/%_lib/kexec-tools* %endif /etc/init.d/kdump /var/adm/fillup-templates/sysconfig.kdump %changelog -n kexec-tools +* Wed Dec 20 2006 - tiwai@suse.de +- take kexec-tools-testing snapshot-20061219. + o ia64 support + o relocatable kernel support + o lots of cleanups/fixes +- fix manpage and help about -u option (#208710) +- ia64 kdump support (#214865, FATE#301433, FATE#301434) + o add boot argument "CRASH=1" to indicate the crash environment + (for kexec'ing with the same kernel) + o fix kdump init script for ia64, which has only vmlinuz and + uses the same kernel for kdump +- reduce boot options for kdump kernel (#223500) * Thu Jul 13 2006 - tiwai@suse.de - fixed the calculation of required disk space in kdump init script (#192172) ++++++ README.SUSE ++++++ --- kexec-tools/README.SUSE 2006-07-13 18:09:20.000000000 +0200 +++ /mounts/work_src_done/STABLE/kexec-tools/README.SUSE 2006-12-20 10:58:21.000000000 +0100 @@ -3,9 +3,9 @@ Prerequisites ============= -Be sure that you have installed the kexec-tools rpm and the kernel_kdump -rpm. The version of the kernel_kdump rpm must match the version of the -running system kernel. +Be sure that you have installed the kexec-tools rpm. For x86, x86-64 +and ppc64, install kernel-kdump.rpm, too. The version of the +kernel-kdump rpm must match the version of the running system kernel. Overview @@ -61,7 +61,8 @@ An example of this boot loader option is "crashkernel=64M@16M". The 64M shows the reserved space for the Kdump recovery kernel, and the 16M is -the address of the reserved area. +the address of the reserved area. On ia64, the start offset is +calculated by the kernel, so @xxx offset is ignored. You can add this option either with the YaST boot loader module, or by manually editing the boot loader configuration file. @@ -70,6 +71,7 @@ i386: crashkernel=64M@16M x86_64: crashkernel=64M@16M +ia64: crashkernel=128M PPC64: crashkernel=128M@32M After setting the boot loader option, activate the Kdump init script, @@ -171,7 +173,8 @@ If you do not specify a version, then the init script will try to find a Kdump kernel with the same version number as the running kernel. Using the string "kdump" will default to the most recently installed Kdump -kernel. +kernel (suitable for x86, x86-64 and ppc64). For ia64, keep this +string empty to point the same running kernel. - KDUMP_COMMANDLINE ++++++ kdump ++++++ --- kexec-tools/kdump 2006-07-13 17:38:36.000000000 +0200 +++ /mounts/work_src_done/STABLE/kexec-tools/kdump 2006-12-20 10:58:21.000000000 +0100 @@ -93,6 +93,34 @@ rc_status -v } +# print the available kdump kernel path +# empty if no matching file is found +check_boot_kernel () +{ + local kstr + kstr="${BOOTDIR}/vmlinux-$1$2" + if [ -f $kstr ]; then + echo $kstr + return + fi + kstr="$kstr.gz" + if [ -f $kstr ]; then + echo $kstr + return + fi + case `uname -i` in + ia64) + # ia64 uses vmlinuz as of vmlinux.gz + kstr="${BOOTDIR}/vmlinuz-$1$2" + if [ -f $kstr ]; then + echo $kstr + return + fi + ;; + esac +} + + # Load the kdump kerel specified in /etc/sysconfig/kdump # If none is specified, try to load a kdump kernel with the same version # as the currently running kernel. @@ -100,23 +128,28 @@ { echo -n "Loading kdump " if [ -z "$KDUMP_KERNELVER" ]; then - kdump_kver=`uname -r | sed 's/-smp//g'` - kdump_kver="${kdump_kver}-kdump" + kdump_kver=`uname -r | sed -e's/-[^-]*$//g'` + kdump_kernel=`check_boot_kernel $kdump_kver -kdump` + if [ -n "$kdump_kernel" ]; then + kdump_kver="${kdump_kver}-kdump" + elif [ -z "$kdump_kernel" ]; then + kdump_kver=`uname -r` + kdump_kernel=`check_boot_kernel $kdump_kver` + fi else - kdump_kver=$KDUMP_KERNELVER + kdump_kver="$KDUMP_KERNELVER" + kdump_kernel=`check_boot_kernel $kdump_kver` fi - kdump_kernel="${BOOTDIR}/vmlinux-${kdump_kver}" - kdump_initrd="${BOOTDIR}/initrd-${kdump_kver}" - - if [ ! -f $kdump_kernel ]; then - echo -n ": No kdump kernel image found." - echo "Tried to locate ${kdump_kernel}" + if [ -z "$kdump_kernel" -o ! -f "$kdump_kernel" ]; then + echo -n ": No kdump kernel image found for kernel $kdump_kver." rc_status -s rc_failed 6 rc_exit fi + kdump_initrd="${BOOTDIR}/initrd-${kdump_kver}" + if [ ! -f $kdump_initrd ]; then echo -n ": No kdump initial ramdisk found." echo "Tried to locate ${kdump_initrd}" @@ -127,16 +160,19 @@ if [ -z "$KDUMP_COMMANDLINE" ]; then KDUMP_COMMANDLINE=`cat /proc/cmdline` - KDUMP_COMMANDLINE=`echo $KDUMP_COMMANDLINE | sed -e 's/crashkernel=[0-9]\+[mM]\(@[0-9]\+[Mm]\)\?//g' ` + KDUMP_COMMANDLINE=`echo $KDUMP_COMMANDLINE | \ + sed -e 's/crashkernel=[0-9]\+[mM]\(@[0-9]\+[Mm]\)\?//g' \ + -e 's/ *splash=[^ ]* / /g' \ + -e 's/ *showopts/ /g'` # Use deadline for saving the memory footprint - KDUMP_COMMANDLINE="$KDUMP_COMMANDLINE elevator=deadline" + KDUMP_COMMANDLINE="$KDUMP_COMMANDLINE elevator=deadline sysrq=1" case `uname -i` in i?86|x86_64) KDUMP_COMMANDLINE="$KDUMP_COMMANDLINE irqpoll" ;; esac fi - KDUMP_COMMANDLINE="sysrq=1 $KDUMP_COMMANDLINE" + KDUMP_COMMANDLINE="CRASH=1 $KDUMP_COMMANDLINE" if [ -n "$KDUMP_RUNLEVEL" ]; then case "$KDUMP_RUNLEVEL" in [1-5s]) @@ -158,9 +194,23 @@ rc_status -v } +# return success if running in a crash environemnt +is_crash_kernel () +{ + test -f /proc/vmcore || return 1 + # FIXME: any better way to detect crash environment? + test -n "$CRASH" && return 0 + case `uname -i` in + ia64) + # ia64 has no kdump kernel + return 1;; + esac + return 0 +} + case "$1" in start) - if [ -f /proc/vmcore ]; then + if is_crash_kernel; then if [ -n "$KDUMP_TRANSFER" ]; then $KDUMP_TRANSFER else @@ -178,7 +228,7 @@ stop) if [ ! -f /proc/vmcore ]; then echo -n "Unloading kdump" - $KEXEC -u + $KEXEC -p -u rc_status -v fi ;; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org