Re: snapshot of physical memory

From: Valdis . Kletnieks
Date: Tue Jul 18 2006 - 15:23:31 EST

On Tue, 18 Jul 2006 12:16:16 EDT, Allison said:

> 2. How do I make sure that no updates take place in memory from the
> time I initiate the snapshot till it is done.

Hint: If you're running a program to dump memory, it's going to be calling
I/O drivers and so on - and all this activity has to modify at least *some*
memory (unless you're on an architecture with a *really* deep register stack ;)
You can't ensure that *no* updates take place. At best, you can minimize
the number of pages touched.

For an example of the kind of hoops you need to jump through, I suggest a
careful reading of the 'suspend' and/or 'suspend2' source code - a large part
of that code is basically taking a snapshot of memory.

Also, you'll need to make sure that whatever software is running that
you're trying to snapshot is fairly tolerant of pauses - if you have a
disk that manages 20MBytes/second and you have 256M of memory, you're going
to be sitting there for 10 seconds. This can come as a surprise to programs
that were sleeping on a timer interrupt.. :)

Attachment: pgp00000.pgp
Description: PGP signature