On Fri 03-07-20 18:45:06, Colm MacC?rthaigh wrote:>
>
> On 3 Jul 2020, at 4:30, Michal Hocko wrote:
>
> > On Fri 03-07-20 10:34:09, Catangiu, Adrian Costin wrote:
> > > This patch adds logic to the kernel power code to zero out
contents
> > > of
> > > all MADV_WIPEONSUSPEND VMAs present in the system during its
> > > transition
> > > to any suspend state equal or greater/deeper than
Suspend-to-memory,
> > > known as S3.
> >
> > How does the application learn that its memory got wiped? S2disk is an
> > async operation and it can happen at any time during the task
execution.
> > So how does the application work to prevent from corrupted state -
e.g.
> > when suspended between two memory loads?
>
> The usual trick when using MADV_WIPEONFORK, or BSD?s MAP_INHERIT_ZERO, is
to
> store a guard variable in the page and to check the variable any time that
> random data is generated.
Well, MADV_WIPEONFORK is a completely different beast because the
forking is under a full control of the parent process and the
information about the fork can be forwarded to child process. It is
not like the child would reborn into a new world in the middle of the
execution.
--
Michal Hocko
SUSE Labs