Mark Kettenis <[email protected]> wrote:

> I'm 100% sure that I am booting the correct kernel.  The checksum
> calculated by that code above is the same.  But for some reason the
> checksum that we read back from the hibernation info on disk is
> all-zeroes.  So something is going wrong.  Will dig deeper when I have
> time.

Is it just the checksum field --- or has the signature sector not
actually made it onto disk?

There is this messy thing in subr_hibernate.c around 1954

        /* Allow the disk to settle */
        delay(500000);

Few days ago I asked Mike about this again.  Apparently this was a workaround
for an old system, and we should not do it anymore.  That was probably ahci.
But why did we need it back then?

These new systems are nvme.  Do we have a situation where the last hibernate
write operation gets skipped in subr_hibernate.c, or do we have low-level
side-effect-free io functions which don't do their job.  Is nvme_hibernate_io()
failing the last write to disk?

Reply via email to