From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nathan Lynch Subject: Re: c/r updates Date: Thu, 14 May 2009 11:26:45 -0500 Message-ID: References: <4A0C3E84.1040702@cs.columbia.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4A0C3E84.1040702-eQaUEPhvms7ENvBUuze7eA@public.gmane.org> (Oren Laadan's message of "Thu\, 14 May 2009 11\:53\:40 -0400") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Oren Laadan Cc: Linux Containers , Dave Hansen List-Id: containers.vger.kernel.org Oren Laadan writes: > Hi, > > The current development kernel git: > git://git.ncl.cs.columbia.edu/pub/git/linux-cr [ckpt-v15-dev] > > The current development user tools git: > git://git.ncl.cs.columbia.edu/pub/git/user-cr [ckpt-v15-dev] > > (branch naming will remain consistent from now ...) > > Dave: I pushed a series of patches/fixes to current c/r tree, some of > which are are relevant to the patch series you're preparing. > > Nathan: patches "tee...", "splice..." and "c/r: redo..." change the > way pipes are saved/restored, and avoids the lockdep issue. Yes, I just re-tested and it seems to avoid it. However, when trying to checkpoint an unfrozen container (user error) with ckpt -c I see the following trace. Looks like ckpt_write_err is called with tasklist_lock held. BUG: sleeping function called from invalid context at mm/slub.c:1595 in_atomic(): 1, irqs_disabled(): 0, pid: 3603, name: ckpt 1 lock held by ckpt/3603: #0: (tasklist_lock){.+.+.+}, at: [] tree_count_tasks+0x2a/0x22e Pid: 3603, comm: ckpt Not tainted 2.6.30-rc3 #15 Call Trace: [] ? __debug_show_held_locks+0x1e/0x20 [] __might_sleep+0x100/0x107 [] __kmalloc+0xd1/0x1b4 [] ckpt_hdr_get+0x14/0x16 [] ckpt_write_obj_type+0x25/0x73 [] ckpt_write_err+0x22/0xa9 [] ? get_lock_stats+0x16/0x38 [] ? put_lock_stats+0xd/0x21 [] ? lock_release_holdtime+0xfd/0x105 [] ? __task_pid_nr_ns+0x84/0xc0 [] tree_count_tasks+0xc1/0x22e [] do_checkpoint+0x150/0x532 [] ? ckpt_obj_hash_alloc+0x94/0x122 [] ? ckpt_ctx_alloc+0xd8/0xfd [] sys_checkpoint+0x6c/0x82 [] syscall_call+0x7/0xb BUG: scheduling while atomic: ckpt/3603/0x10000002 2 locks held by ckpt/3603: #0: (tasklist_lock){.+.+.+}, at: [] tree_count_tasks+0x2a/0x22e #1: (&sb->s_type->i_mutex_key#8){+.+.+.}, at: [] generic_file_aio_write+0x59/0xc2 Modules linked in: Pid: 3603, comm: ckpt Not tainted 2.6.30-rc3 #15 Call Trace: [] __schedule_bug+0x63/0x6a [] __schedule+0x8f/0xa34 [] ? journal_stop+0x24d/0x258 [] ? journal_stop+0x24d/0x258 [] ? ftrace_call+0x5/0x8 [] ? ftrace_call+0x5/0x8 [] ? put_page+0xe/0xf1 [] ? ext3_writeback_write_end+0xd5/0x102 [] ? ftrace_call+0x5/0x8 [] schedule+0x17/0x30 [] __cond_resched+0x26/0x3f [] _cond_resched+0x29/0x34 [] generic_file_buffered_write+0x141/0x253 [] __generic_file_aio_write_nolock+0x3d7/0x40f [] ? mutex_lock_nested+0x279/0x2b9 [] generic_file_aio_write+0x6e/0xc2 [] ext3_file_write+0x1f/0x92 [] do_sync_write+0xb0/0xee [] ? autoremove_wake_function+0x0/0x38 [] ? selinux_file_permission+0xa1/0xa5 [] ? security_file_permission+0x14/0x16 [] ? do_sync_write+0x0/0xee [] vfs_write+0x8f/0x133 [] ckpt_kwrite+0x50/0x95 [] ckpt_write_obj_type+0x47/0x73 [] ckpt_write_err+0x22/0xa9 [] ? get_lock_stats+0x16/0x38 [] ? put_lock_stats+0xd/0x21 [] ? lock_release_holdtime+0xfd/0x105 [] ? __task_pid_nr_ns+0x84/0xc0 [] tree_count_tasks+0xc1/0x22e [] do_checkpoint+0x150/0x532 [] ? ckpt_obj_hash_alloc+0x94/0x122 [] ? ckpt_ctx_alloc+0xd8/0xfd [] sys_checkpoint+0x6c/0x82 [] syscall_call+0x7/0xb