Lines Matching refs:raid_bdev

105 	struct raid_bdev *raid_bdev;  member
140 c < req->chunks + raid5f_ch_to_r5f_info(req->r5ch)->raid_bdev->num_base_bdevs
168 raid5f_stripe_data_chunks_num(const struct raid_bdev *raid_bdev) in raid5f_stripe_data_chunks_num() argument
170 return raid_bdev->min_base_bdevs_operational; in raid5f_stripe_data_chunks_num()
174 raid5f_stripe_parity_chunk_index(const struct raid_bdev *raid_bdev, uint64_t stripe_index) in raid5f_stripe_parity_chunk_index() argument
176 return raid5f_stripe_data_chunks_num(raid_bdev) - stripe_index % raid_bdev->num_base_bdevs; in raid5f_stripe_parity_chunk_index()
256 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_xor_stripe_continue() local
257 uint8_t n_src = raid5f_stripe_data_chunks_num(raid_bdev); in raid5f_xor_stripe_continue()
285 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_xor_stripe() local
294 num_blocks = raid_bdev->strip_size; in raid5f_xor_stripe()
316 raid_bdev->num_base_bdevs, in raid5f_xor_stripe()
320 stripe_req->xor.remaining = num_blocks * raid_bdev->bdev.blocklen; in raid5f_xor_stripe()
325 uint8_t n_src = raid5f_stripe_data_chunks_num(raid_bdev); in raid5f_xor_stripe()
326 uint64_t len = num_blocks * raid_bdev->bdev.md_len; in raid5f_xor_stripe()
429 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_chunk_submit() local
430 struct raid_base_bdev_info *base_info = &raid_bdev->base_bdev_info[chunk->index]; in raid5f_chunk_submit()
433 uint64_t base_offset_blocks = (stripe_req->stripe_index << raid_bdev->strip_size_shift); in raid5f_chunk_submit()
450 base_offset_blocks, raid_bdev->strip_size, in raid5f_chunk_submit()
485 base_bdev_io_not_submitted = raid_bdev->num_base_bdevs - in raid5f_chunk_submit()
488 base_bdev_io_not_submitted = raid5f_stripe_data_chunks_num(raid_bdev) - in raid5f_chunk_submit()
524 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_stripe_request_map_iovecs() local
525 struct raid5f_info *r5f_info = raid_bdev->module_private; in raid5f_stripe_request_map_iovecs()
534 uint64_t len = raid_bdev->strip_size * raid_bdev->bdev.blocklen; in raid5f_stripe_request_map_iovecs()
555 (raid_io_offset >> r5f_info->blocklen_shift) * raid_bdev->bdev.md_len; in raid5f_stripe_request_map_iovecs()
580 stripe_req->parity_chunk->iovs[0].iov_len = raid_bdev->strip_size * raid_bdev->bdev.blocklen; in raid5f_stripe_request_map_iovecs()
607 stripe_req->parity_chunk = &stripe_req->chunks[raid5f_stripe_parity_chunk_index(raid_io->raid_bdev, in raid5f_stripe_request_init()
627 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_submit_write_request() local
647 raid_io->base_bdev_io_remaining = raid_bdev->num_base_bdevs; in raid5f_submit_write_request()
709 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_submit_reconstruct_read() local
749 iov->iov_len = raid_io->num_blocks * raid_bdev->bdev.blocklen; in raid5f_submit_reconstruct_read()
761 raid_io->base_bdev_io_remaining = raid_bdev->num_base_bdevs; in raid5f_submit_reconstruct_read()
775 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_submit_read_request() local
776 uint8_t chunk_data_idx = stripe_offset >> raid_bdev->strip_size_shift; in raid5f_submit_read_request()
777 uint8_t p_idx = raid5f_stripe_parity_chunk_index(raid_bdev, stripe_index); in raid5f_submit_read_request()
779 struct raid_base_bdev_info *base_info = &raid_bdev->base_bdev_info[chunk_idx]; in raid5f_submit_read_request()
781 uint64_t chunk_offset = stripe_offset - (chunk_data_idx << raid_bdev->strip_size_shift); in raid5f_submit_read_request()
782 uint64_t base_offset_blocks = (stripe_index << raid_bdev->strip_size_shift) + chunk_offset; in raid5f_submit_read_request()
807 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_submit_rw_request() local
808 struct raid5f_info *r5f_info = raid_bdev->module_private; in raid5f_submit_rw_request()
815 assert(raid_io->num_blocks <= raid_bdev->strip_size); in raid5f_submit_rw_request()
848 struct raid_bdev *raid_bdev = r5f_info->raid_bdev; in raid5f_stripe_request_free() local
852 for (i = 0; i < raid5f_stripe_data_chunks_num(raid_bdev); i++) { in raid5f_stripe_request_free()
859 for (i = 0; i < raid5f_stripe_data_chunks_num(raid_bdev); i++) { in raid5f_stripe_request_free()
879 struct raid_bdev *raid_bdev = r5f_info->raid_bdev; in raid5f_stripe_request_alloc() local
880 uint32_t raid_io_md_size = raid_bdev->bdev.md_interleave ? 0 : raid_bdev->bdev.md_len; in raid5f_stripe_request_alloc()
885 stripe_req = calloc(1, sizeof(*stripe_req) + sizeof(*chunk) * raid_bdev->num_base_bdevs); in raid5f_stripe_request_alloc()
902 chunk_len = raid_bdev->strip_size * raid_bdev->bdev.blocklen; in raid5f_stripe_request_alloc()
911 stripe_req->write.parity_md_buf = spdk_dma_malloc(raid_bdev->strip_size * raid_io_md_size, in raid5f_stripe_request_alloc()
918 uint8_t n = raid5f_stripe_data_chunks_num(raid_bdev); in raid5f_stripe_request_alloc()
942 buf = spdk_dma_malloc(raid_bdev->strip_size * raid_io_md_size, r5f_info->buf_alignment, NULL); in raid5f_stripe_request_alloc()
954 stripe_req->chunk_iov_iters = malloc(SPDK_IOVITER_SIZE(raid_bdev->num_base_bdevs)); in raid5f_stripe_request_alloc()
959 stripe_req->chunk_xor_buffers = calloc(raid5f_stripe_data_chunks_num(raid_bdev), in raid5f_stripe_request_alloc()
965 stripe_req->chunk_xor_md_buffers = calloc(raid5f_stripe_data_chunks_num(raid_bdev), in raid5f_stripe_request_alloc()
1009 struct raid_bdev *raid_bdev = r5f_info->raid_bdev; in raid5f_ioch_create() local
1041 r5ch->chunk_xor_buffers = calloc(raid_bdev->num_base_bdevs, sizeof(*r5ch->chunk_xor_buffers)); in raid5f_ioch_create()
1046 r5ch->chunk_xor_iovs = calloc(raid_bdev->num_base_bdevs, sizeof(*r5ch->chunk_xor_iovs)); in raid5f_ioch_create()
1051 r5ch->chunk_xor_iovcnt = calloc(raid_bdev->num_base_bdevs, sizeof(*r5ch->chunk_xor_iovcnt)); in raid5f_ioch_create()
1064 raid5f_start(struct raid_bdev *raid_bdev) in raid5f_start() argument
1078 r5f_info->raid_bdev = raid_bdev; in raid5f_start()
1080 RAID_FOR_EACH_BASE_BDEV(raid_bdev, base_info) { in raid5f_start()
1088 base_bdev_data_size = (min_blockcnt / raid_bdev->strip_size) * raid_bdev->strip_size; in raid5f_start()
1090 RAID_FOR_EACH_BASE_BDEV(raid_bdev, base_info) { in raid5f_start()
1094 r5f_info->total_stripes = min_blockcnt / raid_bdev->strip_size; in raid5f_start()
1095 r5f_info->stripe_blocks = raid_bdev->strip_size * raid5f_stripe_data_chunks_num(raid_bdev); in raid5f_start()
1097 if (!raid_bdev->bdev.md_interleave) { in raid5f_start()
1098 r5f_info->blocklen_shift = spdk_u32log2(raid_bdev->bdev.blocklen); in raid5f_start()
1101 raid_bdev->bdev.blockcnt = r5f_info->stripe_blocks * r5f_info->total_stripes; in raid5f_start()
1102 raid_bdev->bdev.optimal_io_boundary = raid_bdev->strip_size; in raid5f_start()
1103 raid_bdev->bdev.split_on_optimal_io_boundary = true; in raid5f_start()
1104 raid_bdev->bdev.write_unit_size = r5f_info->stripe_blocks; in raid5f_start()
1105 raid_bdev->bdev.split_on_write_unit = true; in raid5f_start()
1107 raid_bdev->module_private = r5f_info; in raid5f_start()
1120 raid_bdev_module_stop_done(r5f_info->raid_bdev); in raid5f_io_device_unregister_done()
1126 raid5f_stop(struct raid_bdev *raid_bdev) in raid5f_stop() argument
1128 struct raid5f_info *r5f_info = raid_bdev->module_private; in raid5f_stop()
1136 raid5f_get_io_channel(struct raid_bdev *raid_bdev) in raid5f_get_io_channel() argument
1138 struct raid5f_info *r5f_info = raid_bdev->module_private; in raid5f_get_io_channel()
1167 struct raid_bdev *raid_bdev = raid_io->raid_bdev; in raid5f_process_submit_write() local
1168 struct raid5f_info *r5f_info = raid_bdev->module_private; in raid5f_process_submit_write()
1176 stripe_index << raid_bdev->strip_size_shift, raid_bdev->strip_size, in raid5f_process_submit_write()
1210 struct raid_bdev *raid_bdev = spdk_io_channel_get_io_device(ch); in raid5f_submit_process_request() local
1211 struct raid5f_info *r5f_info = raid_bdev->module_private; in raid5f_submit_process_request()
1224 process_req->offset_blocks, raid_bdev->strip_size, in raid5f_submit_process_request()