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]
Message-ID: <20140114142904.GA12131@htj.dyndns.org>
Date:	Tue, 14 Jan 2014 09:29:04 -0500
From:	Tejun Heo <tj@...nel.org>
To:	Michal Hocko <mhocko@...e.cz>
Cc:	Hugh Dickins <hughd@...gle.com>,
	Johannes Weiner <hannes@...xchg.org>,
	Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/3] mm/memcg: iteration skip memcgs not yet fully
 initialized

Hey, Michal.

On Tue, Jan 14, 2014 at 02:30:05PM +0100, Michal Hocko wrote:
> On Mon 13-01-14 17:54:04, Hugh Dickins wrote:
> > It is surprising that the mem_cgroup iterator can return memcgs which
> > have not yet been fully initialized.  By accident (or trial and error?)
> > this appears not to present an actual problem; but it may be better to
> > prevent such surprises, by skipping memcgs not yet online.
> 
> My understanding was that !online cgroups are not visible for the
> iterator. it is css_online that has to be called before they are made
> visible.
> 
> Tejun?

>From the comment above css_for_each_descendant_pre()

 * Walk @root's descendants.  @root is included in the iteration and the
 * first node to be visited.  Must be called under rcu_read_lock().  A
 * descendant css which hasn't finished ->css_online() or already has
 * finished ->css_offline() may show up during traversal and it's each
 * subsystem's responsibility to verify that each @pos is alive.
     
What it guarantees is that an online css would *always* show up in the
iteration.  It's kinda difficult to guarantee both directions just
with RCU locking.  You gotta make at least one end loose to make it
work with RCU.

Thanks.

-- 
tejun
--
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