Commit Graph

548 Commits

Author SHA1 Message Date
Bhupesh Sharma 3001788f4c Add aarch64 specific kdump.sysconfig and use 'nr_cpus' instead of 'maxcpus'
'maxcpus' setting normally don't work on several kdump enabled systems
due to a known udev issue.

Currently the fedora kdump configuration is set as the following on the
aarch64 systems:

 # cat /etc/sysconfig/kdump
<..snip..>
  # This variable lets us append arguments to the current kdump
  # commandline after processed by KDUMP_COMMANDLINE_REMOVE
  # KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 reset_devices"
<..snip..>

Since the 'maxcpus' setting doesn't limit the number of SMP CPUs,
so the kdump kernel still boots with all CPUs available on the system.
For e.g on the qualcomm amberwing its 46 CPUs:

  # lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              46
On-line CPU(s) list: 0-45
Thread(s) per core:  1
Core(s) per socket:  46
Socket(s):           1
NUMA node(s):        1
Vendor ID:           Qualcomm
Model:               1
Model name:          Falkor
Stepping:            0x0
CPU max MHz:         2600.0000
CPU min MHz:         600.0000
BogoMIPS:            40.00
L1d cache:           32K
L1i cache:           64K
L2 cache:            512K
L3 cache:            58880K
NUMA node0 CPU(s):   0-45
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid asimdrdm

This causes the memory consumption in the kdump kernel to swell up and
we can end up having OOM issues in the kdump kernel boot.

Whereas if we use 'nr_cpus=1' in the bootargs, the number of SMP CPUs in
the kdump kernel get limited to 1.

The 'swiotlb=noforce' setting in bootargs provide us extra guarding, to
ensure the crash kernel size requirements do not swell on systems
which support swiotlb.

With the above settings, crashkernel boots properly (without OOM) on all
the aarch64 boards I could test on - qualcomm amberwings, hp-moonshots
and hpe-apache (thunderx2) for crash dump saving on local disk.

Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
Acked-by: Pingfan Liu <piliu@redhat.com>
2019-05-29 17:04:20 +08:00
Kairui Song 8af28759ec Release 2.0.19-2
Signed-off-by: Kairui Song <kasong@redhat.com>
2019-05-20 17:08:28 +08:00
Pingfan Liu a585f981bd kexec.rules: create dedicated udev rules for ppc64
On powerpc, after hot add cpu and trigger crash on the hot-added cpu, the
kdump kernel hangs after "I'm in purgatory".

The current udev rules expects the dtb to be rebuit on cpu add/remove event.
But since powerpc does not follow the standard cpu hot add framework, it
only ejects online/offline event to user space when cpu is hot
added/removed, instead of add/remove event.  Pingfan tried fixing that but
it didn't please the maintainer as it breaks some old userspace tools.

Due to the failure of dtb's rebuilding, KDump kernel fails to get the
'boot_cpuid' and eventually fails to boot [see early_init_dt_scan_cpus() in
arch/powerpc/kernel/prom.c file] if system crashes on hot-added CPU.

Work around it by changing udev rules on powerpc to onlne/offline.

As for offline message, it is even useless on powerpc, and can be dropped.
See the explain: On powerpc, /sys/devices/system/cpu/cpuX nodes are present
for all "possible", irrespective of whether a CPU is hot-added/removed.
crash_notes are already built for all /sys/devices/system/cpu/cpuX nodes and
these nodes are present for all "possible" CPUs
(online/offline/could-be-hot-removed/could-be-hot-added)

Signed-off-by: Pingfan Liu <piliu@redhat.com>
Acked-by: Kairui Song <kasong@redhat.com>
2019-05-06 16:22:28 +08:00
Kairui Song 24f9b31080 Release 2.0.19-1
Rebase to latest kexec-tools upstream and remove backport patch.

Signed-off-by: Kairui Song <kasong@redhat.com>
2019-03-22 17:06:27 +08:00
Kairui Song ace66284ab Update eppic to latest snapshot
Also don't override LDFLAGS when building eppic lib, this ensure
hardening won't get overrided.

Signed-off-by: Kairui Song <kasong@redhat.com>
2019-03-21 11:19:41 +08:00
Kairui Song be6200f044 Release 2.0.18-5
Signed-off-by: Kairui Song <kasong@redhat.com>
2019-02-22 17:11:27 +08:00
Kairui Song 97890ecbac Update eppic to latest upstream snapshot
eppic project have moved to github, update to latest upstream snapshot,
change source link and tar file naming style to fit github's URL format.

This fix the O0 warning reported by annocheck and passes all distro package
flag checking.

Signed-off-by: Kairui Song <kasong@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2019-02-22 17:09:07 +08:00
Kairui Song 2fc7312546 Enable building with hardening flags
Backport the patches required to make the hardening build flags work with
kexec-tools and makedumpfile, and enabld hardening flags in spec file.
This will make the pacakge pass all warnings for kexec and makedumpfile
reported by annocheck.

Didn't find any issue with basic tests with kexec and makedumpfile.

Signed-off-by: Kairui Song <kasong@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2019-02-22 17:09:07 +08:00
Fedora Release Engineering b5736e4663 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 05:20:38 +00:00
Igor Gnatenko 95e9a62674 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:10 +01:00
Kairui Song 7f9dd45688 Release 2.0.18-3
Signed-off-by: Kairui Song <kasong@redhat.com>
2019-01-22 18:08:05 +08:00
Kairui Song 9c2dc28713 Release 2.0.18-2
Signed-off-by: Kairui Song <kasong@redhat.com>
2018-12-07 01:35:01 +08:00
Kairui Song fca27c3a44 Update makedumpfile to 1.6.5
Signed-off-by: Kairui Song <kasong@redhat.com>
2018-12-07 01:33:47 +08:00
Markus Linnala 65807d9855 As /etc/kdump.conf timestamp is updated do not compare it when doing rpm --verify 2018-11-13 16:23:57 +02:00
Kairui Song 435cc06cee Release 2.0.18-1
(Also add missing change log for 2.0.17-12)

Signed-off-by: Kairui Song <kasong@redhat.com>
2018-11-06 00:33:29 +08:00
Kairui Song 0c609b0a37 Release 2.0.17-12
Signed-off-by: Kairui Song <kasong@redhat.com>
2018-11-01 22:55:02 +08:00
Kairui Song 1c97aee728 Throttle kdump reload request triggered by udev event
Previously, kdump will restart / reload for many times on hotplug
event, especially memory hotplug events. Hotplugged memory may
generate many udev event as memory are managed and hotplugged in
small chunks by the kernel.

This results in unnecessary system workload and an actually longer
delay of kdump reload and the hotplug event, as udev will either
get blocked or kdumpctl will be waiting for other triggered operation.

To fix this, introduce a kdump-udev-throttler as an agent which will
be called by udev and merge concurrent kdump restart requests. Tested
with a Hyper-V VM which is failing due to udev timeout previously,
no new issues found.

Signed-off-by: Kairui Song <kasong@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2018-11-01 22:33:17 +08:00
Kairui Song 80357ee9b4 Release 2.0.17-11
Signed-off-by: Kairui Song <kasong@redhat.com>
2018-10-15 15:29:01 +08:00
Kairui Song 9b6e312447 Enable dracut squash module
In dracut-049, a new squash module is introduced, it can reduce the
memory usage of kdump initramfs in the capture kernel, this helps a lot
on lowering the risk of OOM failure.

Tested with latest rawhide with NFS, SSH and local dump.

Signed-off-by: Kairui Song <kasong@redhat.com>
2018-10-15 15:01:31 +08:00
Kairui Song 67e5c8d226 Release 2.0.17-10
Signed-off-by: Kairui Song <kasong@redhat.com>
2018-08-22 16:31:18 +08:00
Bhupesh Sharma 00da17176d kexec: fix for "Unhandled rela relocation: R_X86_64_PLT32" error
Resolves: bz1619122
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1619122

This patch fixes the "Unhandled rela relocation: R_X86_64_PLT32" error
that we are seeing with Fedora 29 (and newer kernels > 4.18) which
trying to run kexec/kdump on x86_64 machines.

The patch is being discussed upstream and has been ACK'ed by Baoquan and
myself (see <https://www.spinics.net/lists/kexec/msg21255.html>) and I
have also tested the same on Fedora 29/rawhide x86_64 machine as well:

Before the patch:
----------------
[root@hp-bl480c-01 ~]# kdumpctl restart
  kexec: unloaded kdump kernel
  Stopping kdump: [OK]
  Unhandled rela relocation: R_X86_64_PLT32
  kexec: failed to load kdump kernel
  Starting kdump: [FAILED]

After the patch:
---------------
[root@hp-bl480c-01 ~]# kdumpctl restart
  kexec: unloaded kdump kernel
  Stopping kdump: [OK]
  kexec: loaded kdump kernel
  Starting kdump: [OK]

Suggested Upstream Fix:

    In response to a change in binutils, commit b21ebf2fb4c
    (x86: Treat R_X86_64_PLT32 as R_X86_64_PC32) was applied to
    the linux kernel during the 4.16 development cycle and has
    since been backported to earlier stable kernel series. The
    change results in the failure message in $SUBJECT when
    rebooting via kexec.

    Fix this by replicating the change in kexec.

    Signed-off-by: Chris Clayton <chris2553@googlemail.com>

Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
Acked-by: Kairui Song <kasong@redhat.com>
2018-08-22 15:48:43 +08:00
Kairui Song e9f3823082 Release 2.0.17-9 2018-08-07 17:35:38 +08:00
Kairui Song 25b19d3627 Remove kdump-anaconda subpackage
Kdump anaconda has been included as a subpackage for a long time, which
is not a good practice, as the anaconda plugin should be built as
noarch and it does not belong to kexec-tools. We have created a new
package 'kdump-anaconda-addon', so remove it here.

The release version should be bumped later so that kdump-anaconda-addon
could mark previous versions as obsoleted.

Signed-off-by: Kairui Song <kasong@redhat.com>
2018-08-07 17:22:01 +08:00
Dave Young 3b8642c280 Release 2.0.17-8 2018-07-26 20:31:44 +08:00
Dave Young 9c7fea7ff7 Fix armv7hl build failure
armv7hl build failed because no makedumpfile* built but the latest commit
tries to install them.

Exclude armv7hl in the code chunk.

Signed-off-by: Dave Young <dyoung@redhat.com>
2018-07-26 20:19:08 +08:00
Dave Young d319cbbb6d Release 2.0.17-7
Signed-off-by: Dave Young <dyoung@redhat.com>
2018-07-26 19:54:11 +08:00
Dave Young 3e065ac92e Remove koji build workaround patch since koji build works without the patch now
Signed-off-by: Dave Young <dyoung@redhat.com>
2018-07-26 19:51:25 +08:00
Bhupesh Sharma bb6dd93d7a kexec-tools.spec: Drop kexec-tools-2.0.3-disable-kexec-test.patch
kexec_test seems to be no longer used upstream, so we had introduced
the 'kexec-tools-2.0.3-disable-kexec-test.patch' earlier to disable the
same from fedora kexec-tools as well.

However an earlier patch "Remove obsolete kdump tool" now explicitly
installs needed files via appropriate logic in .spec file, so we can
drop this patch now to reduce the maintenance burden.

Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
2018-07-26 19:51:25 +08:00
Bhupesh Sharma 0b9095c11b Remove obsolete kdump tool
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1441677
Testing: On x86_64 Fedora machine. After this patch kdump utility and related
        man page cannot be found on this machine:

        [root@tyan-gt24-09 ~]# which kdump
        /usr/bin/which: no kdump in
        (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

	[root@tyan-gt24-09 ~]# man kdump
        No manual entry for kdump

Update the fedora 'kexec-tools.spec' to not install the obsolete
kdump tool.

I have submitted an upstream patch to obsolete the kdump tool from
upstream kexec-tools (which has been accepted), but after an internal
discussion we decided not to backport the upstream 'kexec-tools' patch
(which does the same) for fedora, as we would prefer to manage the
changes directly in the .spec file itself.

Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
2018-07-26 19:51:04 +08:00
Fedora Release Engineering 3de202cfdb - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 07:00:01 +00:00
Dave Young 5350d31f56 Release 2.0.17-5 2018-07-09 12:48:20 +08:00
Dave Young 9913d44d9e Update makedumpfile 1.6.4 2018-07-09 12:45:31 +08:00
Pingfan Liu 6832be14f2 dracut-module-setup.sh: pass ip=either6 param for ipv6
Kdump always use _proto=dhcp for both ipv4 and ipv6.  But for ipv6
the dhcp address assignment is not like ipv4, there are different ways
for it, stateless and stateful, see below document:
https://fedoraproject.org/wiki/IPv6Guide

In case stateless, kernel can do the address assignment, dracut use
_proto=auto6;  for stateful case, dracut use _proto=dhcp6.
But it is hard to decide whether stateless or stateful takes effect,
hence, dracut introduces ip=either6 option, which can try both of these
method automatically for us. For detail, refer to dracut:
commit 67354ee 40network: introduce ip=either6 option

We do not see bug reports before because for the most auto6 cases
kernel assign ip address before dhclient, kdump just happened to work.

Signed-off-by: Pingfan Liu <piliu@redhat.com>
2018-07-09 12:43:28 +08:00
Dave Young e4a27dde51 Resolves: bz1594827
Fix installation error for kdump anaconda addon.
2018-06-27 15:09:58 +08:00
Dave Young 0dad02e4bb Release 2.0.17-3 2018-05-30 10:50:36 +08:00
Lianbo Jiang 1704064885 Add early kdump support in initramfs.
Kdump service starts too late, so early crashes will have no chance
to get kdump kernel booting, this will cause crash information to be
lost. It is necessary to add a dracut module in order to load crash
kernel and initramfs as early as possible. You can provide "rd.early
kdump" in grub commandline to enable, then the early kdump will load
those files like the normal kdump, which is disabled by default.

For the normal kdump service, it can check whether the early kdump
has loaded the crash kernel and initramfs. It has no conflict with
the early kdump.

If you rebuild the new initramfs for early kdump, the new initramfs
size will become large, because it will put the vmlinuz and kdump
initramfs into the new initramfs.

In addition, early kdump doesn't support fadump.

Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
Reviewed-by: Kazuhito Hagio <khagio@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2018-05-29 10:19:19 +08:00
Dave Young a95fcea412 Release 2.0.17-2
Pull in makedumpfile 1.6.3
2018-04-28 14:41:25 +08:00
Dave Young 62999dab42 Add missing changelog in spec 2018-04-28 14:30:58 +08:00
Dave Young 6e25286a97 Release 2.0.17-1
Pull upstream 2.0.17
2018-04-26 13:19:12 +08:00
Dave Young 98cc66a34d Release 2.0.16-6 2018-04-08 17:03:04 +08:00
Igor Gnatenko 4d1e8aadc8
Escape macros in %changelog
Reference: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/Y2ZUKK2B7T2IKXPMODNF6HB2O5T5TS6H/
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-09 09:04:52 +01:00
Dave Young 13107c8084 Fix wrong changelog date 2018-02-07 12:26:19 +08:00
Dave Young 0ee2dc96a5 Release 2.0.16-4
-update anaconda addon migrate with Anaconda changes.
2018-02-07 11:29:16 +08:00
Dave Young 84311089a5 Release 2.0.16-3
Workaround a build failure (rhbz1520805)
2017-12-08 11:44:14 +08:00
Dave Young 919a3299ee Workaround a koji build failure
with below CFLAGS, kexec-tools can not build:
--specs=/usr/lib/rpm/redhat/redhat-annobin-cc1

segfault happened while strip the purgatory:

gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fno-strict-aliasing -Wall -Wstrict-prototypes -fno-zero-initialized-in-bss -mcmodel=large -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -mcmodel=large -Wl,--no-undefined -nostartfiles -nostdlib -nodefaultlibs -e purgatory_start -r -Wl,-Map=purgatory/purgatory.map -o purgatory/purgatory.ro.sym purgatory/purgatory.o purgatory/printf.o purgatory/string.o purgatory/arch/x86_64/entry64-32.o purgatory/arch/x86_64/entry64.o purgatory/arch/x86_64/setup-x86_64.o purgatory/arch/x86_64/stack.o purgatory/arch/x86_64/purgatory-x86_64.o purgatory/arch/i386/entry32-16.o purgatory/arch/i386/entry32-16-debug.o purgatory/arch/i386/crashdump_backup.o purgatory/arch/i386/console-x86.o purgatory/arch/i386/vga.o purgatory/arch/i386/pic.o purgatory/sha256.o
strip --strip-debug -o purgatory/purgatory.ro purgatory/purgatory.ro.sym
make: *** [purgatory/Makefile:69: purgatory/purgatory.ro] Segmentation fault (core dumped)

koji build link:
https://kojipkgs.fedoraproject.org//work/tasks/6067/23536067/build.log

Reported rhbz1520805, a binutils bug is pending to be fixed,
Will revert this once binutils bug is fixed and usable in koji build system.

Signed-off-by: Dave Young <dyoung@redhat.com>
2017-12-08 11:42:30 +08:00
Dave Young 5604e2efb4 Release 2.0.16-2
Signed-off-by: Dave Young <dyoung@redhat.com>
2017-12-04 12:54:01 +08:00
Dave Young bdd2ac6b93 Release 2.0.16-1
Signed-off-by: Dave Young <dyoung@redhat.com>
2017-11-21 12:54:35 +08:00
Dave Young a2d284eea8 Release 2.0.15-15 2017-11-09 13:46:34 +08:00
Dave Young 823c962ff1 Release 2.0.15-14 2017-10-11 09:59:00 +08:00
Dave Young 4594c9830d Release 2.0.15-13 2017-09-06 15:48:35 +08:00