On Thu, Jun 01, 2023 at 09:45:52AM +0800, Jingbo Xu wrote: > > > On 6/1/23 4:03 AM, Vivek Goyal wrote: > > On Mon, Apr 24, 2023 at 08:32:50PM +0800, Jingbo Xu wrote: > >> When range already got reclaimed by somebody else, return NULL so that > >> the caller could retry to allocate or reclaim another range, instead of > >> mistakenly returning the range already got reclaimed and reused by > >> others. > >> > >> Reported-by: Liu Jiang <gerry@xxxxxxxxxxxxxxxxx> > >> Fixes: 9a752d18c85a ("virtiofs: add logic to free up a memory range") > >> Signed-off-by: Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx> > > > > Hi Jingbo, > > > > This patch looks correct to me. > > > > Are you able to reproduce the problem? Or you are fixing it based on > > code inspection? > > It's spotted by Liu Jiang during code review. Not tested yet. > > > > > How are you testing this? We don't have virtiofsd DAX implementation yet > > in rust virtiofsd yet. > > > > I am not sure how to test this chagne now. We had out of tree patches > > in qemu and now qemu has gotten rid of C version of virtiofsd so these > > patches might not even work now. > > Yeah this exception path may not be so easy to be tested as it is only > triggered in the race condition. I have the old branch (of qemu) with > support for DAX, and maybe I could try to reproduce the exception path > by configuring limited DAX window and heavy IO workload. That would be great. Please test it with really small DAX window size. Also put some pr_debug() statements to make sure you are hitting this particular path during testing. Thanks Vivek