@brauner @vbabka they're wild for different reasons, mm feels like standing on what's not even quick sand, vfs feels like digging through an endless dungeon of layers
I was trying to stitch together the magic open on procfs fd files and how that ends up in no_open for dma-bufs. I think with a bit of hollering and some blog posts as guidance I did walk the entire path (pun intended)
@jann @sima @vbabka fwiw, I think @paulmckrcu's RCU put sequence counters on steroids because it made it almost trivial to futz around with pointers protected by sequence counters.
@brauner @jann @vbabka @paulmckrcu I might be too kernel-brained, but these all feel fairly benign. they're very clever, but their complexity doesn't leak. it's the stuff where you need to load massive amounts of context and myriads of callchains into your brain first before you can even start to ask the right questions, much less find the answer
@sima @brauner @vbabka @paulmckrcu yeah, I agree with that. when a new local optimization is added that has a simple-looking diff but actually relies on adding a special case to the undocumented safety rules observed by the whole subsystem, things get real exciting...
@ljs @sima @brauner @vbabka yeaaah but as some bugs have shown there has also been some "we'll add this special rule over here to make things work, probably fine, and that special rule over there to speed things up, also probably fine, and oops nobody considered how those two interact with each other"...
@jann @sima @vbabka @paulmckrcu I mean that's one of our absolute major tasks: push back on anything that bleeds VFS guts into anything not-core VFS because it is just going to be an absolute shit show.
And it's absolutely proven that it's going to be a shit show. Take the d_path() example: bpf exposed d_path() via bpf_d_path() to random bpf programs in userspace and it caused hilarious crashes. Only to then come back and demand a "speculative" variant that exposed even more VFS internals.
@jann @sima @vbabka @paulmckrcu That's one of the major "Christian is an asshole" moments for most people I'm pretty sure. They think I pushback aggressively because I dislike whatever it is that they're working on when really I push back because I don't want to expose complex internal VFS behavior to the whole world.
@paulmckrcu @sima @jann @brauner @vbabka whoever writes this for Paul, please use rcu_assign_pointer()