lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 2 Feb 2009 21:45:08 -0800 (PST)
From:	David Rientjes <rientjes@...gle.com>
To:	Balbir Singh <balbir@...ux.vnet.ibm.com>
cc:	KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"nishimura@....nes.nec.co.jp" <nishimura@....nes.nec.co.jp>,
	"lizf@...fujitsu.com" <lizf@...fujitsu.com>,
	"linux-mm@...ck.org" <linux-mm@...ck.org>
Subject: Re: [-mm patch] Show memcg information during OOM

On Tue, 3 Feb 2009, Balbir Singh wrote:

> > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> > > index 8e4be9c..954b0d5 100644
> > > --- a/mm/memcontrol.c
> > > +++ b/mm/memcontrol.c
> > > @@ -813,6 +813,25 @@ bool mem_cgroup_oom_called(struct task_struct *task)
> > >  	rcu_read_unlock();
> > >  	return ret;
> > >  }
> > > +
> > > +void mem_cgroup_print_mem_info(struct mem_cgroup *memcg)
> > > +{
> > > +	if (!memcg)
> > > +		return;
> > > +
> > > +	printk(KERN_WARNING "Memory cgroups's name %s\n",
> > > +		memcg->css.cgroup->dentry->d_name.name);
> > 
> > This should be "cgroup's", but I don't think you want to print this on a 
> > line by itself since the only system-wide synchronization here is a 
> > read-lock on tasklist_lock and there could be two separate memcg's that 
> > are oom.
> > 
> > So it's quite possible, though unlikely, that two seperate oom events 
> > would have these messages merged together in the ring buffer, which would 
> > make parsing impossible.
> > 
> > I think you probably want to add the name to each line you print, such as:
> 
> See below
> 
> > 
> > > +	printk(KERN_WARNING "Cgroup memory: usage %llu, limit %llu"
> > > +		" failcnt %llu\n", res_counter_read_u64(&memcg->res, RES_USAGE),
> > > +		res_counter_read_u64(&memcg->res, RES_LIMIT),
> > > +		res_counter_read_u64(&memcg->res, RES_FAILCNT));
> > 
> > 	const char *name = memcg->css.cgroup->dentry->d_name.name;
> > 
> > 	printk(KERN_INFO "Cgroup %s memory: usage %llu, limit %llu"
> > 			" failcount %llu\n", name, ...);
> > 
> > > +	printk(KERN_WARNING "Cgroup memory+swap: usage %llu, limit %llu "
> > > +		"failcnt %llu\n",
> > > +		res_counter_read_u64(&memcg->memsw, RES_USAGE),
> > > +		res_counter_read_u64(&memcg->memsw, RES_LIMIT),
> > > +		res_counter_read_u64(&memcg->memsw, RES_FAILCNT));
> > 
> > and
> > 
> > 	printk(KERN_INFO "Cgroup %s memory+swap: usage %llu, limit %llu "
> > 		"failcnt %llu\n", name, ...);
> > 
> > > +}
> >
> 
> FYI, we have OOM serialization via the memcg_tasklist mutex in the
> memory controller.
>  

I think it would be easier to parse in userspace if you provided the 
cgroup name on the same lines as the usage, limit, and failcnt values 
instead of storing that from the header line, but do whatever you want.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ