Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

manifest: add kexec-tools for kdump #708

Merged
merged 1 commit into from
Oct 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions manifest-lock.x86_64.json
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,9 @@
"dracut-network": {
"evra": "050-61.git20200529.fc32.x86_64"
},
"dracut-squash": {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It uses dracut's built-in support for putting files in a squashfs.

"evra": "050-61.git20200529.fc32.x86_64"
},
"e2fsprogs": {
"evra": "1.45.5-3.fc32.x86_64"
},
Expand All @@ -252,6 +255,9 @@
"elfutils-libs": {
"evra": "0.181-1.fc32.x86_64"
},
"ethtool": {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only reason this appears to be needed is to handle bonding and teaming: https://src.fedoraproject.org/rpms/kexec-tools/blob/master/f/dracut-module-setup.sh#_189, which is unfortunate. I think we have code which also deals with those, so maybe we can submit a patch to drop that dep.

"evra": "2:5.9-1.fc32.x86_64"
},
"expat": {
"evra": "2.2.8-2.fc32.x86_64"
},
Expand Down Expand Up @@ -453,6 +459,9 @@
"kernel-modules": {
"evra": "5.8.15-201.fc32.x86_64"
},
"kexec-tools": {
"evra": "2.0.20-17.fc32.x86_64"
},
"keyutils": {
"evra": "1.6-4.fc32.x86_64"
},
Expand Down Expand Up @@ -1026,12 +1035,18 @@
"slirp4netns": {
"evra": "1.1.4-1.fc32.x86_64"
},
"snappy": {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For compressing dump with snappy. Dynamically linked.

"evra": "1.1.8-2.fc32.x86_64"
},
"socat": {
"evra": "1.7.3.4-2.fc32.x86_64"
},
"sqlite-libs": {
"evra": "3.33.0-2.fc32.x86_64"
},
"squashfs-tools": {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It uses dracut's built-in support for putting files in a squashfs.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right but why does it do that? What's the squashfs image? I am not finding docs for this; the main hit I see so far is:

grep -ri squash /usr/lib/dracut/modules.d/99kdumpbase/
/usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh:    is_squash_available() {
/usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh:        for kmodule in squashfs overlay loop; do
/usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh:    if is_squash_available && ! is_fadump_capable; then
/usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh:        _dep="$_dep squash"
/usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh:        dwarning "Required modules to build a squashed kdump image is missing!"

but that doesn't help.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll admit I only actually looked over the dracut code for this to get a sense of why it pulls it in. What I gathered is that it puts the meat of the initramfs files in a squashfs to save space.

OK, some dist-git sleuthing led me to https://src.fedoraproject.org/rpms/kexec-tools/c/9b6e3124477212b8321392b2f365beddd7881e22?branch=master and dracutdevs/dracut@095e1f3, which more or less confirms this. The squashfs is part of the initrd, and dracut mounts it early on and things carry on transparently.

From https://src.fedoraproject.org/rpms/kexec-tools/c/4a44eee472745f8dd43b18815851bd668b7497da?branch=master though, it clearly can work fine without it. So we could try to see if the maintainers are interested in making it a weak dep. I'm not sure if I'd block inclusion into RHCOS for this though.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And of course, there's the question of whether we actually want to opt out of those RAM savings. From dracutdevs/dracut@095e1f3, it seems like not a lot, though somewhat significant in proportion to the total amount of RAM to reserve. If that PR gets merged, we can ship without it as a first cut at least.

"evra": "4.3-25.fc32.x86_64"
},
"ssh-key-dir": {
"evra": "0.1.2-2.fc32.x86_64"
},
Expand Down
2 changes: 2 additions & 0 deletions manifests/fedora-coreos-base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,8 @@ packages:
# zram-generator (but not zram-generator-defaults) for F33 change
# https://github.com/coreos/fedora-coreos-tracker/issues/509
- zram-generator
# kdump (https://github.com/coreos/fedora-coreos-tracker/issues/622)
- kexec-tools

# This thing is crying out to be pulled into systemd, but that hasn't happened
# yet. Also we may want to add to rpm-ostree something like arch negation;
Expand Down