Commit Graph

1357 Commits

Author SHA1 Message Date
Pratyush Anand
d1424f3f66 mkdumprd: move to_dev_name() & get_persistent_dev() to kdump-lib.sh
to_dev_name() and get_persistent_dev() can be used by function in kdumpctl.
Therefore moving them to kdump-lib.sh.

No functional changes.

Signed-off-by: Pratyush Anand <panand@redhat.com>
Acked-by: Xunlei Pang <xlpang@redhat.com>
Acked-by: Baoquan He <xlpang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2016-05-12 09:53:51 +08:00
Pratyush Anand
28e8c4b5ac kdumpctl: Move file modification check logic in check_system_modified()
Relevant kdump files are also part of system. Therefore, moving logic of
file modification checking in check_system_modified() function now.

No functional changes.

Signed-off-by: Pratyush Anand <panand@redhat.com>
Acked-by: Xunlei Pang <xlpang@redhat.com>
Acked-by: Baoquan He <xlpang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2016-05-12 09:53:24 +08:00
Pratyush Anand
e4143381b1 kdumpctl: force rebuild in case of dynamic system modification
There could be some dynamic system modification, which may affect kdump
kernel boot process. In such situation initramfs must be rebuilt on the
basis of changes.
Since most of these checking methods will use information from
TARGET_INITRD, therefore check its existence in common code.

Signed-off-by: Pratyush Anand <panand@redhat.com>
Acked-by: Xunlei Pang <xlpang@redhat.com>
Acked-by: Baoquan He <xlpang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2016-05-12 09:53:04 +08:00
Pratyush Anand
87964860b6 mkdumprd: do not lookup in by-uuid dirs for raw device's persistent name
raw devices are not mounted and also does not need to contain any
filesystem. So they may have UUIDs(when formatted) and may not have UUIDs
when raw. Therefore, do not look for persistent names by-uuid for raw
devices.

Signed-off-by: Pratyush Anand <panand@redhat.com>
Suggested-by: Dave Young <dyoung@redhat.com>
Acked-by: Xunlei Pang <xlpang@redhat.com>
Acked-by: Baoquan He <xlpang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2016-05-12 09:51:19 +08:00
Pratyush Anand
8d44a2853d kdumpctl: Do not rebuild initramfs when $KDUMP_BOOTDIR is read only
When $KDUMP_BOOTDIR is RO then kexec-tools should not try rebuild initramfs
even when conditions for rebuild is met.

Signed-off-by: Pratyush Anand <panand@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2016-05-11 14:35:20 +08:00
Dave Young
698fc10076 Release 2.0.12-3
Update kdump anaconda addon to adapt to blivet-2.0 API
See below pull request:
https://github.com/daveyoung/kdump-anaconda-addon/pull/8

Signed-off-by: Dave Young <dyoung@redhat.com>
2016-03-29 17:14:19 +08:00
Dave Young
fcc71ad6ef Release 2.0.12-2 2016-03-25 10:36:09 +08:00
Dave Young
59c1aab531 ppc64le: fix kexec hang due to ppc64 elf abi breakage
Fedora bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1310495

kexec kernel hangs in ppc64le test. It is caused by kexec does not support
abi v2 properly.

Backport upstream patches below fixes the issue:
There is no code conflicts.

commit 3debb8cf3272216119cb2e59a4963ce3c18fe8e3
Author: Alan Modra <amodra@gmail.com>
Date:   Fri Feb 26 18:06:15 2016 +1100

    Properly align powerpc64 .toc

    gcc leaves .toc byte aligned, relying on the linker to align the section.

        * kexec/arch/ppc64/kexec-elf-rel-ppc64.c (machine_verify_elf_rel):
        Fudge alignment of .toc section.

    Signed-off-by: Alan Modra <amodra@gmail.com>
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Tested-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Simon Horman <horms@verge.net.au>

commit 1e423dc297d10eb7ff25c829d2856ef12fc81d77
Author: Anton Blanchard <anton@samba.org>
Date:   Fri Feb 26 18:04:16 2016 +1100

    ppc64: purgatory: Handle local symbols in ELF ABIv2

    The PowerPC64 ELF ABIv2 has the concept of global and local symbols
    and information on this is encoded in sym->st_other. When doing a
    R_PPC64_REL24 branch we want to hit the local entry point, so adjust
    it as necessary.

    Signed-off-by: Anton Blanchard <anton@samba.org>
    Tested-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Simon Horman <horms@verge.net.au>

commit 4a2ae3a39c64dc43e9d094be9541253234ff4822
Author: Anton Blanchard <anton@samba.org>
Date:   Fri Feb 26 18:03:11 2016 +1100

    Pass struct mem_sym into machine_apply_elf_rel()

    On PowerPC64 ABIv2 we need to look at the symbol to determine
    if it has a local entry point. Pass struct mem_sym into
    machine_apply_elf_rel() so we can.

    Signed-off-by: Anton Blanchard <anton@samba.org>
    Tested-by: Dave Young <dyoung@redhat.com>
    Signed-off-by: Simon Horman <horms@verge.net.au>

Signed-off-by: Dave Young <dyoung@redhat.com>
Acked-by: Xunlei Pang <xlpang@redhat.com>
2016-03-25 10:35:44 +08:00
Dave Young
962f4d9d16 Release 2.0.12-1
Rebase to upstream 2.0.12
2016-03-22 17:00:57 +08:00
Dennis Gilmore
1ee26c817f - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 01:56:18 +00:00
Dave Young
5bb315a9a4 Release 2.0.11-3 2015-12-11 15:24:54 +08:00
Dave Young
b253434819 use "systemctl reboot -f" for reboot action
In latest rawhide kdump kernel reboot hangs because systemd reports a
conflict when kdump calls reboot during booting. Need further investigation
about the new systemd behavior.

Here is the error message copied from kdump session:
[snip]
kdump: saving vmcore complete
Failed to start reboot.target: Transaction contains conflicting jobs 'stop' and 'start' for shutdown.target. Probably contradicting requirement dependencies configured.
Failed to talk to init daemon.
[FAILED] Failed to start Kdump Vmcore Save Service.
[snip]

We previouly use "reboot -f" but later we changed to reboot because we want
systemd to take care of the shutdown path, mainly for umount filesystems.

Change back to "reboot -f" works but we still need umount by ourselves.
During my tests with "reboot -f" I get below dirty ext2 filesystem:

[root@localhost ~]# fsck /dev/vdb
fsck from util-linux 2.27
e2fsck 1.42.13 (17-May-2015)
/dev/vdb was not cleanly unmounted, check forced.

Actually "reboot -f" equals to "systemctl reboot -f -f"

systemctl manpage says "-f" and "-f -f" means different behavior:
When use -f with reboot, will execute reboot without shutting down all units.
However all processes will be killed forcibly and all file systems are
unmounted or remounted read-only. If -f is specified twice, will reboot
immediately without terminating any processes or unmounting any file systems.

Thus change to use "systemctl reboot -f" for our reboot actions. It can fix
the problem and at the same time it can ensure filesystems are umounted before
rebooting.

OTOH, a systemd changes cause the breakage, it may be a system service new
design, Later I can dig into systemd changes see which commit cause the
breakage.

Signed-off-by: Dave Young <dyoung@redhat.com
Signed-off-by: Dangyi Liu <dliu@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
2015-12-11 15:20:54 +08:00
Dave Young
53564adc08 Remove kernel param "quiet" from kdump kernel cmdline
"quiet" will disable most of log messages. For debugging kdump
kernel purpose it is better to remove quiet in 2nd kernel so that
we always see kernel messages.

Signed-off-by: Dangyi Liu <dliu@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-12-11 15:18:31 +08:00
Dangyi Liu
3ec336c06c kdump.sysconfig: add KDUMP_COMMANDLINE_REMOVE
Use KDUMP_COMMANDLINE_REMOVE config instead of hardcode them in
kdumpctl, which makes it possible system admins decide what params to
remove such as "quiet" or other debug flags.

This patch also adds backward compatibility even if an old config is
used. It will behave the same as the old version.

Signed-off-by: Dangyi Liu <dliu@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-12-11 15:16:35 +08:00
dyoung@redhat.com
386c6411d2 Add missing prefixes in default sysconfig file
For arches we do not exlictly support, kdumpctl will fail with errors because
kernel can not be found. It is caused by there's no proper KDUMP_IMG prefix
so kernel image can not be found.

Kexec/kdump functionality may simply work, so let's add those prefix in
default sysconfig file thus one can test and use kexec/kdump in Fedora.

Signed-off-by: Dave Young <dyoung@redhat.com>
Reviewed-by: Pratyush Anand <panand@redhat.com>
2015-12-11 15:13:18 +08:00
Dave Young
49b222871a fix bogus date in changelog 2015-11-19 11:30:36 +08:00
Dave Young
d94d7f3ccc Release 2.0.11-2
Rebase makedumpfile 1.5.9

Signed-off-by: Dave Young <dyoung@redhat.com>
2015-11-19 11:23:05 +08:00
Dave Young
1b6121d5d3 Release 2.0.11-1 2015-11-09 10:37:30 +08:00
Dave Young
ee540e62a3 Release 2.0.10-9 2015-10-19 10:39:22 +08:00
Zhou Wenjian
cbe5943f9e kexec-kdump-howto:Add introduction of parallel dumping
Add descriptions of parallel dumping and how to use it.

Signed-off-by: Zhou Wenjian <zhouwj-fnst@cn.fujitsu.com>
Reviewed-by: Pratyush Anand <panand@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-10-19 10:37:08 +08:00
Minfei Huang
7f44d3ee37 Remove duplicate prefix path ${initdir}
dracut will place the config in the random path during generating the
initramfs. Remove the duplicate prefix path ${initdir}.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-10-19 10:36:37 +08:00
Dave Young
77951bf1d3 Release 2.0.10-8 2015-09-08 14:03:57 +08:00
Dave Young
f85fd280f3 Update kdump anaconda addon
Pulled below commit from Martin Kolman:

commit 0c68135bd14788bc6b3f7f901eb2d2cb8ba76f79
Author: Martin Kolman <martin.kolman@gmail.com>
Date:   Mon Sep 7 14:46:42 2015 +0200

    Don't put options after the %end of the %addon section

    Otherwise the installation describing kickstart will not be valid.
    This can resulting in various issues such, as Initial Setup refusing
    to run due to invalid kickstart file.
2015-09-08 14:02:19 +08:00
Dangyi Liu
088c2b2a14 kdumpctl: Remove slub_debug from cmdline
slub_debug parameter enables debug for slub, making each object take
more memory than normal. During a typical kdump, "slub_debug=FZPU" will
cost about 33MB additional memory. If users really want to enable this
parameter, they should specify it in KDUMP_COMMANDLINE_APPEND.

Signed-off-by: Dangyi Liu <dliu@redhat.com>
2015-08-24 10:04:52 +08:00
Dave Young
0c5372e80b Release 2.0.10-7 2015-08-19 14:18:57 +08:00
Dangyi Liu
37dc7c286c kdumpctl: Add man page for kdumpctl
kdumpctl is useful sometimes when users want to debug or setup ssh key
authentication. So add a man page for it.

Signed-off-by: Dangyi Liu <dliu@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
Reviewed-by: Pratyush Anand <panand@redhat.com>
2015-08-19 14:15:34 +08:00
Baoquan He
54747162a3 Release 2.0.10-6 2015-08-13 15:55:08 +08:00
Dangyi Liu
97c5d890b2 mkdumprd: Remove ifcfg from dracut's modules
Ifcfg depends on network module, which is quite large and useless
when using a local dump target. Also we don't really need ifcfg to
setup network interfaces. So just remove it.

On fedora22, the uncompressed dumprd would decrease about 20MB when
using a local dump target. A regression testing is also conducted with
targets of nfs and ssh.

Signed-off-by: Dangyi Liu <dliu@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
2015-08-13 15:52:55 +08:00
Minfei Huang
b57fd97ba5 module-setup: Choose the first matched gateway in kdump_static_ip
The system may have multiple default route entry. Following is an
example to show the details.

 # ip -6 route list dev eth0
2620:52:0:1040::/64  proto kernel  metric 256  expires 2591978sec fe80::/64  proto kernel  metric 256
default via fe80:52:0:1040::1  proto ra  metric 1024  expires 1778sec hoplimit 64
default via fe80:52:0:1040::2  proto ra  metric 1024  expires 1778sec hoplimit 64

Choose the first matched entry.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
2015-08-13 15:51:30 +08:00
Minfei Huang
e8e5a6a2d1 module-setup: Add permanent option to detect static ip address or not
Dracut will die in the situation that dracut detects to use dhcp to
setup ip address, but kdump passes the ip address to it.

In commit 7ea50dc7a3, we start to use
option permanent to get the ip address in kdump_static_ip. If the
network is setuped by static, we will get the ip address, otherwise
getting none.

In commit c994a80698 which it used to
support ipv6 protocol, I miss the option permanent.

This patch is not a fixing patch, just pulls back something to make
kdump work as original.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-08-13 15:49:53 +08:00
Dave Young
4a505f62a9 Release 2.0.10-5 2015-08-04 13:32:53 +08:00
Dave Young
579e1725d0 Update kdump addon
Moving isys.total_memory() call to class method to avoid installation hangs.
It is possible because totoal_memory will call log.info which need log lock.
but some loging function need import gettext module which need import lock.
Thus deadlock could happen.

Moved isys.total_memory callback to class method instead.
2015-08-04 13:28:53 +08:00
Dave Young
87d25d54e5 Release 2.0.10-4 2015-07-28 12:47:50 +08:00
Minfei Huang
ea13e7ab98 dracut-module-setup: Enhance ISCSI to support ipv6 protocol
Due to the different format between ipv4 and ipv6 protocol, quote the
ipv6 address with bracket "[]" to make dracut notify.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-07-28 12:42:17 +08:00
Minfei Huang
2ba32c6ccf dracut-module-setup: Prefer ipv4 address as the hostname address
Kdump will parse the hostname to get the ip address, if hostname is
specfied in /etc/kdump.conf. We will get the ip address(ipv4 or ipv6,
according to the DNS server) by using "getent hosts".

For now, it is more reasonable that we shall get all of the ip
address(including ipv4 and ipv6 address) which point to the hostname by
using "getent ahosts". And we will prefer to use the ipv4 address, if
both ipv4 and ipv6 address work.

The reason why we choose the ipv4 as preferred address is to solve the
issue kdump will fail to connect the hostname machine(parsed as ipv6
address), due to the DNS server is ipv4 address in 2nd kernel.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-07-28 12:42:17 +08:00
Minfei Huang
c994a80698 dracut-module-setup: Support the network for ipv6 protocol
Previously, Kdump will save route to setup the network route in the 2nd
kernel for ipv4 protocol. To support ipv6 protocol, make Kdump fetch
correct nexthop, since the ruturning format is different.

In order to enhance kdump to support ipv6, support the static ip for
ipv6 protocol, which ipv4 has supported already.

Introduce a new lib function get_remote_host which is used to factor out
the ip address(ipv4 or ipv6) and hostname in /etc/kdump.conf.

Introduce a new lib function is_ipv6_address which is used to make sure
whether the passed ip address is ipv4 or ipv6.

Introduce a new lib function is_hostname which is used to confirm
whether the passed parameter is hostname, not the ip address.

Introduce a new function get_ip_route_field which is used to factor out
the specified string in ip route info.

Due to the different format between ipv4 and ipv6 protocol, quote the
ipv6 address with bracket "[]" to make dracut notify.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-07-28 12:42:17 +08:00
Minfei Huang
edec8a8266 dracut-kdump: Use the first filtered ip address as dump directory
For now, Kdump will use ipv4 address as dump directory, and it works, if
ipv4 is enabled.

Once Kdump start to support ipv6 protocol, we may only setup the ipv6
address exclusively. Modify the code to make Kdump work in either ipv4
and ipv6 protocol.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-07-28 12:42:17 +08:00
Minfei Huang
51cfe4f81c dracut-module-setup: Apply the manual DNS to the 2nd kernel
Now Kdump will ingore the DNS config in /etc/resolv.conf, when it
generates the initram. And most users do not concern about this issue,
because they never use deployment tools to configure machines
environment, like puppet.

It is more convenient to add the DNS config to /etc/resolv.conf for
people who use deployment tools to configure machines concurrently.

Signed-off-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
2015-07-28 12:41:45 +08:00
Dave Young
a75b17ef91 watchdog: load iTCO_wdt early in cmdline hook
We have added *wdt in kdump initramfs, but to improve it more we can do below
(1) load wdt drivers as early as possible so that we can save time before wdt timeout
    some drivers like iTCO_wdt can stop the watchdog while driver initialization, so
    it can give more chance for kdump.
    It can save time especially in case some drivers take long time to init, like
    some storage and networking cards.
(2) add only used wdt drivers in kdump initrd instead of add *wdt
    wdt driver layer need a change so that we can get the proper driver name from
    /dev/watchdog. Question to this is are we sure 1st kernel use /dev/watchdog
    instead of /dev/watchdog1? It need more investigation.
(3) in case a driver can not stop (nowayout?) during module_init, we need load it
    as early as possible and kick the watchdog. Likely we can use systemd default
    watchdog functionality.

This patch is about to address (1), and specially for iTCO_wdt, we only tested
iTCO_wdt, thus in this patch only add this driver, need investigate on other drivers
later to see if other drivers works in this way.

Signed-off-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Baoquan He <bhe@redhat.com>
Acked-by: Minfei Huang <mhuang@redhat.com>
2015-07-28 12:35:54 +08:00
Dave Young
970cb6124f Release 2.0.10-3 2015-07-23 10:56:36 +08:00
Dave Young
67b4f6ba91 Update kdump addon
Updated kdump addon icon again, Máirín Duffy designed a better icon,
it shows a little blip in a heart beat with a magnifying class examining
it, it uses components of the gnome-symbolic-theme so it would match the
other icons in the hub.
2015-07-23 10:51:47 +08:00
Dave Young
70a4c96523 Revert "save exact route to remote target"
This reverts commit a68bb200f8.

Conflicts:
	dracut-module-setup.sh

Manually remove get_route function
2015-07-13 17:17:32 +08:00
Dave Young
6b7df5b0b3 Revert "module-setup: Use proper ethernet device name in 2nd kernel"
This reverts commit 08809fb0c7.
2015-07-13 17:15:46 +08:00
Dave Young
5380af665d Release 2.0.10-2
Update kdump addon icon
2015-07-13 11:08:55 +08:00
Dave Young
35dd19e611 Release 2.0.10-1
Rebase kexec-tools to 2.0.10
Drop unused 2.0.7 patches in git tree
2015-07-09 09:38:30 +08:00
Dave Young
2b76613fc9 Rebase eppic library to upstream 050615
Upstream tree: https://code.google.com/p/eppic/
There's below changes vs previous version:
1) fix compile issues with gdb 7.6
2) fix compile warnings
3) Support for ARM64

Tested by Pratyush.

Signed-off-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Pratyush Anand <panand@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
2015-07-09 09:29:10 +08:00
Qiao Zhao
daccbbe3af Enhance kdump.conf "default" parameters check.
According to man page, default option can only use reboot, halt, poweroff,
shell and dump_to_rootfs as parameter.
Currently, if configuration kdump.conf is:
------
path /var/crash
core_collector makedumpfile -nosuchfile
default no_such_option
------
kdump service still can be started.

Adding function "check_default_config" to kdumpctl file can solve
this problem.

I have tested this patch in my test machine(Fedora-21).

v1 --> v2
Baoquan He point "check_default_config" function should be call in
"check_config" function.
Wang Li point if kdump.conf donesn't configure the "default" option,
kdump serivce will fail.

Signed-off-by: Qiao Zhao <qzhao@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
Acked-by: Minfei Huang <mhuang@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
2015-07-07 16:11:19 +08:00
Dave Young
e9ee834802 Release 2.0.9-2
Koji build add extra cflags automaticlly, this cause wrong kexec purgatory
Pre Peter Robinson's suggestion, add below in spec file:
%undefine _hardened_build

Also removes extra -FPIC ldflags since there's no such options in upstream makedumpfile.

Resolves: bz1236456

Signed-off-by: Dave Young <dyoung@redhat.com>
2015-07-02 10:27:48 +08:00
Dave Young
d74d13c425 Release 2.0.9-1
Rebase kexec-tools 2.0.9
2015-06-26 10:15:57 +08:00
Dave Young
8219fcf725 Rebase makedumpfile 1.5.8 2015-06-26 10:14:52 +08:00