Hi, This would give a false positive on any controller with a cache as all requests would take 0ms until the cache is full and the controller has to actually flush to disk. I am using an HP P841 controller in my test system and it has a 4GB cache making every IO instant unless there are enough of them that they can't be flushed to the disks as quickly as they come in - the latency variation is huge depending on load. Regards On Sat, 30 Mar 2019 at 12:34, Qu Wenruo <quwenruo.btrfs@xxxxxxx> wrote: > > Hi, > > I'm wondering if it's possible that certain physical device doesn't > handle flush correctly. > > E.g. some vendor does some complex logical in their hdd controller to > skip certain flush request (but not all, obviously) to improve performance? > > Do anyone see such reports? > > And if proves to happened before, how do we users detect such problem? > > Can we just check the flush time against the write before flush call? > E.g. write X random blocks into that device, call fsync() on it, check > the execution time. Repeat Y times, and compare the avg/std. > And change X to 2X/4X/..., repeat above check. > > Thanks, > Qu > >