On Tue, Apr 06, 2021 at 08:55:41AM +0800, Yunsheng Lin wrote: > > Hi, Jiri > Do you have a reproducer that can be shared here? > With reproducer, I can debug and test it myself too.
I'm afraid we are not aware of a simple reproducer. As mentioned in the original discussion, the race window is extremely small and the other thread has to do quite a lot in the meantime which is probably why, as far as I know, this was never observed on real hardware, only in virtualization environments. NFS may also be important as, IIUC, it can often issue an RPC request from a different CPU right after a data transfer. Perhaps you could cheat a bit and insert a random delay between the empty queue check and releasing q->seqlock to make it more likely to happen. Other than that, it's rather just "run this complex software in a xen VM and wait". Michal