Re: [PATCH v2 2/2] t/zbd: test repeated async write with block size unaligned to zone size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mar 25, 2021 / 04:58, Damien Le Moal wrote:
> On 2021/03/25 11:15, Shin'ichiro Kawasaki wrote:
> > A recently fixed bug was caused by zone reset during asynchronous IOs
> > in-flight. The bug symptom was unaligned command error which was
> > observed using random write workload with libaio engine and block size
> > not a divisor of zone size. To confirm the bug fix and to prevent future
> > regression, add a test case which runs the workload.
> > 
> > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
> > ---
> >  t/zbd/test-zbd-support | 18 ++++++++++++++++++
> >  1 file changed, 18 insertions(+)
> > 
> > diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support
> > index be129615..51c92e86 100755
> > --- a/t/zbd/test-zbd-support
> > +++ b/t/zbd/test-zbd-support
> > @@ -1201,6 +1201,24 @@ test56() {
> >  		>> "${logfile}.${test_number}" 2>&1 || return $?
> >  }
> >  
> > +# Test that repeated async write job does not cause zone reset during writes
> > +# in-flight, when the block size is not a divisor of the zone size.
> > +test57() {
> > +	local bs off
> > +
> > +	require_zbd || return $SKIP_TESTCASE
> > +
> > +	bs=$((4096 * 7))
> > +	off=$((first_sequential_zone_sector * 512))
> > +
> > +	run_fio --name=job --filename="${dev}" --rw=randwrite --bs="${bs}" \
> > +		--offset="${off}" --size=$((4 * zone_size)) --iodepth=256 \
> > +		"$(ioengine "libaio")" --numjob=4 --time_based=1 --runtime=30s \
> 
> With a single job, there will be no lock contention, so more chances of seeing
> the problem as you described in the cover letter. So may be remove numjobs=4 here ?

As far as I tried, no difference is observed by numjob difference. I kept it
just because it was specified in the command line which found the problem. For
simplicity, I agree to remove it. Will reflect to v3.

> 
> > +		--zonemode=zbd --direct=1 --zonesize="${zone_size}" \
> > +		${job_var_opts[@]} \
> > +		>> "${logfile}.${test_number}" 2>&1 || return $?
> > +}
> > +
> >  SECONDS=0
> >  tests=()
> >  dynamic_analyzer=()
> > 
> 
> 
> -- 
> Damien Le Moal
> Western Digital Research
> 

-- 
Best Regards,
Shin'ichiro Kawasaki



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux