On Mon, Jul 07, 2025 at 10:39:27PM +0200, Max Kellermann wrote: > > Busy loop here means that everything in the tree is either busy or already > > in process of being torn down *by* *another* *thread*. And that's already > > in process - not just selected for it (see collect2 in the same loop). > > The busy process isn't doing anything. All it does is busy-wait for > another task to complete the evict() call. A pointless waste of CPU > cycles. > > > The interesting question is what the other thread is doing... > > ceph_evict_inode() is waiting for the Ceph server to acknowledge a > pending I/O operation. Yes, but where does that ceph_evict_inode() come from? What's in its call chain? Is it several shrink_dcache_parent() fighting each other on the same tree, or...?