Thread (22 messages) 22 messages, 4 authors, 2020-03-07

Re: [PATCH v2 3/7] bdi: protect device lifetime with RCU

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2020-03-04 20:06:04
Also in: linux-fsdevel

On Wed, Mar 04, 2020 at 01:50:56PM -0500, Tejun Heo wrote:
Hello,

On Wed, Mar 04, 2020 at 06:22:21PM +0100, Greg Kroah-Hartman wrote:
quoted
Ugh, I was dreading the fact that this day might sometime come...

In theory, the reference counting for struct device shouldn't need to
use rcu at all, right?  what is driving the need to use rcu for
Lifetime rules in block layer are kinda nebulous. Some of it comes
from the fact that some objects are reused. Instead of the usual,
create-use-release, they get repurposed to be associated with
something else. When looking at such an object from some paths, we
don't necessarily have ownership of all of the members.
That's horrid, it's not like block devices are on some "fast path" for
tear-down, we should do it correctly.
quoted
backing_device_info?  Are these being destroyed/used so often that rcu
really is the best solution and the existing reference counting doesn't
work properly?
It's more that there are entry points which can only ensure that just
the top level object is valid and the member objects might be going or
coming as we're looking at it.
That's not ok, a "member object" can only be valid if you have a
reference to it.  If you remove the object, you then drop the reference,
shouldn't that be the correct thing to do?

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help