Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758049AbYHKX4m (ORCPT ); Mon, 11 Aug 2008 19:56:42 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753907AbYHKX4e (ORCPT ); Mon, 11 Aug 2008 19:56:34 -0400 Received: from lemon.ertos.nicta.com.au ([203.143.174.143]:33053 "EHLO lemon.gelato.unsw.edu.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751826AbYHKX4e (ORCPT ); Mon, 11 Aug 2008 19:56:34 -0400 Date: Tue, 12 Aug 2008 09:54:33 +1000 Message-ID: <87d4kfds5i.wl%peterc@chubb.wattle.id.au> From: Peter Chubb To: Jeremy Fitzhardinge Cc: Dave Hansen , Arnd Bergmann , "Serge E. Hallyn" , containers@lists.linux-foundation.org, Theodore Tso , linux-kernel@vger.kernel.org, Peter Chubb In-Reply-To: <48A0CD86.6030704@goop.org> References: <20080807224033.FFB3A2C1@kernel> <200808090013.41999.arnd@arndb.de> <20080811152201.GB25930@us.ibm.com> <200808111853.13854.arnd@arndb.de> <1218484114.5598.43.camel@nimitz> <48A0CD86.6030704@goop.org> User-Agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.7 MULE XEmacs/21.4 (patch 21) (Educational Television) (x86_64-linux-gnu) X-Face: GgFg(Z>fx((4\32hvXq<)|jndSniCH~~$D)Ka:P@e@JR1P%Vr}EwUdfwf-4j\rUs#JR{'h# !]])6%Jh~b$VA|ALhnpPiHu[-x~@<"@Iv&|%R)Fq[[,(&Z'O)Q)xCqe1\M[F8#9l8~}#u$S$Rm`S9% \'T@`:&8>Sb*c5d'=eDYI&GF`+t[LfDH="MP5rwOO]w>ALi7'=QJHz&y&C&TE_3j! Organization: Gelato@UNSW MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 203.143.161.65 X-SA-Exim-Mail-From: peterc@gelato.unsw.edu.au Subject: Re: checkpoint/restart ABI X-SA-Exim-Version: 4.2 (built Thu, 03 Mar 2005 10:39:27 +0000) X-SA-Exim-Scanned: Yes (on lemon.gelato.unsw.edu.au) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2199 Lines: 49 >>>>> "Jeremy" == Jeremy Fitzhardinge writes: Jeremy> Dave Hansen wrote: >> Arnd, Jeremy and Oren, >> Jeremy> * multiple processes * pipes * UNIX domain sockets * INET Jeremy> sockets (both inter and intra machine) * unlinked open files * Jeremy> checkpointing file content * closed files (ie, files which Jeremy> aren't currently open, but will be soon, esp tmp files) * Jeremy> shared memory * (Peter, what have I forgotten?) File sharing; multiple threads with wierd sharing arrangements (think: clone with various parameters, followed by exec in some of the threads but not others); MERT/system-V shared memory, semaphores and message queues; devices (audio, framebuffer, etc), HugeTLBFS, numa issues (pinning, memory layout), processes being debugged (so, checkpoint.restart a gdb/target pair), futexes, etc., etc. Linux process state keeps expanding. Jeremy> Having gone through this before, I don't think an all-kernel Jeremy> solution can work except for the most simple cases. I agree ... it's better to put mechanisms into the kernel that can then be used by a user-space programme to actually do the checkpointing and restarting. Beefing up ptrace or fixing /proc to be a real debugging interface would be a start ... when you can get at *all* the info you need, quickly and easily, the userspace checkpoint falls out fairly naturally. You still have to work out an extensible file format to store stuff, and how to restore all that state you've so lovingly collected. Jeremy> Lightweight filesystem checkpointing, such as btrfs provides, Jeremy> would seem like a powerful mechanism for handling a lot of the Jeremy> filesystem state problems. It would have been useful when we Jeremy> did this... And how! saving bits of files was very timeconsuming. -- Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au http://www.ertos.nicta.com.au ERTOS within National ICT Australia -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/