From 0ca0ea1343d9c13f3fdf0124c7437e9d3b7c136f Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Tue, 30 Jul 2019 09:19:19 +0200 Subject: [PATCH 1/7] Remove ocf_metadata_line_size_is_valid() This function is no longer used. Signed-off-by: Robert Baldyga --- src/metadata/metadata.h | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/src/metadata/metadata.h b/src/metadata/metadata.h index 1ac452c..7893fed 100644 --- a/src/metadata/metadata.h +++ b/src/metadata/metadata.h @@ -207,24 +207,4 @@ typedef void (*ocf_metadata_load_properties_end_t)(void *priv, int error, void ocf_metadata_load_properties(ocf_volume_t volume, ocf_metadata_load_properties_end_t cmpl, void *priv); -/** - * @brief Validate cache line size - * - * @param size Cache line size - * @return true - cache line size is valid, false - cache line is invalid - */ -static inline bool ocf_metadata_line_size_is_valid(uint32_t size) -{ - switch (size) { - case 4 * KiB: - case 8 * KiB: - case 16 * KiB: - case 32 * KiB: - case 64 * KiB: - return true; - default: - return false; - } -} - #endif /* METADATA_H_ */ From 0b0546302f8cc0958d65c2d20a12d425a65ffaa8 Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Thu, 1 Aug 2019 16:50:15 +0200 Subject: [PATCH 2/7] Remove ocf_metadata_get_core_sector() Signed-off-by: Robert Baldyga --- src/metadata/metadata_core.h | 6 ------ src/metadata/metadata_hash.c | 19 ------------------- src/metadata/metadata_structs.h | 3 --- 3 files changed, 28 deletions(-) diff --git a/src/metadata/metadata_core.h b/src/metadata/metadata_core.h index ca1dac2..0004591 100644 --- a/src/metadata/metadata_core.h +++ b/src/metadata/metadata_core.h @@ -36,12 +36,6 @@ static inline ocf_core_id_t ocf_metadata_get_core_id( return cache->metadata.iface.get_core_id(cache, line); } -static inline uint64_t ocf_metadata_get_core_sector( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - return cache->metadata.iface.get_core_sector(cache, line); -} - static inline struct ocf_metadata_uuid *ocf_metadata_get_core_uuid( struct ocf_cache *cache, ocf_core_id_t core_id) { diff --git a/src/metadata/metadata_hash.c b/src/metadata/metadata_hash.c index 41dfe22..23f3fb2 100644 --- a/src/metadata/metadata_hash.c +++ b/src/metadata/metadata_hash.c @@ -2253,24 +2253,6 @@ static ocf_core_id_t ocf_metadata_hash_get_core_id( return OCF_CORE_MAX; } -static uint64_t ocf_metadata_hash_get_core_sector( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - const struct ocf_metadata_map *collision; - struct ocf_metadata_hash_ctrl *ctrl = - (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - - collision = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_collision]), line, - ctrl->mapping_size); - - if (collision) - return collision->core_line; - - ocf_metadata_error(cache); - return ULLONG_MAX; -} - static struct ocf_metadata_uuid *ocf_metadata_hash_get_core_uuid( struct ocf_cache *cache, ocf_core_id_t core_id) { @@ -2844,7 +2826,6 @@ static const struct ocf_metadata_iface metadata_hash_iface = { .set_core_info = ocf_metadata_hash_set_core_info, .get_core_info = ocf_metadata_hash_get_core_info, .get_core_id = ocf_metadata_hash_get_core_id, - .get_core_sector = ocf_metadata_hash_get_core_sector, .get_core_uuid = ocf_metadata_hash_get_core_uuid, /* diff --git a/src/metadata/metadata_structs.h b/src/metadata/metadata_structs.h index 7b4b619..6d76f90 100644 --- a/src/metadata/metadata_structs.h +++ b/src/metadata/metadata_structs.h @@ -340,9 +340,6 @@ struct ocf_metadata_iface { ocf_core_id_t (*get_core_id)(struct ocf_cache *cache, ocf_cache_line_t line); - uint64_t (*get_core_sector)(struct ocf_cache *cache, - ocf_cache_line_t line); - void (*get_core_and_part_id)(struct ocf_cache *cache, ocf_cache_line_t line, ocf_core_id_t *core_id, ocf_part_id_t *part_id); From 3108f36e42d9e571431ee2b0b97a66a9e4b3c4a6 Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Thu, 1 Aug 2019 16:58:17 +0200 Subject: [PATCH 3/7] Simplify collision matadata interface Signed-off-by: Robert Baldyga --- src/metadata/metadata_collision.h | 24 +++++++++++++-------- src/metadata/metadata_hash.c | 36 ------------------------------- src/metadata/metadata_structs.h | 6 ------ 3 files changed, 15 insertions(+), 51 deletions(-) diff --git a/src/metadata/metadata_collision.h b/src/metadata/metadata_collision.h index 7eb8bef..05e6664 100644 --- a/src/metadata/metadata_collision.h +++ b/src/metadata/metadata_collision.h @@ -59,13 +59,6 @@ static inline void ocf_metadata_set_collision_info( cache->metadata.iface.set_collision_info(cache, line, next, prev); } -static inline void ocf_metadata_get_collision_info( - struct ocf_cache *cache, ocf_cache_line_t line, - ocf_cache_line_t *next, ocf_cache_line_t *prev) -{ - cache->metadata.iface.get_collision_info(cache, line, next, prev); -} - static inline void ocf_metadata_set_collision_next( struct ocf_cache *cache, ocf_cache_line_t line, ocf_cache_line_t next) @@ -80,16 +73,29 @@ static inline void ocf_metadata_set_collision_prev( cache->metadata.iface.set_collision_prev(cache, line, prev); } +static inline void ocf_metadata_get_collision_info( + struct ocf_cache *cache, ocf_cache_line_t line, + ocf_cache_line_t *next, ocf_cache_line_t *prev) +{ + cache->metadata.iface.get_collision_info(cache, line, next, prev); +} + static inline ocf_cache_line_t ocf_metadata_get_collision_next( struct ocf_cache *cache, ocf_cache_line_t line) { - return cache->metadata.iface.get_collision_next(cache, line); + ocf_cache_line_t next; + + ocf_metadata_get_collision_info(cache, line, &next, NULL); + return next; } static inline ocf_cache_line_t ocf_metadata_get_collision_prev( struct ocf_cache *cache, ocf_cache_line_t line) { - return cache->metadata.iface.get_collision_prev(cache, line); + ocf_cache_line_t prev; + + ocf_metadata_get_collision_info(cache, line, NULL, &prev); + return prev; } void ocf_metadata_add_to_collision(struct ocf_cache *cache, diff --git a/src/metadata/metadata_hash.c b/src/metadata/metadata_hash.c index 23f3fb2..e036013 100644 --- a/src/metadata/metadata_hash.c +++ b/src/metadata/metadata_hash.c @@ -2601,40 +2601,6 @@ static void ocf_metadata_hash_get_collision_info( } } -static ocf_cache_line_t ocf_metadata_hash_get_collision_next( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - const struct ocf_metadata_list_info *info; - struct ocf_metadata_hash_ctrl *ctrl = - (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - - info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); - if (info) - return info->next_col; - - ocf_metadata_error(cache); - return cache->device->collision_table_entries; -} - -static ocf_cache_line_t ocf_metadata_hash_get_collision_prev( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - const struct ocf_metadata_list_info *info; - struct ocf_metadata_hash_ctrl *ctrl = - (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - - info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); - if (info) - return info->prev_col; - - ocf_metadata_error(cache); - return cache->device->collision_table_entries; -} - /******************************************************************************* * Partition ******************************************************************************/ @@ -2841,8 +2807,6 @@ static const struct ocf_metadata_iface metadata_hash_iface = { .set_collision_info = ocf_metadata_hash_set_collision_info, .set_collision_next = ocf_metadata_hash_set_collision_next, .set_collision_prev = ocf_metadata_hash_set_collision_prev, - .get_collision_next = ocf_metadata_hash_get_collision_next, - .get_collision_prev = ocf_metadata_hash_get_collision_prev, /* * Partition Info diff --git a/src/metadata/metadata_structs.h b/src/metadata/metadata_structs.h index 6d76f90..faabcf1 100644 --- a/src/metadata/metadata_structs.h +++ b/src/metadata/metadata_structs.h @@ -361,12 +361,6 @@ struct ocf_metadata_iface { void (*set_collision_prev)(struct ocf_cache *cache, ocf_cache_line_t line, ocf_cache_line_t prev); - ocf_cache_line_t (*get_collision_next)(struct ocf_cache *cache, - ocf_cache_line_t line); - - ocf_cache_line_t (*get_collision_prev)(struct ocf_cache *cache, - ocf_cache_line_t line); - ocf_part_id_t (*get_partition_id)(struct ocf_cache *cache, ocf_cache_line_t line); From ff7583c6da6a30677bc62fd6a15950537cc8096f Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Sat, 3 Aug 2019 18:52:34 +0200 Subject: [PATCH 4/7] Simplify partition metadata interface Signed-off-by: Robert Baldyga --- src/metadata/metadata_hash.c | 57 ------------------------------- src/metadata/metadata_partition.h | 48 ++++++++++++++++---------- src/metadata/metadata_structs.h | 9 ----- 3 files changed, 30 insertions(+), 84 deletions(-) diff --git a/src/metadata/metadata_hash.c b/src/metadata/metadata_hash.c index e036013..8702dc4 100644 --- a/src/metadata/metadata_hash.c +++ b/src/metadata/metadata_hash.c @@ -2605,60 +2605,6 @@ static void ocf_metadata_hash_get_collision_info( * Partition ******************************************************************************/ -static ocf_part_id_t ocf_metadata_hash_get_partition_id( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - const struct ocf_metadata_list_info *info; - struct ocf_metadata_hash_ctrl *ctrl = - (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - - info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); - - if (info) - return info->partition_id; - - ocf_metadata_error(cache); - return PARTITION_DEFAULT; -} - -static ocf_cache_line_t ocf_metadata_hash_get_partition_next( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - const struct ocf_metadata_list_info *info; - struct ocf_metadata_hash_ctrl *ctrl = - (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - - info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); - - if (info) - return info->partition_next; - - ocf_metadata_error(cache); - return PARTITION_DEFAULT; -} - -static ocf_cache_line_t ocf_metadata_hash_get_partition_prev( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - const struct ocf_metadata_list_info *info; - struct ocf_metadata_hash_ctrl *ctrl = - (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - - info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); - - if (info) - return info->partition_prev; - - ocf_metadata_error(cache); - return PARTITION_DEFAULT; -} - static void ocf_metadata_hash_get_partition_info( struct ocf_cache *cache, ocf_cache_line_t line, ocf_part_id_t *part_id, ocf_cache_line_t *next_line, @@ -2811,9 +2757,6 @@ static const struct ocf_metadata_iface metadata_hash_iface = { /* * Partition Info */ - .get_partition_id = ocf_metadata_hash_get_partition_id, - .get_partition_next = ocf_metadata_hash_get_partition_next, - .get_partition_prev = ocf_metadata_hash_get_partition_prev, .get_partition_info = ocf_metadata_hash_get_partition_info, .set_partition_next = ocf_metadata_hash_set_partition_next, .set_partition_prev = ocf_metadata_hash_set_partition_prev, diff --git a/src/metadata/metadata_partition.h b/src/metadata/metadata_partition.h index 73d1c26..8aee83f 100644 --- a/src/metadata/metadata_partition.h +++ b/src/metadata/metadata_partition.h @@ -13,24 +13,6 @@ #define PARTITION_INVALID ((ocf_part_id_t)-1) #define PARTITION_SIZE_MAX ((ocf_cache_line_t)-1) -static inline ocf_part_id_t ocf_metadata_get_partition_id( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - return cache->metadata.iface.get_partition_id(cache, line); -} - -static inline ocf_cache_line_t ocf_metadata_get_partition_next( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - return cache->metadata.iface.get_partition_next(cache, line); -} - -static inline ocf_cache_line_t ocf_metadata_get_partition_prev( - struct ocf_cache *cache, ocf_cache_line_t line) -{ - return cache->metadata.iface.get_partition_prev(cache, line); -} - static inline void ocf_metadata_get_partition_info( struct ocf_cache *cache, ocf_cache_line_t line, ocf_part_id_t *part_id, ocf_cache_line_t *next_line, @@ -40,6 +22,36 @@ static inline void ocf_metadata_get_partition_info( next_line, prev_line); } +static inline ocf_part_id_t ocf_metadata_get_partition_id( + struct ocf_cache *cache, ocf_cache_line_t line) +{ + ocf_part_id_t part_id; + + ocf_metadata_get_partition_info(cache, line, &part_id, NULL, NULL); + + return part_id; +} + +static inline ocf_cache_line_t ocf_metadata_get_partition_next( + struct ocf_cache *cache, ocf_cache_line_t line) +{ + ocf_cache_line_t next; + + ocf_metadata_get_partition_info(cache, line, NULL, &next, NULL); + + return next; +} + +static inline ocf_cache_line_t ocf_metadata_get_partition_prev( + struct ocf_cache *cache, ocf_cache_line_t line) +{ + ocf_cache_line_t prev; + + ocf_metadata_get_partition_info(cache, line, NULL, NULL, &prev); + + return prev; +} + static inline void ocf_metadata_set_partition_next( struct ocf_cache *cache, ocf_cache_line_t line, ocf_cache_line_t next_line) diff --git a/src/metadata/metadata_structs.h b/src/metadata/metadata_structs.h index faabcf1..09c78fd 100644 --- a/src/metadata/metadata_structs.h +++ b/src/metadata/metadata_structs.h @@ -361,15 +361,6 @@ struct ocf_metadata_iface { void (*set_collision_prev)(struct ocf_cache *cache, ocf_cache_line_t line, ocf_cache_line_t prev); - ocf_part_id_t (*get_partition_id)(struct ocf_cache *cache, - ocf_cache_line_t line); - - ocf_cache_line_t (*get_partition_next)(struct ocf_cache *cache, - ocf_cache_line_t line); - - ocf_cache_line_t (*get_partition_prev)(struct ocf_cache *cache, - ocf_cache_line_t line); - void (*get_partition_info)(struct ocf_cache *cache, ocf_cache_line_t line, ocf_part_id_t *part_id, ocf_cache_line_t *next_line, From a31ddd44cb23dee878d0ab301be45b3b10ea536d Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Thu, 1 Aug 2019 17:00:24 +0200 Subject: [PATCH 5/7] Remove ocf_metadata_hash_entries_hash() Signed-off-by: Robert Baldyga --- src/metadata/metadata_hash.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/metadata/metadata_hash.c b/src/metadata/metadata_hash.c index 8702dc4..12bad97 100644 --- a/src/metadata/metadata_hash.c +++ b/src/metadata/metadata_hash.c @@ -2347,18 +2347,6 @@ static void ocf_metadata_hash_set_hash(struct ocf_cache *cache, ocf_metadata_error(cache); } -/* - * Hash Table - Get Entries - */ -static ocf_cache_line_t ocf_metadata_hash_entries_hash( - struct ocf_cache *cache) -{ - struct ocf_metadata_hash_ctrl *ctrl - = (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - - return ctrl->raw_desc[metadata_segment_hash].entries; -} - /******************************************************************************* * Cleaning Policy ******************************************************************************/ @@ -2767,7 +2755,6 @@ static const struct ocf_metadata_iface metadata_hash_iface = { */ .get_hash = ocf_metadata_hash_get_hash, .set_hash = ocf_metadata_hash_set_hash, - .entries_hash = ocf_metadata_hash_entries_hash, /* * Cleaning Policy From 4b1a3fa4b570e7346f26acdd8d3f7dc88fedf9c5 Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Sat, 3 Aug 2019 20:02:03 +0200 Subject: [PATCH 6/7] Simplify metadata_raw interface Signed-off-by: Robert Baldyga --- src/metadata/metadata_bit.h | 12 ++--- src/metadata/metadata_hash.c | 56 +++++++++-------------- src/metadata/metadata_raw.c | 51 +++++++-------------- src/metadata/metadata_raw.h | 69 ++++++++++------------------- src/metadata/metadata_raw_dynamic.c | 47 +++++++------------- src/metadata/metadata_raw_dynamic.h | 22 +++------ 6 files changed, 89 insertions(+), 168 deletions(-) diff --git a/src/metadata/metadata_bit.h b/src/metadata/metadata_bit.h index b54d040..0d56111 100644 --- a/src/metadata/metadata_bit.h +++ b/src/metadata/metadata_bit.h @@ -65,7 +65,7 @@ static bool _ocf_metadata_test_##what##_##type(struct ocf_cache *cache, \ \ const struct ocf_metadata_map_##type *map = raw->mem_pool; \ \ - _raw_bug_on(raw, line, sizeof(*map)); \ + _raw_bug_on(raw, line); \ \ if (all) { \ if (mask == (map[line].what & mask)) { \ @@ -95,7 +95,7 @@ static bool _ocf_metadata_test_out_##what##_##type(struct ocf_cache *cache, \ \ const struct ocf_metadata_map_##type *map = raw->mem_pool; \ \ - _raw_bug_on(raw, line, sizeof(*map)); \ + _raw_bug_on(raw, line); \ \ if (map[line].what & ~mask) { \ return true; \ @@ -117,7 +117,7 @@ static bool _ocf_metadata_clear_##what##_##type(struct ocf_cache *cache, \ \ struct ocf_metadata_map_##type *map = raw->mem_pool; \ \ - _raw_bug_on(raw, line, sizeof(*map)); \ + _raw_bug_on(raw, line); \ \ map[line].what &= ~mask; \ \ @@ -142,7 +142,7 @@ static bool _ocf_metadata_set_##what##_##type(struct ocf_cache *cache, \ \ struct ocf_metadata_map_##type *map = raw->mem_pool; \ \ - _raw_bug_on(raw, line, sizeof(*map)); \ + _raw_bug_on(raw, line); \ \ result = map[line].what ? true : false; \ \ @@ -166,7 +166,7 @@ static bool _ocf_metadata_test_and_set_##what##_##type( \ \ struct ocf_metadata_map_##type *map = raw->mem_pool; \ \ - _raw_bug_on(raw, line, sizeof(*map)); \ + _raw_bug_on(raw, line); \ \ if (all) { \ if (mask == (map[line].what & mask)) { \ @@ -201,7 +201,7 @@ static bool _ocf_metadata_test_and_clear_##what##_##type( \ \ struct ocf_metadata_map_##type *map = raw->mem_pool; \ \ - _raw_bug_on(raw, line, sizeof(*map)); \ + _raw_bug_on(raw, line); \ \ if (all) { \ if (mask == (map[line].what & mask)) { \ diff --git a/src/metadata/metadata_hash.c b/src/metadata/metadata_hash.c index 12bad97..f77e66a 100644 --- a/src/metadata/metadata_hash.c +++ b/src/metadata/metadata_hash.c @@ -2198,8 +2198,7 @@ static void ocf_metadata_hash_get_core_info(struct ocf_cache *cache, (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; collision = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_collision]), line, - ctrl->mapping_size); + &(ctrl->raw_desc[metadata_segment_collision]), line); if (collision) { if (core_id) *core_id = collision->core_id; @@ -2224,8 +2223,7 @@ static void ocf_metadata_hash_set_core_info(struct ocf_cache *cache, (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; collisioin = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_collision]), line, - ctrl->mapping_size); + &(ctrl->raw_desc[metadata_segment_collision]), line); if (collisioin) { collisioin->core_id = core_id; @@ -2243,8 +2241,7 @@ static ocf_core_id_t ocf_metadata_hash_get_core_id( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; collision = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_collision]), line, - ctrl->mapping_size); + &(ctrl->raw_desc[metadata_segment_collision]), line); if (collision) return collision->core_id; @@ -2261,8 +2258,7 @@ static struct ocf_metadata_uuid *ocf_metadata_hash_get_core_uuid( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; muuid = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_core_uuid]), - core_id, sizeof(struct ocf_metadata_uuid)); + &(ctrl->raw_desc[metadata_segment_core_uuid]), core_id); if (!muuid) ocf_metadata_error(cache); @@ -2284,12 +2280,10 @@ static void ocf_metadata_hash_get_core_and_part_id( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; collision = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_collision]), line, - ctrl->mapping_size); + &(ctrl->raw_desc[metadata_segment_collision]), line); info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (collision && info) { if (core_id) @@ -2320,8 +2314,7 @@ static ocf_cache_line_t ocf_metadata_hash_get_hash( = (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; result = ocf_metadata_raw_get(cache, - &(ctrl->raw_desc[metadata_segment_hash]), index, - &line, sizeof(line)); + &(ctrl->raw_desc[metadata_segment_hash]), index, &line); if (result) ocf_metadata_error(cache); @@ -2340,8 +2333,7 @@ static void ocf_metadata_hash_set_hash(struct ocf_cache *cache, = (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; result = ocf_metadata_raw_set(cache, - &(ctrl->raw_desc[metadata_segment_hash]), index, - &line, sizeof(line)); + &(ctrl->raw_desc[metadata_segment_hash]), index, &line); if (result) ocf_metadata_error(cache); @@ -2364,7 +2356,7 @@ static void ocf_metadata_hash_get_cleaning_policy( result = ocf_metadata_raw_get(cache, &(ctrl->raw_desc[metadata_segment_cleaning]), line, - cleaning_policy, sizeof(*cleaning_policy)); + cleaning_policy); if (result) ocf_metadata_error(cache); @@ -2383,7 +2375,7 @@ static void ocf_metadata_hash_set_cleaning_policy( result = ocf_metadata_raw_set(cache, &(ctrl->raw_desc[metadata_segment_cleaning]), line, - cleaning_policy, sizeof(*cleaning_policy)); + cleaning_policy); if (result) ocf_metadata_error(cache); @@ -2406,7 +2398,7 @@ static void ocf_metadata_hash_get_eviction_policy( result = ocf_metadata_raw_get(cache, &(ctrl->raw_desc[metadata_segment_eviction]), line, - eviction_policy, sizeof(*eviction_policy)); + eviction_policy); if (result) ocf_metadata_error(cache); @@ -2425,7 +2417,7 @@ static void ocf_metadata_hash_set_eviction_policy( result = ocf_metadata_raw_set(cache, &(ctrl->raw_desc[metadata_segment_eviction]), line, - eviction_policy, sizeof(*eviction_policy)); + eviction_policy); if (result) ocf_metadata_error(cache); @@ -2514,8 +2506,7 @@ static void ocf_metadata_hash_set_collision_info( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; info = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) { info->next_col = next; @@ -2534,8 +2525,7 @@ static void ocf_metadata_hash_set_collision_next( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; info = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) info->next_col = next; @@ -2552,8 +2542,7 @@ static void ocf_metadata_hash_set_collision_prev( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; info = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) info->prev_col = prev; @@ -2572,8 +2561,7 @@ static void ocf_metadata_hash_get_collision_info( ENV_BUG_ON(NULL == next && NULL == prev); info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) { if (next) *next = info->next_col; @@ -2603,8 +2591,7 @@ static void ocf_metadata_hash_get_partition_info( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; info = ocf_metadata_raw_rd_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) { if (part_id) @@ -2633,8 +2620,7 @@ static void ocf_metadata_hash_set_partition_next( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; info = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) info->partition_next = next_line; @@ -2651,8 +2637,7 @@ static void ocf_metadata_hash_set_partition_prev( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; info = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) info->partition_prev = prev_line; @@ -2670,8 +2655,7 @@ static void ocf_metadata_hash_set_partition_info( (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; info = ocf_metadata_raw_wr_access(cache, - &(ctrl->raw_desc[metadata_segment_list_info]), line, - sizeof(*info)); + &(ctrl->raw_desc[metadata_segment_list_info]), line); if (info) { info->partition_id = part_id; diff --git a/src/metadata/metadata_raw.c b/src/metadata/metadata_raw.c index 757a41d..b1ca1af 100644 --- a/src/metadata/metadata_raw.c +++ b/src/metadata/metadata_raw.c @@ -152,49 +152,34 @@ static uint32_t _raw_ram_checksum(ocf_cache_t cache, /* * RAM Implementation - Get entry */ -static int _raw_ram_get(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size) +static int _raw_ram_get(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data) { - ENV_BUG_ON(!_raw_is_valid(raw, line, size)); + ENV_BUG_ON(!_raw_is_valid(raw, entry)); - return _RAW_RAM_GET(raw, line, data); + return _RAW_RAM_GET(raw, entry, data); } /* * RAM Implementation - Read only entry access */ -static const void *_raw_ram_rd_access(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size) +static void *_raw_ram_access(ocf_cache_t cache, + struct ocf_metadata_raw *raw, uint32_t entry) { - ENV_BUG_ON(!_raw_is_valid(raw, line, size)); + ENV_BUG_ON(!_raw_is_valid(raw, entry)); - return _RAW_RAM_ADDR(raw, line); -} - -/* - * RAM Implementation - Read only entry access - */ -static void *_raw_ram_wr_access(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size) -{ - ENV_BUG_ON(!_raw_is_valid(raw, line, size)); - - return _RAW_RAM_ADDR(raw, line); + return _RAW_RAM_ADDR(raw, entry); } /* * RAM Implementation - Set Entry */ -static int _raw_ram_set(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size) +static int _raw_ram_set(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data) { - ENV_BUG_ON(!_raw_is_valid(raw, line, size)); + ENV_BUG_ON(!_raw_is_valid(raw, entry)); - return _RAW_RAM_SET(raw, line, data); + return _RAW_RAM_SET(raw, entry, data); } struct _raw_ram_load_all_context { @@ -558,8 +543,7 @@ static const struct raw_iface IRAW[metadata_raw_type_max] = { .checksum = _raw_ram_checksum, .get = _raw_ram_get, .set = _raw_ram_set, - .rd_access = _raw_ram_rd_access, - .wr_access = _raw_ram_wr_access, + .access = _raw_ram_access, .load_all = _raw_ram_load_all, .flush_all = _raw_ram_flush_all, .flush_mark = _raw_ram_flush_mark, @@ -573,8 +557,7 @@ static const struct raw_iface IRAW[metadata_raw_type_max] = { .checksum = raw_dynamic_checksum, .get = raw_dynamic_get, .set = raw_dynamic_set, - .rd_access = raw_dynamic_rd_access, - .wr_access = raw_dynamic_wr_access, + .access = raw_dynamic_access, .load_all = raw_dynamic_load_all, .flush_all = raw_dynamic_flush_all, .flush_mark = raw_dynamic_flush_mark, @@ -588,8 +571,7 @@ static const struct raw_iface IRAW[metadata_raw_type_max] = { .checksum = raw_volatile_checksum, .get = _raw_ram_get, .set = _raw_ram_set, - .rd_access = _raw_ram_rd_access, - .wr_access = _raw_ram_wr_access, + .access = _raw_ram_access, .load_all = raw_volatile_load_all, .flush_all = raw_volatile_flush_all, .flush_mark = raw_volatile_flush_mark, @@ -603,8 +585,7 @@ static const struct raw_iface IRAW[metadata_raw_type_max] = { .checksum = _raw_ram_checksum, .get = _raw_ram_get, .set = _raw_ram_set, - .rd_access = _raw_ram_rd_access, - .wr_access = _raw_ram_wr_access, + .access = _raw_ram_access, .load_all = _raw_ram_load_all, .flush_all = _raw_ram_flush_all, .flush_mark = raw_atomic_flush_mark, diff --git a/src/metadata/metadata_raw.h b/src/metadata/metadata_raw.h index 2e9e7a9..2da5137 100644 --- a/src/metadata/metadata_raw.h +++ b/src/metadata/metadata_raw.h @@ -103,21 +103,14 @@ struct raw_iface { struct ocf_metadata_raw *raw); - int (*get)(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size); + int (*get)(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data); - int (*set)(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size); + int (*set)(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data); - const void* (*rd_access)(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size); - - void* (*wr_access)(ocf_cache_t cache, - struct ocf_metadata_raw *raw, - ocf_cache_line_t line, uint32_t size); + void* (*access)(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry); void (*load_all)(ocf_cache_t cache, struct ocf_metadata_raw *raw, ocf_metadata_end_t cmpl, void *priv); @@ -130,8 +123,7 @@ struct raw_iface { uint8_t stop); int (*flush_do_asynch)(ocf_cache_t cache, struct ocf_request *req, - struct ocf_metadata_raw *raw, - ocf_req_end_t complete); + struct ocf_metadata_raw *raw, ocf_req_end_t complete); }; /** @@ -196,16 +188,14 @@ static inline uint32_t ocf_metadata_raw_checksum(struct ocf_cache* cache, * * @param cache - Cache instance * @param raw - RAW descriptor - * @param line - Cache line to be get + * @param entry - Entry to be get * @param data - Data where metadata entry will be copied into - * @param size - Size of data * @return 0 - Operation success, otherwise error */ static inline int ocf_metadata_raw_get(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, void *data, - uint32_t size) + struct ocf_metadata_raw *raw, uint32_t entry, void *data) { - return raw->iface->get(cache, raw, line, data, size); + return raw->iface->get(cache, raw, entry, data); } /** @@ -213,16 +203,14 @@ static inline int ocf_metadata_raw_get(ocf_cache_t cache, * * @param cache - Cache instance * @param raw - RAW descriptor - * @param line - Cache line to be get + * @param entry - Entry to be get * @param data - Data where metadata entry will be copied into - * @param size - Size of data * @return 0 - Point to accessed data, in case of error NULL */ static inline void *ocf_metadata_raw_wr_access(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size) + struct ocf_metadata_raw *raw, uint32_t entry) { - return raw->iface->wr_access(cache, raw, line, size); + return raw->iface->access(cache, raw, entry); } /** @@ -230,16 +218,14 @@ static inline void *ocf_metadata_raw_wr_access(ocf_cache_t cache, * * @param cache - Cache instance * @param raw - RAW descriptor - * @param line - Cache line to be get + * @param entry - Entry to be get * @param data - Data where metadata entry will be copied into - * @param size - Size of data * @return 0 - Point to accessed data, in case of error NULL */ -static inline const void *ocf_metadata_raw_rd_access( - ocf_cache_t cache, struct ocf_metadata_raw *raw, - ocf_cache_line_t line, uint32_t size) +static inline const void *ocf_metadata_raw_rd_access( ocf_cache_t cache, + struct ocf_metadata_raw *raw, uint32_t entry) { - return raw->iface->rd_access(cache, raw, line, size); + return raw->iface->access(cache, raw, entry); } /** @@ -247,16 +233,14 @@ static inline const void *ocf_metadata_raw_rd_access( * * @param cache - Cache instance * @param raw - RAW descriptor - * @param line - Cache line to be set + * @param entry - Entry to be set * @param data - Data taht will be copied into metadata entry - * @param size - Size of data * @return 0 - Operation success, otherwise error */ static inline int ocf_metadata_raw_set(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, void *data, - uint32_t size) + struct ocf_metadata_raw *raw, uint32_t entry, void *data) { - return raw->iface->set(cache, raw, line, data, size); + return raw->iface->set(cache, raw, entry, data); } /** @@ -307,25 +291,20 @@ static inline int ocf_metadata_raw_flush_do_asynch(ocf_cache_t cache, /* * Check if line is valid for specified RAW descriptor */ -static inline bool _raw_is_valid(struct ocf_metadata_raw *raw, - ocf_cache_line_t line, uint32_t size) +static inline bool _raw_is_valid(struct ocf_metadata_raw *raw, uint32_t entry) { if (!raw) return false; - if (size != raw->entry_size) - return false; - - if (line >= raw->entries) + if (entry >= raw->entries) return false; return true; } -static inline void _raw_bug_on(struct ocf_metadata_raw *raw, - ocf_cache_line_t line, uint32_t size) +static inline void _raw_bug_on(struct ocf_metadata_raw *raw, uint32_t entry) { - ENV_BUG_ON(!_raw_is_valid(raw, line, size)); + ENV_BUG_ON(!_raw_is_valid(raw, entry)); } #define MAX_STACK_TAB_SIZE 32 diff --git a/src/metadata/metadata_raw_dynamic.c b/src/metadata/metadata_raw_dynamic.c index 9da8d0b..230dbfe 100644 --- a/src/metadata/metadata_raw_dynamic.c +++ b/src/metadata/metadata_raw_dynamic.c @@ -64,15 +64,15 @@ struct _raw_ctrl { }; static void *_raw_dynamic_get_item(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, uint32_t size) + struct ocf_metadata_raw *raw, uint32_t entry) { void *new = NULL; struct _raw_ctrl *ctrl = (struct _raw_ctrl *)raw->priv; - uint32_t page = _RAW_DYNAMIC_PAGE(raw, line); + uint32_t page = _RAW_DYNAMIC_PAGE(raw, entry); - ENV_BUG_ON(!_raw_is_valid(raw, line, size)); + ENV_BUG_ON(!_raw_is_valid(raw, entry)); - OCF_DEBUG_PARAM(cache, "Accessing item %u on page %u", line, page); + OCF_DEBUG_PARAM(cache, "Accessing item %u on page %u", entry, page); if (!ctrl->pages[page]) { /* No page, allocate one, and set*/ @@ -107,7 +107,7 @@ _raw_dynamic_get_item_SKIP: } if (ctrl->pages[page]) - return ctrl->pages[page] + _RAW_DYNAMIC_PAGE_OFFSET(raw, line); + return ctrl->pages[page] + _RAW_DYNAMIC_PAGE_OFFSET(raw, entry); return NULL; } @@ -220,56 +220,43 @@ uint32_t raw_dynamic_checksum(ocf_cache_t cache, /* * RAM DYNAMIC Implementation - Get */ -int raw_dynamic_get(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size) +int raw_dynamic_get(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data) { - void *item = _raw_dynamic_get_item(cache, raw, line, size); + void *item = _raw_dynamic_get_item(cache, raw, entry); if (!item) { - ENV_BUG_ON(env_memset(data, size, 0)); + ENV_BUG_ON(env_memset(data, raw->entry_size, 0)); ocf_metadata_error(cache); return -1; } - return env_memcpy(data, size, item, size); + return env_memcpy(data, raw->entry_size, item, raw->entry_size); } /* * RAM DYNAMIC Implementation - Set */ -int raw_dynamic_set(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size) +int raw_dynamic_set(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data) { - void *item = _raw_dynamic_get_item(cache, raw, line, size); + void *item = _raw_dynamic_get_item(cache, raw, entry); if (!item) { ocf_metadata_error(cache); return -1; } - return env_memcpy(item, size, data, size); + return env_memcpy(item, raw->entry_size, data, raw->entry_size); } /* * RAM DYNAMIC Implementation - access */ -const void *raw_dynamic_rd_access(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size) +void *raw_dynamic_access(ocf_cache_t cache, + struct ocf_metadata_raw *raw, uint32_t entry) { - return _raw_dynamic_get_item(cache, raw, line, size); -} - -/* -* RAM DYNAMIC Implementation - access -*/ -void *raw_dynamic_wr_access(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size) -{ - return _raw_dynamic_get_item(cache, raw, line, size); + return _raw_dynamic_get_item(cache, raw, entry); } /* diff --git a/src/metadata/metadata_raw_dynamic.h b/src/metadata/metadata_raw_dynamic.h index 6f22614..94c0657 100644 --- a/src/metadata/metadata_raw_dynamic.h +++ b/src/metadata/metadata_raw_dynamic.h @@ -43,30 +43,20 @@ uint32_t raw_dynamic_checksum(ocf_cache_t cache, /* * RAW DYNAMIC - Get specified entry */ -int raw_dynamic_get(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size); +int raw_dynamic_get(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data); /* * RAW DYNAMIC - Set specified entry */ -int raw_dynamic_set(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - void *data, uint32_t size); - -/* - * RAW DYNAMIC - Read only access for specified entry - */ -const void *raw_dynamic_rd_access(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size); +int raw_dynamic_set(ocf_cache_t cache, struct ocf_metadata_raw *raw, + uint32_t entry, void *data); /* * RAW DYNAMIC - Write access for specified entry */ -void *raw_dynamic_wr_access(ocf_cache_t cache, - struct ocf_metadata_raw *raw, ocf_cache_line_t line, - uint32_t size); +void *raw_dynamic_access(ocf_cache_t cache, + struct ocf_metadata_raw *raw, uint32_t entry); /* * RAW DYNAMIC - Load all metadata of this RAW metadata container From fdf6d07b8555b388a09662b87544a6bc81efef9c Mon Sep 17 00:00:00 2001 From: Robert Baldyga Date: Sat, 3 Aug 2019 20:03:48 +0200 Subject: [PATCH 7/7] Fix typo "collisioin" -> "collision" Signed-off-by: Robert Baldyga --- src/metadata/metadata_hash.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/metadata/metadata_hash.c b/src/metadata/metadata_hash.c index f77e66a..49cc48e 100644 --- a/src/metadata/metadata_hash.c +++ b/src/metadata/metadata_hash.c @@ -2218,16 +2218,16 @@ static void ocf_metadata_hash_set_core_info(struct ocf_cache *cache, ocf_cache_line_t line, ocf_core_id_t core_id, uint64_t core_sector) { - struct ocf_metadata_map *collisioin; + struct ocf_metadata_map *collision; struct ocf_metadata_hash_ctrl *ctrl = (struct ocf_metadata_hash_ctrl *) cache->metadata.iface_priv; - collisioin = ocf_metadata_raw_wr_access(cache, + collision = ocf_metadata_raw_wr_access(cache, &(ctrl->raw_desc[metadata_segment_collision]), line); - if (collisioin) { - collisioin->core_id = core_id; - collisioin->core_line = core_sector; + if (collision) { + collision->core_id = core_id; + collision->core_line = core_sector; } else { ocf_metadata_error(cache); }