Re: [PATCH] flow: fix hang with flow control and zoned block devices

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

 



On 12/7/20 3:30 AM, Aravind Ramesh wrote:
> From: Aravind Ramesh <Aravind.Ramesh@xxxxxxx>
> 
> When flow control is specified between 2 or more threads executing a workload
> with zonemode=zbd and flow_sleep is not specified by the user (default to zero),
> then a job A can lock a zone Z with the flow ratio exceeded, resulting in the
> job to not issue the IO until other jobs IOs balance the flow ratio.
> Since job A will wait with the Zone Z locked, other jobs will deadlock waiting
> for this zone lock if their workload resulted in this zone Z being chosen
> as an IO target.
> 
> Executing io_u_quiesce() when the flow ratio is exceeded solves this potential
> deadlock as job A will wait for the flow ratio to balance without holding the
> zone A lock. To preserve the behavior for regular block devices and to avoid
> extra overhead, io_u_quiesce() only needs to be executed when the workload
> specifies zonedmode=zbd.

Applied, thanks.

-- 
Jens Axboe




[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