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. -- Thanks, Jingbo