Re: [PATCH 1/2] Allow a kthread to declare that it calls task_work_run()

From: Dave Chinner
Date: Tue Dec 05 2023 - 01:27:37 EST


On Tue, Dec 05, 2023 at 08:20:31AM +1100, NeilBrown wrote:
> On Mon, 04 Dec 2023, Al Viro wrote:
> > On Mon, Dec 04, 2023 at 12:36:41PM +1100, NeilBrown wrote:
> >
> > > This means that any cost for doing the work is not imposed on the kernel
> > > thread, and importantly excessive amounts of work cannot apply
> > > back-pressure to reduce the amount of new work queued.
> >
> > It also means that a stuck ->release() won't end up with stuck
> > kernel thread...
>
> Is a stuck kernel thread any worse than a stuck user-space thread?
>
> >
> > > earlier than would be ideal. When __dput (from the workqueue) calls
> >
> > WTF is that __dput thing? __fput, perhaps?
>
> Either __fput or dput :-)
> ->release isn't the problem that I am seeing.
> The call trace that I see causing problems is
> __fput -> dput -> dentry_kill -> destroy_inode -> xfs_fs_destroy_inode

What problem, exactly, are you having with xfs_fs_destroy_inode()?

-Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx