On Thu, Aug 10, 2023 at 11:42:50AM +0800, Chengming Zhou wrote: > On 2023/8/10 05:49, Christoph Hellwig wrote: > > Oh well. I don't feel like we're going to find the root cause > > given that its late in the merge window and I'm running out of > > time I have to work due to the annual summer vacation. Unless > > someone like Chengming who knows the flush code pretty well > > feels like working with chuck on a few more iterations we'll > > Hi, > > No problem, I can work with Chuck to find the root cause if Chuck > has time too, since I still can't reproduce it by myself. > > Maybe we should first find what's the status of the hang request? > I can write a Drgn script to find if any request hang in the queue. > > Christoph, it would be very helpful if you share some thoughts > and directions. > > > > have to revert it. Which is going to be a very painful merge > > with Chengming's work in the for-6.6 branch. > > > > Maybe we can revert it manually if we still fail since that commit > just let postflushes go to the normal I/O path, instead of going to > the flush state machine. > > So I think it should be fine if we just delete that case? > > Chuck, could you please help to check this change on block/for-next? > > Thanks! > > diff --git a/block/blk-flush.c b/block/blk-flush.c > index e73dc22d05c1..7ea3c00f40ce 100644 > --- a/block/blk-flush.c > +++ b/block/blk-flush.c > @@ -442,17 +442,6 @@ bool blk_insert_flush(struct request *rq) > * Queue for normal execution. > */ > return false; > - case REQ_FSEQ_DATA | REQ_FSEQ_POSTFLUSH: > - /* > - * Initialize the flush fields and completion handler to trigger > - * the post flush, and then just pass the command on. > - */ > - blk_rq_init_flush(rq); > - rq->flush.seq |= REQ_FSEQ_PREFLUSH; > - spin_lock_irq(&fq->mq_flush_lock); > - fq->flush_data_in_flight++; > - spin_unlock_irq(&fq->mq_flush_lock); > - return false; > default: > /* > * Mark the request as part of a flush sequence and submit it linux-block/for-next with the above hunk applied is not able to reproduce the NFSD hangs on SATA devices. -- Chuck Lever