On Tue, Jul 8, 2025 at 12:37 AM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > You are asked to evict everything evictable in there. It would be rather odd > if you ended up with some dentries sticking around (_still_ with refcounts > equal to the number of their surviving children) just because in the middle > of your work a memory pressure had been applied and started evicting one of > the leaves in that tree (none of them busy, all leaves have refcount 0, so > all of them are evictable). They are not evictable, or else you'd be evicting them, but you do not. Instead, you busy-wait for the dying dentry to disappear. (Which can take a loooong time) Your explanations do make sense, I understand them, and I think I'm getting a slight understanding of the dcache code. But you haven't even tried to argue why you implemented busy-waiting in this patch. I believe the busy-wait was accidental. I've been trying to make you aware that this is effectively a busy-wait, one that can take a long time burning CPU cycles, but I have a feeling I can't reach you. Al, please confirm that it was your intention to busy-wait until dying dentries disappear!