Get rid of status bits lock
All the status bits operations are now protectec by hash bucket locks Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
This commit is contained in:
@@ -17,8 +17,6 @@ int ocf_metadata_concurrency_init(struct ocf_metadata_lock *metadata_lock)
|
||||
for (evp_iter = 0; evp_iter < OCF_NUM_EVICTION_LISTS; evp_iter++)
|
||||
env_rwlock_init(&metadata_lock->eviction[evp_iter]);
|
||||
|
||||
env_rwlock_init(&metadata_lock->status);
|
||||
|
||||
for (global_iter = 0; global_iter < OCF_NUM_GLOBAL_META_LOCKS;
|
||||
global_iter++) {
|
||||
err = env_rwsem_init(&metadata_lock->global[global_iter].sem);
|
||||
@@ -42,8 +40,6 @@ global_err:
|
||||
while (global_iter--)
|
||||
env_rwsem_destroy(&metadata_lock->global[global_iter].sem);
|
||||
|
||||
env_rwlock_destroy(&metadata_lock->status);
|
||||
|
||||
while (evp_iter--)
|
||||
env_rwlock_destroy(&metadata_lock->eviction[evp_iter]);
|
||||
|
||||
@@ -62,8 +58,6 @@ void ocf_metadata_concurrency_deinit(struct ocf_metadata_lock *metadata_lock)
|
||||
|
||||
for (i = 0; i < OCF_NUM_GLOBAL_META_LOCKS; i++)
|
||||
env_rwsem_destroy(&metadata_lock->global[i].sem);
|
||||
|
||||
env_rwlock_destroy(&metadata_lock->status);
|
||||
}
|
||||
|
||||
int ocf_metadata_concurrency_attached_init(
|
||||
|
@@ -127,44 +127,6 @@ void ocf_metadata_end_shared_access(
|
||||
struct ocf_metadata_lock *metadata_lock,
|
||||
unsigned lock_idx);
|
||||
|
||||
static inline void ocf_metadata_status_bits_lock(
|
||||
struct ocf_metadata_lock *metadata_lock, int rw)
|
||||
{
|
||||
if (rw == OCF_METADATA_WR)
|
||||
env_rwlock_write_lock(&metadata_lock->status);
|
||||
else if (rw == OCF_METADATA_RD)
|
||||
env_rwlock_read_lock(&metadata_lock->status);
|
||||
else
|
||||
ENV_BUG();
|
||||
}
|
||||
|
||||
static inline void ocf_metadata_status_bits_unlock(
|
||||
struct ocf_metadata_lock *metadata_lock, int rw)
|
||||
{
|
||||
if (rw == OCF_METADATA_WR)
|
||||
env_rwlock_write_unlock(&metadata_lock->status);
|
||||
else if (rw == OCF_METADATA_RD)
|
||||
env_rwlock_read_unlock(&metadata_lock->status);
|
||||
else
|
||||
ENV_BUG();
|
||||
}
|
||||
|
||||
#define OCF_METADATA_BITS_LOCK_RD() \
|
||||
ocf_metadata_status_bits_lock(&cache->metadata.lock, \
|
||||
OCF_METADATA_RD)
|
||||
|
||||
#define OCF_METADATA_BITS_UNLOCK_RD() \
|
||||
ocf_metadata_status_bits_unlock(&cache->metadata.lock, \
|
||||
OCF_METADATA_RD)
|
||||
|
||||
#define OCF_METADATA_BITS_LOCK_WR() \
|
||||
ocf_metadata_status_bits_lock(&cache->metadata.lock, \
|
||||
OCF_METADATA_WR)
|
||||
|
||||
#define OCF_METADATA_BITS_UNLOCK_WR() \
|
||||
ocf_metadata_status_bits_unlock(&cache->metadata.lock, \
|
||||
OCF_METADATA_WR)
|
||||
|
||||
void ocf_hb_cline_prot_lock_rd(struct ocf_metadata_lock *metadata_lock,
|
||||
uint32_t lock_idx, uint32_t core_id, uint64_t core_line);
|
||||
void ocf_hb_cline_prot_unlock_rd(struct ocf_metadata_lock *metadata_lock,
|
||||
|
Reference in New Issue
Block a user