Add xen_scrub_pages=0 kernel option only if initramfs was rebuilt

Rebuild initramfs on package upgrade (already done for Debian
previously) and store 1 into /var/lib/qubes/initramfs-updated. Then,
only add xen_scrub_pages=0 kernel option if
/var/lib/qubes/initramfs-updated is there (with "1" or greater number).
This way, if initramfs rebuild doesn't happen for any reason,
xen_scrub_pages=0 will not be added.

Fixes 456fe99 "Disable scrubbing memory pages during initial balloon down"
QubesOS/qubes-issues#1963
This commit is contained in:
Marek Marczykowski-Górecki 2019-02-25 01:17:07 +01:00
parent b234b84bc5
commit 7d9fe8e39f
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724
3 changed files with 27 additions and 3 deletions

View File

@ -23,7 +23,11 @@ set -e
case "${1}" in case "${1}" in
configure) configure)
if [ -x /usr/sbin/update-initramfs ]; then if [ -x /usr/sbin/update-initramfs ]; then
update-initramfs -u if update-initramfs -u; then
# "milestone" initramfs update version:
# 1 - addition of xen scrub_pages enabling code
echo 1 > /var/lib/qubes/initramfs-updated
fi
fi fi
;; ;;

View File

@ -1,5 +1,8 @@
# add kernel options only in VM # add kernel options only in VM, and only if initramfs is updated already
if [ -r /usr/share/qubes/marker-vm ]; then # /var/lib/qubes/initramfs-updated contains "milestone" initramfs update version:
# 1 - addition of xen scrub_pages enabling code
if [ -r /usr/share/qubes/marker-vm ] &&
[ "$(cat /var/lib/qubes/initramfs-updated 2>/dev/null || echo 0)" -ge 1 ]; then
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX xen_scrub_pages=0" GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX xen_scrub_pages=0"
fi fi

View File

@ -76,5 +76,22 @@ if [ $1 -eq 0 ]; then
fi fi
fi fi
%posttrans
# Rebuild all initramfs images to include updated modules
if [ -r /usr/share/qubes/marker-vm ] && [ -x /usr/bin/dracut ]; then
ret=0
for img in /boot/initramfs-*.img; do
kver="${img#*initramfs-}"
kver="${kver%.img}"
dracut -f "$img" "$kver" || ret=$?
done
if [ "$ret" -eq 0 ]; then
# "milestone" initramfs update version:
# 1 - addition of xen scrub_pages enabling code
echo 1 > /var/lib/qubes/initramfs-updated
fi
fi
%changelog %changelog
@CHANGELOG@ @CHANGELOG@