On Sat, 2018-06-30 at 11:04 +1000, Benjamin Herrenschmidt wrote: > I had a look (see my other email). It's non-trivial. We can still look > into it, but from what I gathered of how sysfs works, it's based on > kernfs which doesn't have the kobjects nor access to the reference > count, and is the holder of the names rbtree. > > So we'd need to find a way to convey that "in-use" information down to > kernfs (I thought maybe adding an optional pointer to a kref ? but > then, it's still somewhat racy ...) > > Additionally, we would need a few more pairs of eyes to make sure that > sticking duplicates in that rbtree isn't going to break some corner > case in there.
Just to clarify, I will look into it, but it will take more time so I'm keen on having the low hanging fixes in now. Also in general, I dislike the idea of leaving things in sysfs with a refcount of 0. That "late" cleanup in kobject_release() looks to me more like a band-aid than a feature. I'd be almost tempted to stick a WARN_ON in there and see who gets hit but I worry it's going send me down one of those rabbit holes and my time is limited these days ;-) Cheers, Ben.