diff --git a/lib/bdev/raid/bdev_raid.c b/lib/bdev/raid/bdev_raid.c index 4e245d32f..a55aeb23e 100644 --- a/lib/bdev/raid/bdev_raid.c +++ b/lib/bdev/raid/bdev_raid.c @@ -196,7 +196,7 @@ raid_bdev_cleanup(struct raid_bdev *raid_bdev) * non zero - failure */ static void -raid_bdev_free_base_bdev_resource(struct raid_bdev *raid_bdev, uint32_t base_bdev_slot) +raid_bdev_free_base_bdev_resource(struct raid_bdev *raid_bdev, uint8_t base_bdev_slot) { struct raid_base_bdev_info *info; @@ -228,7 +228,7 @@ raid_bdev_destruct(void *ctxt) SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid_bdev_destruct\n"); raid_bdev->destruct_called = true; - for (uint16_t i = 0; i < raid_bdev->num_base_bdevs; i++) { + for (uint8_t i = 0; i < raid_bdev->num_base_bdevs; i++) { /* * Close all base bdev descriptors for which call has come from below * layers. Also close the descriptors if we have started shutdown. @@ -303,7 +303,7 @@ raid_bdev_submit_rw_request(struct spdk_bdev_io *bdev_io, uint64_t start_strip) uint32_t offset_in_strip; uint64_t pd_lba; uint64_t pd_blocks; - uint32_t pd_idx; + uint8_t pd_idx; int ret = 0; pd_strip = start_strip / raid_bdev->num_base_bdevs; @@ -606,14 +606,14 @@ struct raid_bdev_io_range { uint64_t end_strip_in_disk; uint64_t start_offset_in_strip; uint64_t end_offset_in_strip; - uint64_t start_disk; - uint64_t end_disk; - uint64_t n_disks_involved; + uint8_t start_disk; + uint8_t end_disk; + uint8_t n_disks_involved; }; static inline void _raid_bdev_get_io_range(struct raid_bdev_io_range *io_range, - uint64_t num_base_bdevs, uint64_t strip_size, uint64_t strip_size_shift, + uint8_t num_base_bdevs, uint64_t strip_size, uint64_t strip_size_shift, uint64_t offset_blocks, uint64_t num_blocks) { uint64_t start_strip; @@ -642,12 +642,11 @@ _raid_bdev_get_io_range(struct raid_bdev_io_range *io_range, * Number of base bdevs involved is between 1 and num_base_bdevs. * It will be 1 if the first strip and last strip are the same one. */ - io_range->n_disks_involved = (end_strip - start_strip + 1); - io_range->n_disks_involved = spdk_min(io_range->n_disks_involved, num_base_bdevs); + io_range->n_disks_involved = spdk_min((end_strip - start_strip + 1), num_base_bdevs); } static inline void -_raid_bdev_split_io_range(struct raid_bdev_io_range *io_range, uint64_t disk_idx, +_raid_bdev_split_io_range(struct raid_bdev_io_range *io_range, uint8_t disk_idx, uint64_t *_offset_in_disk, uint64_t *_nblocks_in_disk) { uint64_t n_strips_in_disk; @@ -688,7 +687,7 @@ _raid_bdev_split_io_range(struct raid_bdev_io_range *io_range, uint64_t disk_idx + end_offset_in_disk - start_offset_in_disk + 1; SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, - "raid_bdev (strip_size 0x%lx) splits IO to base_bdev (%lu) at (0x%lx, 0x%lx).\n", + "raid_bdev (strip_size 0x%lx) splits IO to base_bdev (%u) at (0x%lx, 0x%lx).\n", io_range->strip_size, disk_idx, offset_in_disk, nblocks_in_disk); *_offset_in_disk = offset_in_disk; @@ -727,7 +726,7 @@ _raid_bdev_submit_null_payload_request_next(void *_bdev_io) raid_io->base_bdev_io_expected = io_range.n_disks_involved; while (raid_io->base_bdev_io_submitted < raid_io->base_bdev_io_expected) { - uint64_t disk_idx; + uint8_t disk_idx; uint64_t offset_in_disk; uint64_t nblocks_in_disk; @@ -879,7 +878,7 @@ raid_bdev_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i inline static bool _raid_bdev_io_type_supported(struct raid_bdev *raid_bdev, enum spdk_bdev_io_type io_type) { - uint16_t i; + uint8_t i; for (i = 0; i < raid_bdev->num_base_bdevs; i++) { if (raid_bdev->base_bdev_info[i].bdev == NULL) { @@ -974,7 +973,7 @@ raid_bdev_dump_info_json(void *ctx, struct spdk_json_write_ctx *w) spdk_json_write_named_uint32(w, "num_base_bdevs_discovered", raid_bdev->num_base_bdevs_discovered); spdk_json_write_name(w, "base_bdevs_list"); spdk_json_write_array_begin(w); - for (uint16_t i = 0; i < raid_bdev->num_base_bdevs; i++) { + for (uint8_t i = 0; i < raid_bdev->num_base_bdevs; i++) { if (raid_bdev->base_bdev_info[i].bdev) { spdk_json_write_string(w, raid_bdev->base_bdev_info[i].bdev->name); } else { @@ -1001,7 +1000,7 @@ raid_bdev_write_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ctx * { struct raid_bdev *raid_bdev = bdev->ctxt; struct spdk_bdev *base; - uint16_t i; + uint8_t i; spdk_json_write_object_begin(w); @@ -1046,7 +1045,7 @@ static const struct spdk_bdev_fn_table g_raid_bdev_fn_table = { void raid_bdev_config_cleanup(struct raid_bdev_config *raid_cfg) { - uint32_t i; + uint8_t i; TAILQ_REMOVE(&g_raid_config.raid_bdev_config_head, raid_cfg, link); g_raid_config.total_raid_bdev--; @@ -1184,9 +1183,9 @@ raid_bdev_config_add(const char *raid_name, uint32_t strip_size, uint8_t num_bas */ int raid_bdev_config_add_base_bdev(struct raid_bdev_config *raid_cfg, const char *base_bdev_name, - uint32_t slot) + uint8_t slot) { - uint32_t i; + uint8_t i; struct raid_bdev_config *tmp; if (slot >= raid_cfg->num_base_bdevs) { @@ -1416,7 +1415,7 @@ raid_bdev_get_running_config(FILE *fp) struct raid_bdev *raid_bdev; struct spdk_bdev *base; int index = 1; - uint16_t i; + uint8_t i; TAILQ_FOREACH(raid_bdev, &g_raid_bdev_configured_list, state_link) { fprintf(fp, @@ -1424,7 +1423,7 @@ raid_bdev_get_running_config(FILE *fp) "[RAID%d]\n" " Name %s\n" " StripSize %" PRIu32 "\n" - " NumDevices %hu\n" + " NumDevices %u\n" " RaidLevel %hhu\n", index, raid_bdev->bdev.name, raid_bdev->strip_size_kb, raid_bdev->num_base_bdevs, raid_bdev->raid_level); @@ -1459,10 +1458,10 @@ raid_bdev_get_running_config(FILE *fp) */ static bool raid_bdev_can_claim_bdev(const char *bdev_name, struct raid_bdev_config **_raid_cfg, - uint32_t *base_bdev_slot) + uint8_t *base_bdev_slot) { struct raid_bdev_config *raid_cfg; - uint32_t i; + uint8_t i; TAILQ_FOREACH(raid_cfg, &g_raid_config.raid_bdev_config_head, link) { for (i = 0; i < raid_cfg->num_base_bdevs; i++) { @@ -1599,7 +1598,7 @@ raid_bdev_create(struct raid_bdev_config *raid_cfg) */ static int raid_bdev_alloc_base_bdev_resource(struct raid_bdev *raid_bdev, struct spdk_bdev *bdev, - uint32_t base_bdev_slot) + uint8_t base_bdev_slot) { struct spdk_bdev_desc *desc; int rc; @@ -1651,7 +1650,7 @@ raid_bdev_configure(struct raid_bdev *raid_bdev) blocklen = raid_bdev->base_bdev_info[0].bdev->blocklen; min_blockcnt = raid_bdev->base_bdev_info[0].bdev->blockcnt; - for (uint32_t i = 1; i < raid_bdev->num_base_bdevs; i++) { + for (uint8_t i = 1; i < raid_bdev->num_base_bdevs; i++) { /* Calculate minimum block count from all base bdevs */ if (raid_bdev->base_bdev_info[i].bdev->blockcnt < min_blockcnt) { min_blockcnt = raid_bdev->base_bdev_info[i].bdev->blockcnt; @@ -1768,10 +1767,10 @@ raid_bdev_deconfigure(struct raid_bdev *raid_bdev, raid_bdev_destruct_cb cb_fn, */ static bool raid_bdev_find_by_base_bdev(struct spdk_bdev *base_bdev, struct raid_bdev **_raid_bdev, - uint16_t *_base_bdev_slot) + uint8_t *_base_bdev_slot) { struct raid_bdev *raid_bdev; - uint16_t i; + uint8_t i; TAILQ_FOREACH(raid_bdev, &g_raid_bdev_list, global_link) { for (i = 0; i < raid_bdev->num_base_bdevs; i++) { @@ -1801,7 +1800,7 @@ raid_bdev_remove_base_bdev(void *ctx) { struct spdk_bdev *base_bdev = ctx; struct raid_bdev *raid_bdev = NULL; - uint16_t base_bdev_slot = 0; + uint8_t base_bdev_slot = 0; SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid_bdev_remove_base_bdev\n"); @@ -1916,7 +1915,7 @@ raid_bdev_remove_base_devices(struct raid_bdev_config *raid_cfg, */ static int raid_bdev_add_base_device(struct raid_bdev_config *raid_cfg, struct spdk_bdev *bdev, - uint32_t base_bdev_slot) + uint8_t base_bdev_slot) { struct raid_bdev *raid_bdev; int rc; @@ -2003,7 +2002,7 @@ static void raid_bdev_examine(struct spdk_bdev *bdev) { struct raid_bdev_config *raid_cfg; - uint32_t base_bdev_slot; + uint8_t base_bdev_slot; if (raid_bdev_can_claim_bdev(bdev->name, &raid_cfg, &base_bdev_slot)) { raid_bdev_add_base_device(raid_cfg, bdev, base_bdev_slot); diff --git a/lib/bdev/raid/bdev_raid.h b/lib/bdev/raid/bdev_raid.h index bce767842..08117b16a 100644 --- a/lib/bdev/raid/bdev_raid.h +++ b/lib/bdev/raid/bdev_raid.h @@ -87,49 +87,49 @@ struct raid_base_bdev_info { */ struct raid_bdev { /* raid bdev device, this will get registered in bdev layer */ - struct spdk_bdev bdev; + struct spdk_bdev bdev; /* link of raid bdev to link it to configured, configuring or offline list */ - TAILQ_ENTRY(raid_bdev) state_link; + TAILQ_ENTRY(raid_bdev) state_link; /* link of raid bdev to link it to global raid bdev list */ - TAILQ_ENTRY(raid_bdev) global_link; + TAILQ_ENTRY(raid_bdev) global_link; /* pointer to config file entry */ - struct raid_bdev_config *config; + struct raid_bdev_config *config; /* array of base bdev info */ - struct raid_base_bdev_info *base_bdev_info; + struct raid_base_bdev_info *base_bdev_info; /* strip size of raid bdev in blocks */ - uint32_t strip_size; + uint32_t strip_size; /* strip size of raid bdev in KB */ - uint32_t strip_size_kb; + uint32_t strip_size_kb; /* strip size bit shift for optimized calculation */ - uint32_t strip_size_shift; + uint32_t strip_size_shift; /* block length bit shift for optimized calculation */ - uint32_t blocklen_shift; + uint32_t blocklen_shift; /* state of raid bdev */ - enum raid_bdev_state state; + enum raid_bdev_state state; /* number of base bdevs comprising raid bdev */ - uint16_t num_base_bdevs; + uint8_t num_base_bdevs; /* number of base bdevs discovered */ - uint16_t num_base_bdevs_discovered; + uint8_t num_base_bdevs_discovered; /* Raid Level of this raid bdev */ - uint8_t raid_level; + uint8_t raid_level; /* Set to true if destruct is called for this raid bdev */ - bool destruct_called; + bool destruct_called; /* Set to true if destroy of this raid bdev is started. */ - bool destroy_started; + bool destroy_started; }; /* @@ -229,7 +229,7 @@ void raid_bdev_remove_base_devices(struct raid_bdev_config *raid_cfg, int raid_bdev_config_add(const char *raid_name, uint32_t strip_size, uint8_t num_base_bdevs, uint8_t raid_level, struct raid_bdev_config **_raid_cfg); int raid_bdev_config_add_base_bdev(struct raid_bdev_config *raid_cfg, - const char *base_bdev_name, uint32_t slot); + const char *base_bdev_name, uint8_t slot); void raid_bdev_config_cleanup(struct raid_bdev_config *raid_cfg); struct raid_bdev_config *raid_bdev_config_find_by_name(const char *raid_name); diff --git a/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c b/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c index e720c57f3..a64b8a1da 100644 --- a/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c +++ b/test/unit/lib/bdev/bdev_raid.c/bdev_raid_ut.c @@ -209,7 +209,7 @@ check_and_remove_raid_bdev(struct raid_bdev_config *raid_cfg) return; } - for (uint32_t i = 0; i < raid_bdev->num_base_bdevs; i++) { + for (uint8_t i = 0; i < raid_bdev->num_base_bdevs; i++) { assert(raid_bdev->base_bdev_info != NULL); if (raid_bdev->base_bdev_info[i].bdev) { raid_bdev_free_base_bdev_resource(raid_bdev, i); @@ -642,7 +642,7 @@ static void verify_reset_io(struct spdk_bdev_io *bdev_io, uint8_t num_base_drives, struct raid_bdev_io_channel *ch_ctx, struct raid_bdev *raid_bdev, uint32_t io_status) { - uint32_t index = 0; + uint8_t index = 0; SPDK_CU_ASSERT_FATAL(raid_bdev != NULL); SPDK_CU_ASSERT_FATAL(num_base_drives != 0); @@ -669,7 +669,7 @@ verify_io(struct spdk_bdev_io *bdev_io, uint8_t num_base_drives, uint32_t splits_reqd = (end_strip - start_strip + 1); uint32_t strip; uint64_t pd_strip; - uint64_t pd_idx; + uint8_t pd_idx; uint32_t offset_in_strip; uint64_t pd_lba; uint64_t pd_blocks; @@ -724,12 +724,12 @@ verify_io_without_payload(struct spdk_bdev_io *bdev_io, uint8_t num_base_drives, uint64_t start_strip = bdev_io->u.bdev.offset_blocks >> strip_shift; uint64_t end_strip = (bdev_io->u.bdev.offset_blocks + bdev_io->u.bdev.num_blocks - 1) >> strip_shift; - uint32_t n_disks_involved; + uint8_t n_disks_involved; uint64_t start_strip_disk_idx; uint64_t end_strip_disk_idx; uint64_t nblocks_in_start_disk; uint64_t offset_in_start_disk; - uint32_t disk_idx; + uint8_t disk_idx; uint64_t base_io_idx; uint64_t sum_nblocks = 0; @@ -866,7 +866,7 @@ static void verify_raid_config(struct rpc_construct_raid_bdev *r, bool presence) { struct raid_bdev_config *raid_cfg = NULL; - uint32_t i; + uint8_t i; int val; TAILQ_FOREACH(raid_cfg, &g_raid_config.raid_bdev_config_head, link) { @@ -899,7 +899,7 @@ static void verify_raid_bdev(struct rpc_construct_raid_bdev *r, bool presence, uint32_t raid_state) { struct raid_bdev *pbdev; - uint32_t i; + uint8_t i; struct spdk_bdev *bdev = NULL; bool pbdev_found; uint64_t min_blockcnt = 0xFFFFFFFFFFFFFFFF; @@ -1029,7 +1029,7 @@ verify_get_raids(struct rpc_construct_raid_bdev *construct_req, uint8_t g_max_raids, char **g_get_raids_output, uint32_t g_get_raids_count) { - uint32_t i, j; + uint8_t i, j; bool found; CU_ASSERT(g_max_raids == g_get_raids_count); @@ -1050,7 +1050,7 @@ verify_get_raids(struct rpc_construct_raid_bdev *construct_req, static void create_base_bdevs(uint32_t bbdev_start_idx) { - uint32_t i; + uint8_t i; struct spdk_bdev *base_bdev; char name[16]; uint16_t num_chars; @@ -1069,13 +1069,13 @@ create_base_bdevs(uint32_t bbdev_start_idx) } static void -create_test_req(struct rpc_construct_raid_bdev *r, const char *raid_name, uint32_t bbdev_start_idx, +create_test_req(struct rpc_construct_raid_bdev *r, const char *raid_name, uint8_t bbdev_start_idx, bool create_base_bdev) { - uint32_t i; + uint8_t i; char name[16]; uint16_t num_chars; - uint32_t bbdev_idx = bbdev_start_idx; + uint8_t bbdev_idx = bbdev_start_idx; r->name = strdup(raid_name); SPDK_CU_ASSERT_FATAL(r->name != NULL); @@ -1363,7 +1363,7 @@ test_io_channel(void) struct rpc_destroy_raid_bdev destroy_req; struct raid_bdev *pbdev; struct raid_bdev_io_channel *ch_ctx; - uint32_t i; + uint8_t i; set_globals(); create_test_req(&req, "raid1", 0, true); @@ -1421,7 +1421,7 @@ test_write_io(void) struct raid_bdev *pbdev; struct spdk_io_channel *ch; struct raid_bdev_io_channel *ch_ctx; - uint32_t i; + uint8_t i; struct spdk_bdev_io *bdev_io; uint64_t io_len; uint64_t lba = 0; @@ -1498,7 +1498,7 @@ test_read_io(void) struct raid_bdev *pbdev; struct spdk_io_channel *ch; struct raid_bdev_io_channel *ch_ctx; - uint32_t i; + uint8_t i; struct spdk_bdev_io *bdev_io; uint64_t io_len; uint64_t lba; @@ -1650,7 +1650,7 @@ test_unmap_io(void) struct raid_bdev *pbdev; struct spdk_io_channel *ch; struct raid_bdev_io_channel *ch_ctx; - uint32_t i; + uint8_t i; struct spdk_bdev_io *bdev_io; uint32_t count; uint64_t io_len; @@ -1732,7 +1732,7 @@ test_io_failure(void) struct raid_bdev *pbdev; struct spdk_io_channel *ch; struct raid_bdev_io_channel *ch_ctx; - uint32_t i; + uint8_t i; struct spdk_bdev_io *bdev_io; uint32_t count; uint64_t io_len; @@ -1829,7 +1829,7 @@ test_reset_io(void) struct raid_bdev *pbdev; struct spdk_io_channel *ch; struct raid_bdev_io_channel *ch_ctx; - uint32_t i; + uint8_t i; struct spdk_bdev_io *bdev_io; set_globals(); @@ -1905,7 +1905,7 @@ test_io_waitq(void) struct raid_bdev *pbdev; struct spdk_io_channel *ch; struct raid_bdev_io_channel *ch_ctx; - uint32_t i; + uint8_t i; struct spdk_bdev_io *bdev_io; struct spdk_bdev_io *bdev_io_next; uint32_t count; @@ -1994,10 +1994,10 @@ test_multi_raid_no_io(void) struct rpc_construct_raid_bdev *construct_req; struct rpc_destroy_raid_bdev destroy_req; struct rpc_get_raid_bdevs get_raids_req; - uint32_t i; + uint8_t i; char name[16]; uint32_t count; - uint32_t bbdev_idx = 0; + uint8_t bbdev_idx = 0; set_globals(); construct_req = calloc(MAX_RAIDS, sizeof(struct rpc_construct_raid_bdev)); @@ -2129,10 +2129,10 @@ test_multi_raid_with_io(void) { struct rpc_construct_raid_bdev *construct_req; struct rpc_destroy_raid_bdev destroy_req; - uint32_t i, j; + uint8_t i, j; char name[16]; uint32_t count; - uint32_t bbdev_idx = 0; + uint8_t bbdev_idx = 0; struct raid_bdev *pbdev; struct spdk_io_channel *ch; struct raid_bdev_io_channel *ch_ctx; @@ -2251,7 +2251,7 @@ test_create_raid_from_config(void) struct rpc_destroy_raid_bdev destroy_req; bool can_claim; struct raid_bdev_config *raid_cfg; - uint32_t base_bdev_slot; + uint8_t base_bdev_slot; set_globals(); create_test_req(&req, "raid1", 0, true);