Re: [PATCH v3] block: Fix __blkdev_issue_zeroout loop

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

 



On 07/06/2017 05:21 AM, Damien Le Moal wrote:
> The BIO issuing loop in __blkdev_issue_zeroout() is allocating BIOs
> with a maximum number of bvec (pages) equal to
> 
> min(nr_sects, (sector_t)BIO_MAX_PAGES)
> 
> This works since the requested number of bvecs will always be limited
> to the absolute maximum number supported (BIO_MAX_PAGES), but this is
> ineficient as too many bvec entries may be requested due to the
> different units being used in the min() operation (number of sectors vs
> number of pages).
> To fix this, introduce the helper __blkdev_sectors_to_bio_pages() to
> correctly calculate the number of bvecs for zeroout BIOs as the issuing
> loop progresses. The calculation is done using consistent units and
> makes sure that the number of pages return is at least 1 (for cases
> where the number of sectors is less that the number of sectors in
> a page).
> 
> Also remove a trailing space after the bit shift in the internal loop
> min() call.

Thanks, added for 4.13.

-- 
Jens Axboe




[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