Re: [PATCH v2 4/9] null_blk: improve zone locking

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

 



On 11/11/2020 06:17, Damien Le Moal wrote:
> With memory backing disabled, using a single spinlock for protecting
> zone information and zone resource management prevent the parallel
> execution on multiple queue of IO requests to different zones.
> Furthermore, regardless of the use of memory backing, if a null_blk
> device is created without limits on the number of opn and active zone                                              open ~^        zones ~^

> accounting for zone resource management is not necessary.
> 
> From these observations, zone locking is changed as follow to improve
                                             follows? ~^
> performance:
> 1) the zone_lock spinlock is renamed zone_res_lock and used only if zone
>    resource management is necessary, that is, if either zone_max_open or
>    zone_max_active are not 0. This is indicated using the new boolean
>    need_zone_res_mgmt in the nullb_device structure. null_zone_write()
>    is modified to reduce the amount of code executed with the
>    zone_res_lock spinlock held. null_zone_valid_read_len() is also
>    modified to avoid taking the zone lock before calling
>    null_process_cmd() for read operations in null_process_zoned_cmd().
> 2) With memory backing disabled, per zone locking is changed to a
>    spinlock per zone.
> 
> With these changes, fio performance with zonemode=zbd for 4K random
> read and random write on a dual socket (24 cores per socket) machine
> using the none schedulder is as follows:         scheduler ~^

> 
> before patch:
> 	write (psync x 96 jobs) = 465 KIOPS
> 	read (libaio@qd=8 x 96 jobs) = 1361 KIOPS
> after patch:
> 	write (psync x 96 jobs) = 468 KIOPS
> 	read (libaio@qd=8 x 96 jobs) = 3340 KIOPS
> 
> Write performance remains mostly unchanged but read performance more
> than double. Performance when using the mq-deadline scheduler is not
doubles ~^




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux