On 4/29/22 00:54, Pankaj Raghav wrote: > On 2022-04-28 01:39, Damien Le Moal wrote: >> On 4/28/22 01:02, Pankaj Raghav wrote: >>> The zone size shift variable is useful only if the zone sizes are known >>> to be power of 2. Remove that variable and use generic helpers from >>> block layer to calculate zone index in zonefs >> >> Period missing at the end of the sentence. >> > Ack >> What about zonefs-tools and its test suite ? Is everything still OK on >> that front ? I suspect not... >> > I don't know why you assume that :). Zonefs had only one place that had > the assumption of po2 zsze sectors: > if (nr_zones < dev.nr_zones) { > size_t runt_sectors = dev.capacity & (dev.zone_nr_sectors - 1); > > In my local tree I changed it and I was able to run zonefs tests for non > po2 zone device. I have also mentioned it in my cover letter: > ``` > ZoneFS: > zonefs-tests.sh from zonefs-tools were run with no failures. > ``` This is still not convincing given the code I saw. Additional test cases need to be added with data verification & concurrent regular writes also sent while doing copy to verify locking. Which also reminds me that I have not seen any change to mq-deadline zone write locking for this series. What is the assumption ? That users should not be issuing writes when a copy is on-going ? What a bout the reverse case ? at the very least, it seems that blk_issue_copy() should be taking the zone write lock. > I will make sure to add my private tree for zonefs in my cover letter in > the next rev. But even without that change, a typical emulated npo2 > device should work fine because the changes are applicable only for > "runt" zones. -- Damien Le Moal Western Digital Research