[systemd-devel] systemd hibernator generator does not function on default Fedora install

James Hogarth james.hogarth at gmail.com
Tue Apr 19 06:45:31 UTC 2016


On 19 Apr 2016 04:53, "Andrei Borzenkov" <arvidjaar at gmail.com> wrote:
>
> 19.04.2016 01:19, James Hogarth пишет:
> > Hi all,
> >
> > There's been some discussion today about the impact of
> > https://bugzilla.redhat.com/show_bug.cgi?id=1206936 and where the
problem
> > actually lies.
> >
> > The issue lies specifically with hibernate and affects all Fedora
systems
> > regardless of hardware (it's reproducible in a VM).
> >
> > The hibernate image gets written to swap correctly
> > but hibernate-resume-generator.c looks specifically for 'resume' in
> > /proc/cmdline to determine a) if any check shoudl even happen and b)
which
> > block device to check.
> >
> > When Fedora is installed anaconda does not write a resume= line
> > to GRUB_CMDLINE_LINUX in /etc/default/grub or to the default kernel
stanza
> > for grubby to later duplicate.
> >
> > Dracut cmdline module does produce a resume= line but it appears this
> > occurs too late for the generator to pick up.
> >
>
> dracut cmdline is internal to dracut, so external programs do not see it.
>

That would explain it, however it's somewhat confusing on the bug that
dracut was pointed to as a place for a fix and the requests for dracut
--print-cmdline if it had no affect.

> > The end result is that without manual intervention to add an appropriate
> > resume= line it's impossible to resume from hibernation on Fedora, and
the
> > critical battery behaviour (configured via /etc/Upower/Upower.conf and
> > visible in upower -d) is to HybridSleep.
> >
> > Is it feasible for systemd to have the generator pick a swap image
> > regardless of resume being present or not? If so the dracut cmdline
coming
> > later than the hibernate generator wouldn't be a problem.
> >
>
> Well, TBH the simplest solution is really to add resume= to kernel
> command line. Otherwise let dracut install own generator that does
> exactly the same when resume= is missing as real kernel parameter. In
> both cases I do not think it is something that needs to be implemented
> in systemd.

The generator and the actual resume is already in systemd and the anaconda
folks on the bug did not think it should be with them and that adding
resume= would not be the correct fix (of course that additionally has the
issue if fixed there of the current broken installs and how anaconda only
creates that file on install).

Seeing as systemd decides the swap to hibernate to in the first place,
can't the same logic be used to locate the swap to resume from?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20160419/7ac13d20/attachment.html>


More information about the systemd-devel mailing list