[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <03d5730-9241-542d-76c6-728be4487c4@gentwo.de>
Date: Fri, 21 Oct 2022 09:44:23 +0200 (CEST)
From: Christoph Lameter <cl@...two.de>
To: "Paul E. McKenney" <paulmck@...nel.org>
cc: rcu@...r.kernel.org, linux-kernel@...r.kernel.org,
kernel-team@...com, rostedt@...dmis.org,
Pekka Enberg <penberg@...nel.org>,
David Rientjes <rientjes@...gle.com>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
Vlastimil Babka <vbabka@...e.cz>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Hyeonggon Yoo <42.hyeyoo@...il.com>, linux-mm@...ck.org
Subject: Re: [PATCH rcu 5/8] slab: Explain why SLAB_DESTROY_BY_RCU reference
before locking
On Wed, 19 Oct 2022, Paul E. McKenney wrote:
> It is not obvious to the casual user why it is absolutely necessary to
> acquire a reference to a SLAB_DESTROY_BY_RCU structure before acquiring
> a lock in that structure. Therefore, add a comment explaining this point.
Sorry but this is not correct and difficult to comprehend.
1. You do not need a reference to a slab object after it was allocated.
Objects must be properly protected by rcu_locks.
2. Locks are initialized once on slab allocation via a constructor (*not* on object allocation via kmem_cache_alloc)
3. Modifying locks at allocation/free is not possible since references to
these objects may still persist after free and before alloc.
4. The old term SLAB_DESTROY_BY_RCU is used here.
Powered by blists - more mailing lists