Re: [PATCH 1/6] block: add support for REQ_OP_VERIFY
From: "Darrick J. Wong" <djwong@kernel.org>
Date: 2022-07-05 17:57:48
Also in:
linux-block, linux-fsdevel, linux-nvme
From: "Darrick J. Wong" <djwong@kernel.org>
Date: 2022-07-05 17:57:48
Also in:
linux-block, linux-fsdevel, linux-nvme
On Tue, Jul 05, 2022 at 04:50:33PM +0000, Chaitanya Kulkarni wrote:
Darrik, Thanks for the reply.quoted
quoted
+ +/** + * __blkdev_issue_verify - generate number of verify operations + * @bdev: blockdev to issue + * @sector: start sector + * @nr_sects: number of sectors to verify + * @gfp_mask: memory allocation flags (for bio_alloc()) + * @biop: pointer to anchor bio + * + * Description: + * Verify a block range using hardware offload. + * + * The function will emulate verify operation if no explicit hardware + * offloading for verifying is provided. + */ +int __blkdev_issue_verify(struct block_device *bdev, sector_t sector, + sector_t nr_sects, gfp_t gfp_mask, struct bio **biop) +{ + unsigned int max_verify_sectors = bdev_verify_sectors(bdev); + sector_t min_io_sect = (BIO_MAX_VECS << PAGE_SHIFT) >> 9; + struct bio *bio = *biop; + sector_t curr_sects; + char *buf; + + if (!max_verify_sectors) { + int ret = 0; + + buf = kzalloc(min_io_sect << 9, GFP_KERNEL);k*z*alloc? I don't think you need to zero a buffer that we're reading into, right? --Dwe don't need to but I guess it is just a habit to make sure alloced buffer is zeored, should I remove it for any particular reason ?
What's the point in wasting CPU time zeroing a buffer if you're just going to DMA into it? --D
-ck