Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

Hiberfile: read more than written

Alex_GrigAlex_Grig Member Posts: 3,238
We observe strange behavior in Windows 2008R2 and Win8 dev preview:

When going to hibernation, the last LBA written is less than last LBA read when it resumes back. We see it on the wire trace. Same discrepancy is observed with third party HBAs, too.

We see intermittent OS hangs during switch from winresume to the kernel.
Our dump driver max transfer size is 64K.

Comments

  • Jake_OshinsJake_Oshins Member Posts: 1,058
    Why do you think that's strange? Not all the data written is the resume
    file.



    Jake Oshins
    Hyper-V I/O Architect
    Windows Kernel Group

    This post implies no warranties and confers no rights.

    --------------------------------------------------------------
    wrote in message news:xxxxx@ntdev...

    We observe strange behavior in Windows 2008R2 and Win8 dev preview:

    When going to hibernation, the last LBA written is less than last LBA read
    when it resumes back. We see it on the wire trace. Same discrepancy is
    observed with third party HBAs, too.

    We see intermittent OS hangs during switch from winresume to the kernel.
    Our dump driver max transfer size is 64K.
  • Alex_GrigAlex_Grig Member Posts: 3,238
    "Why do you think that's strange? Not all the data written is the resume
    file."

    In the wire trace, during hibernation, I see large write operations to contiguous LBAs, for example, X to Y. They all are MaxTransferLength as big. The last small read/write pair finalizes the hiberfile. During resume, I see contiguous reads from X to Y+z, that's some data is read immediately after the written end. Those extra LBA are never seen written during hibernation, not even during hibernation init. Those LBA numbers are different every time, because amount of hibernation data is different every time (and cannot be predicted at hibernation init time, because of compression). THis means that area is unlikely to contain any determinate data.

    Is this a sign of a bug?
  • Jake_OshinsJake_Oshins Member Posts: 1,058
    I doubt it.



    Jake Oshins
    Hyper-V I/O Architect
    Windows Kernel Group

    This post implies no warranties and confers no rights.

    --------------------------------------------------------------
    wrote in message news:xxxxx@ntdev...

    "Why do you think that's strange? Not all the data written is the resume
    file."

    In the wire trace, during hibernation, I see large write operations to
    contiguous LBAs, for example, X to Y. They all are MaxTransferLength as big.
    The last small read/write pair finalizes the hiberfile. During resume, I see
    contiguous reads from X to Y+z, that's some data is read immediately after
    the written end. Those extra LBA are never seen written during hibernation,
    not even during hibernation init. Those LBA numbers are different every
    time, because amount of hibernation data is different every time (and cannot
    be predicted at hibernation init time, because of compression). THis means
    that area is unlikely to contain any determinate data.

    Is this a sign of a bug?
  • Alex_GrigAlex_Grig Member Posts: 3,238
    Doubt what? That this is a bug? Or that this behavior actually happens?
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
Developing Minifilters 29 July 2019 OSR Seminar Space
Writing WDF Drivers 23 Sept 2019 OSR Seminar Space
Kernel Debugging 21 Oct 2019 OSR Seminar Space
Internals & Software Drivers 18 Nov 2019 Dulles, VA