From: Jingbo Xu <jefflexu@linux.alibaba.com>
To: Sergio Lopez Pascual <slp@redhat.com>,
"Darrick J. Wong" <djwong@kernel.org>
Cc: Miklos Szeredi <miklos@szeredi.hu>, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH] fuse: mark DAX inode releases as blocking
Date: Tue, 27 Jan 2026 19:30:14 +0800 [thread overview]
Message-ID: <66e4e378-1e65-49f3-853b-276ab04bc594@linux.alibaba.com> (raw)
In-Reply-To: <CAAiTLFULeJw2y53dM2QqDqHv2ycD8rZmptVX7yRML0_XVneY=g@mail.gmail.com>
On 1/27/26 7:18 PM, Sergio Lopez Pascual wrote:
> Jingbo Xu <jefflexu@linux.alibaba.com> writes:
>
>> On 1/27/26 2:40 AM, Darrick J. Wong wrote:
>>
>>> I wonder if fuse ought to grow the ability to whine when something is
>>> trying to issue a synchronous fuse command while running in a command
>>> queue completion context (aka the worker threads) but I don't know how
>>> difficult that would *really* be.
>>
>> I had also observed similar issue where the FUSE daemon thread is
>> hanging in:
>>
>> request_wait_answer
>> fuse_simple_request
>> fuse_flush_times
>> fuse write_inode
>> writeback_single_inode
>> write_inode_now
>> fuse_release
>> _fput
>>
>> At that time I had no idea how FUSE daemon thread could trigger fuse
>> file release and thus I didn't dive into this further...
>>
>> I think commit 26e5c67deb2e ("fuse: fix livelock in synchronous file put
>> from fuseblk workers") is not adequate in this case, as the commit only
>> makes FUSE_RELEASE request asynchronously, while in this case the daemon
>> thread can wait for FUSE_WRITE and FUSE_SETATTR.
>>
>> Maybe the very first entry i.e. fuse_release() needs to be executed in
>> an asynchronous context (e.g. workqueue)...
>
> Do you have the rest of the stacktrace? We need to know if it's running
> in the context of the worker thread, as otherwise it must be a different
> problem.
This is observed in scenarios of FUSE rather than virtiofs.
The complete stacktrace of FUSE daemon worker thread (in userspace) is like:
request_wait_answer
fuse_simple_request
fuse_flush_times
fuse write_inode
writeback_single_inode
write_inode_now
fuse_release
__fput
____fput
task_work_run
exit_to_user_mode_prepare
syscall exit_to_user_mode
do_syscall_64
entry_SYSCALL_64_after_hwframe
--
Thanks,
Jingbo
next prev parent reply other threads:[~2026-01-27 11:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-18 23:24 [PATCH] fuse: mark DAX inode releases as blocking Sergio Lopez
2026-01-26 18:40 ` Darrick J. Wong
2026-01-27 2:43 ` Jingbo Xu
2026-01-27 11:18 ` Sergio Lopez Pascual
2026-01-27 11:30 ` Jingbo Xu [this message]
2026-01-27 11:12 ` Sergio Lopez Pascual
2026-01-27 23:30 ` Darrick J. Wong
2026-02-17 16:38 ` Miklos Szeredi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=66e4e378-1e65-49f3-853b-276ab04bc594@linux.alibaba.com \
--to=jefflexu@linux.alibaba.com \
--cc=djwong@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=slp@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox