From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail144.messagelabs.com (mail144.messagelabs.com [216.82.254.51]) by kanga.kvack.org (Postfix) with SMTP id B9B106B0047 for ; Fri, 16 Jan 2009 01:32:07 -0500 (EST) Received: from mt1.gw.fujitsu.co.jp ([10.0.50.74]) by fgwmail7.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id n0G6W5xm009451 for (envelope-from kamezawa.hiroyu@jp.fujitsu.com); Fri, 16 Jan 2009 15:32:05 +0900 Received: from smail (m4 [127.0.0.1]) by outgoing.m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 24A5D45DE56 for ; Fri, 16 Jan 2009 15:32:05 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (s4.gw.fujitsu.co.jp [10.0.50.94]) by m4.gw.fujitsu.co.jp (Postfix) with ESMTP id EA73745DE54 for ; Fri, 16 Jan 2009 15:32:04 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id EFC0A1DB803C for ; Fri, 16 Jan 2009 15:32:03 +0900 (JST) Received: from m105.s.css.fujitsu.com (m105.s.css.fujitsu.com [10.249.87.105]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id 76DCC1DB803E for ; Fri, 16 Jan 2009 15:32:03 +0900 (JST) Date: Fri, 16 Jan 2009 15:30:59 +0900 From: KAMEZAWA Hiroyuki Subject: Re: [BUG] memcg: panic when rmdir() Message-Id: <20090116153059.64bc5b45.kamezawa.hiroyu@jp.fujitsu.com> In-Reply-To: <49702827.2060207@cn.fujitsu.com> References: <497025E8.8050207@cn.fujitsu.com> <20090116151900.f86cc1a3.kamezawa.hiroyu@jp.fujitsu.com> <49702827.2060207@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org To: Li Zefan Cc: Balbir Singh , Daisuke Nishimura , "linux-mm@kvack.org" List-ID: On Fri, 16 Jan 2009 14:24:39 +0800 Li Zefan wrote: > KAMEZAWA Hiroyuki wrote: > > On Fri, 16 Jan 2009 14:15:04 +0800 > > Li Zefan wrote: > > > >> Found this when testing memory resource controller, can be triggered > >> with: > >> - CONFIG_CGROUP_MEM_RES_CTLR_SWAP=n > >> - or CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y > >> - or CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y && boot with noswapaccount > >> > >> # mount -t cgroup -o memory xxx /mnt > >> # mkdir /mnt/0 > >> # for pid in `cat /mnt/tasks`; do echo $pid > /mnt/0/tasks; done > >> # echo "low limit" > /mnt/0/tasks > >> # do whatever to allocate some memory > >> # swapoff -a > >> killed (by OOM) > >> # for pid in `cat /mnt/0/tasks`; do echo $pid > /mnt/tasks; done > >> # rmdir /mnt/0 > >> > > Isn't this a problem Nishimura fixed today ? > > > > Are you sure? > Sorry, I didn't see BUG! line in you log. -Kame > The changelog: > ========== > The lifetime of struct cgroup and struct mem_cgroup is different and > mem_cgroup has its own reference count for handling references from swap_cgroup. > > This causes strange problem that the parent mem_cgroup dies while > child mem_cgroup alive, and this problem causes a bug in case of use_hierarchy==1 > because res_counter_uncharge climbs up the tree. > ========== > > I was not using hierarchy, and no "mem_cgroup dies while child mem_cgroup alive" > in my test. > > Anyway, I'll try. > > > could you try > > > > memcg-get-put-parents-at-create-free.patch > > > > in mm-commits ? > > > > Sorry for inconvinience, I'll send you the patch in private mail if necessary. > > > > Thanks, > > -Kame > > > > > > > >> ------------[ cut here ]------------ > >> WARNING: at kernel/res_counter.c:71 res_counter_uncharge_locked+0x25/0x36() > >> Hardware name: Aspire SA85 > >> Modules linked in: bridge stp llc autofs4 dm_mirror dm_region_hash dm_log dm_mod parport_pc button sg r8169 mii parport sata_sis pata_sis ata_generic libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last unloaded: scsi_wait_scan] > >> Pid: 2548, comm: rmdir Tainted: G W 2.6.29-rc1-mm1 #4 > >> Call Trace: > >> [] warn_slowpath+0x79/0x8f > >> [] ? clockevents_program_event+0xe0/0xef > >> [] ? res_counter_charge+0x35/0xb0 > >> [] ? res_counter_uncharge+0x29/0x5f > >> [] res_counter_uncharge_locked+0x25/0x36 > >> [] res_counter_uncharge+0x33/0x5f > >> [] mem_cgroup_force_empty+0x21b/0x498 > >> [] mem_cgroup_pre_destroy+0x12/0x14 > >> [] cgroup_rmdir+0x5e/0x27e > >> [] ? _spin_unlock+0x2c/0x41 > >> [] vfs_rmdir+0x5b/0x9c > >> [] do_rmdir+0x89/0xc8 > >> [] ? up_read+0x1b/0x2e > >> [] ? do_page_fault+0x356/0x5ed > >> [] sys_rmdir+0x15/0x17 > >> [] sysenter_do_call+0x12/0x35 > >> ---[ end trace 4eaa2a86a8e2da24 ]--- > >> ------------[ cut here ]------------ > >> kernel BUG at kernel/cgroup.c:2517! > >> invalid opcode: 0000 [#1] PREEMPT SMP > >> last sysfs file: /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/irq > >> Modules linked in: bridge stp llc autofs4 dm_mirror dm_region_hash dm_log dm_mod parport_pc button sg r8169 mii parport sata_sis pata_sis ata_generic libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last unloaded: scsi_wait_scan] > >> > >> Pid: 2548, comm: rmdir Tainted: G W (2.6.29-rc1-mm1 #4) Aspire SA85 > >> EIP: 0060:[] EFLAGS: 00210046 CPU: 1 > >> EIP is at cgroup_rmdir+0xda/0x27e > >> EAX: f442b800 EBX: ed00b3c0 ECX: c04607ca EDX: 00000000 > >> ESI: c0778dc0 EDI: 00200246 EBP: ed252f30 ESP: ed252f14 > >> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > >> Process rmdir (pid: 2548, ti=ed252000 task=e19aa8c0 task.ti=ed252000) > >> Stack: > >> 00000000 f442b800 c0621d08 e18a8014 e2d96a00 fffffff0 e2ccadf0 ed252f44 > >> c04a67fe e2d96a00 00000000 0804ca00 ed252fa8 c04a7b8c ed269080 e2d745a0 > >> 00002121 00000001 f46a3000 00000000 00000000 00000000 ed0a6d34 00000004 > >> Call Trace: > >> [] ? _spin_unlock+0x2c/0x41 > >> [] ? vfs_rmdir+0x5b/0x9c > >> [] ? do_rmdir+0x89/0xc8 > >> [] ? up_read+0x1b/0x2e > >> [] ? do_page_fault+0x356/0x5ed > >> [] ? sys_rmdir+0x15/0x17 > >> [] ? sysenter_do_call+0x12/0x35 > >> Code: c8 fe ff 8b 43 40 8b 70 0c eb 3e 8b 46 28 8b 44 83 20 89 45 e8 8b 55 e8 8b 52 04 83 fa 01 89 55 e4 0f 8f 5f ff ff ff 85 d2 75 04 <0f> 0b eb fe 8b 45 e4 31 c9 8b 55 e8 f0 0f b1 4a 04 8b 55 e4 39 > >> EIP: [] cgroup_rmdir+0xda/0x27e SS:ESP 0068:ed252f14 > >> ---[ end trace 4eaa2a86a8e2da25 ]--- > >> > >> > >> > >> > >> > > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org