2011-06-08 07:46:58

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch 0/1] [RFC] include storage keys in hibernation image

Greetings,

we have discovered a shortcoming of the s390 support for supend to disk.
The problem is that we currently do not save and restore the storage
keys - the one additional byte associated with each 4K page, a unique
property of s390. The resume from disk will read the hibernation image
from disk and restore the original pages. The I/O or the memory move for
safe pages will set the referenced and the dirty bit in the storage key
for every restored page. Without a reset to the state before the
hibernation cycle the pages will appear to be dirty which causes
problems for e.g. read-only filesystems.

The solution implemented with this patch saves the storage key in the
upper 8 bits of the page-frame-numbers. The code adds 6 new function
in kernel/power/snapshot.c which are conditionally defined with
CONFIG_S390. The call sites of these functions are scattered in the
snapshot code which makes it hard to find a better abstraction for the
interface. The comments should make clear what the functions do.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.