Messages in this thread | | | Date | Sat, 06 Nov 2010 17:00:09 -0400 | From | Oren Laadan <> | Subject | Re: [Ksummit-2010-discuss] checkpoint-restart: naked patch |
| |
On 11/05/2010 01:17 PM, Gene Cooperman wrote: > On Fri, Nov 05, 2010 at 04:57:33AM -0700, Luck, Tony wrote: >>> Oren noted that sometimes it's important to stop the process only >>> for a few milliseconds while one checkpoints. In DMTCP, we do that >>> by configuring with --enable-forked-checkpointing. This causes us >>> to fork a child process taking advantage of copy-on-write and then >>> checkpoint the memory pages of the child while the parent continues >>> to execute. >> >> Interesting ... but while the process is only stopped for the duration >> of the fork, it may be taking COW faults on almost every page it >> touches. I think this will not work well for large HPC applications >> that allocate most of physical memory as anonymous pages for the >> application. It may even result in an OOM kill if you don't complete >> the checkpoint of the child and have it exit in a timely manner. >> >> -Tony >> > > I agree with you that forked checkpointing is probably not what you > want in the middle of an HPC computation. But isn't that part of > the nature of COW? Whether the COW is invoked within the kernel, > or from outside the kernel via fork --- in either case, when you have > mostly dirty pages, you will have to copy most of the pages. > Do I understand your point correctly? Thanks, > - Gene
COW is one way of reducing down time (whether through fork or in-kernel checkpoint). However, it is possible to avoid using it (and thus avoid extra page faults and memory overload) by using the page-table "dirty" bit to track dirty pages. This way one can "pre-copy" the checkpoint image while the application is running, without additional overhead (the idea is similar to how live-migration is done).
Oren.
| |