From 9746df0b1a8e1887036f7e38df15a8fb9b9cf8c1 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Sat, 3 Apr 2021 19:08:26 -0500 Subject: [PATCH] rename line to entry Signed-off-by: Adam Rutkowski --- src/utils/utils_alock.c | 292 ++++++++++++++++++++-------------------- src/utils/utils_alock.h | 10 +- 2 files changed, 151 insertions(+), 151 deletions(-) diff --git a/src/utils/utils_alock.c b/src/utils/utils_alock.c index 75db968..eff5666 100644 --- a/src/utils/utils_alock.c +++ b/src/utils/utils_alock.c @@ -35,10 +35,10 @@ #define _WAITERS_LIST_ENTRIES \ (_WAITERS_LIST_SIZE / sizeof(struct ocf_alock_waiters_list)) -#define _WAITERS_LIST_ITEM(cache_line) ((cache_line) % _WAITERS_LIST_ENTRIES) +#define _WAITERS_LIST_ITEM(entry) ((entry) % _WAITERS_LIST_ENTRIES) struct ocf_alock_waiter { - ocf_cache_line_t line; + ocf_cache_line_t entry; uint32_t idx; struct ocf_request *req; ocf_req_async_lock_cb cmpl; @@ -175,22 +175,22 @@ size_t ocf_alock_size(unsigned num_entries) } static inline bool ocf_alock_waitlist_is_empty_locked(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { bool are = false; struct list_head *iter; - uint32_t idx = _WAITERS_LIST_ITEM(line); + uint32_t idx = _WAITERS_LIST_ITEM(entry); struct ocf_alock_waiters_list *lst = &alock->waiters_lsts[idx]; struct ocf_alock_waiter *waiter; - /* If list empty that means there are no waiters on cache line */ + /* If list empty that means there are no waiters on cache entry */ if (list_empty(&lst->head)) return true; list_for_each(iter, &lst->head) { waiter = list_entry(iter, struct ocf_alock_waiter, item); - if (waiter->line == line) { + if (waiter->entry == entry) { are = true; break; } @@ -200,34 +200,34 @@ static inline bool ocf_alock_waitlist_is_empty_locked(struct ocf_alock *alock, } static inline void ocf_alock_waitlist_add(struct ocf_alock *alock, - ocf_cache_line_t line, struct ocf_alock_waiter *waiter) + ocf_cache_line_t entry, struct ocf_alock_waiter *waiter) { - uint32_t idx = _WAITERS_LIST_ITEM(line); + uint32_t idx = _WAITERS_LIST_ITEM(entry); struct ocf_alock_waiters_list *lst = &alock->waiters_lsts[idx]; list_add_tail(&waiter->item, &lst->head); } -#define ocf_alock_waitlist_lock(cncrrncy, line, flags) \ +#define ocf_alock_waitlist_lock(cncrrncy, entry, flags) \ do { \ - uint32_t list = _WAITERS_LIST_ITEM(line); \ - struct ocf_alock_waiters_list *lst = &cncrrncy->waiters_lsts[list]; \ + uint32_t idx = _WAITERS_LIST_ITEM(entry); \ + struct ocf_alock_waiters_list *lst = &cncrrncy->waiters_lsts[idx]; \ env_spinlock_lock_irqsave(&lst->lock, flags); \ } while (0) -#define ocf_alock_waitlist_unlock(cncrrncy, line, flags) \ +#define ocf_alock_waitlist_unlock(cncrrncy, entry, flags) \ do { \ - uint32_t list = _WAITERS_LIST_ITEM(line); \ - struct ocf_alock_waiters_list *lst = &cncrrncy->waiters_lsts[list]; \ + uint32_t idx = _WAITERS_LIST_ITEM(entry); \ + struct ocf_alock_waiters_list *lst = &cncrrncy->waiters_lsts[idx]; \ env_spinlock_unlock_irqrestore(&lst->lock, flags); \ } while (0) bool ocf_alock_trylock_entry_wr(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; int prev = env_atomic_cmpxchg(access, OCF_CACHE_LINE_ACCESS_IDLE, OCF_CACHE_LINE_ACCESS_WR); @@ -238,9 +238,9 @@ bool ocf_alock_trylock_entry_wr(struct ocf_alock *alock, } static inline bool ocf_alock_trylock_entry_rd_idle(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; int prev = env_atomic_cmpxchg(access, OCF_CACHE_LINE_ACCESS_IDLE, OCF_CACHE_LINE_ACCESS_ONE_RD); @@ -248,26 +248,26 @@ static inline bool ocf_alock_trylock_entry_rd_idle(struct ocf_alock *alock, } static inline bool ocf_alock_trylock_entry_rd(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; return !!env_atomic_add_unless(access, 1, OCF_CACHE_LINE_ACCESS_WR); } static inline void ocf_alock_unlock_entry_wr(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; ENV_BUG_ON(env_atomic_read(access) != OCF_CACHE_LINE_ACCESS_WR); env_atomic_set(access, OCF_CACHE_LINE_ACCESS_IDLE); } static inline void ocf_alock_unlock_entry_rd(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; ENV_BUG_ON(env_atomic_read(access) == 0); ENV_BUG_ON(env_atomic_read(access) == OCF_CACHE_LINE_ACCESS_WR); @@ -275,18 +275,18 @@ static inline void ocf_alock_unlock_entry_rd(struct ocf_alock *alock, } static inline bool ocf_alock_trylock_entry_wr2wr(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; ENV_BUG_ON(env_atomic_read(access) != OCF_CACHE_LINE_ACCESS_WR); return true; } static inline bool ocf_alock_trylock_entry_wr2rd(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; ENV_BUG_ON(env_atomic_read(access) != OCF_CACHE_LINE_ACCESS_WR); env_atomic_set(access, OCF_CACHE_LINE_ACCESS_ONE_RD); @@ -294,9 +294,9 @@ static inline bool ocf_alock_trylock_entry_wr2rd(struct ocf_alock *alock, } static inline bool ocf_alock_trylock_entry_rd2wr(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; int v = env_atomic_read(access); @@ -310,9 +310,9 @@ static inline bool ocf_alock_trylock_entry_rd2wr(struct ocf_alock *alock, } static inline bool ocf_alock_trylock_entry_rd2rd(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; int v = env_atomic_read(access); @@ -326,7 +326,7 @@ static void ocf_alock_entry_locked(struct ocf_alock *alock, struct ocf_request *req, ocf_req_async_lock_cb cmpl) { if (env_atomic_dec_return(&req->lock_remaining) == 0) { - /* All cache line locked, resume request */ + /* All cache entry locked, resume request */ OCF_DEBUG_RQ(req, "Resume"); ENV_BUG_ON(!cmpl); env_atomic_dec(&alock->waiting); @@ -336,7 +336,7 @@ static void ocf_alock_entry_locked(struct ocf_alock *alock, static inline bool ocf_alock_lock_one_wr(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - const ocf_cache_line_t line, ocf_req_async_lock_cb cmpl, + const ocf_cache_line_t entry, ocf_req_async_lock_cb cmpl, void *req, uint32_t idx) { struct ocf_alock_waiter *waiter; @@ -345,7 +345,7 @@ static inline bool ocf_alock_lock_one_wr(struct ocf_alock *alock, ENV_BUG_ON(!cmpl); - if (ocf_alock_trylock_entry_wr(alock, line)) { + if (ocf_alock_trylock_entry_wr(alock, entry)) { /* lock was not owned by anyone */ cbs->line_mark_locked(req, idx, OCF_WRITE, true); ocf_alock_entry_locked(alock, req, cmpl); @@ -356,16 +356,16 @@ static inline bool ocf_alock_lock_one_wr(struct ocf_alock *alock, if (!waiter) return false; - ocf_alock_waitlist_lock(alock, line, flags); + ocf_alock_waitlist_lock(alock, entry, flags); - /* At the moment list is protected, double check if the cache line is + /* At the moment list is protected, double check if the cache entry is * unlocked */ - if (ocf_alock_trylock_entry_wr(alock, line)) + if (ocf_alock_trylock_entry_wr(alock, entry)) goto unlock; /* Setup waiters filed */ - waiter->line = line; + waiter->entry = entry; waiter->req = req; waiter->idx = idx; waiter->cmpl = cmpl; @@ -373,11 +373,11 @@ static inline bool ocf_alock_lock_one_wr(struct ocf_alock *alock, INIT_LIST_HEAD(&waiter->item); /* Add to waiters list */ - ocf_alock_waitlist_add(alock, line, waiter); + ocf_alock_waitlist_add(alock, entry, waiter); waiting = true; unlock: - ocf_alock_waitlist_unlock(alock, line, flags); + ocf_alock_waitlist_unlock(alock, entry, flags); if (!waiting) { cbs->line_mark_locked(req, idx, OCF_WRITE, true); @@ -389,12 +389,12 @@ unlock: } /* - * Attempt to lock cache line for read. - * In case cache line is locked, attempt to add caller on wait list. + * Attempt to lock cache entry for read. + * In case cache entry is locked, attempt to add caller on wait list. */ static inline bool ocf_alock_lock_one_rd(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - const ocf_cache_line_t line, ocf_req_async_lock_cb cmpl, + const ocf_cache_line_t entry, ocf_req_async_lock_cb cmpl, void *req, uint32_t idx) { struct ocf_alock_waiter *waiter; @@ -403,7 +403,7 @@ static inline bool ocf_alock_lock_one_rd(struct ocf_alock *alock, ENV_BUG_ON(!cmpl); - if( ocf_alock_trylock_entry_rd_idle(alock, line)) { + if( ocf_alock_trylock_entry_rd_idle(alock, entry)) { /* lock was not owned by anyone */ cbs->line_mark_locked(req, idx, OCF_READ, true); ocf_alock_entry_locked(alock, req, cmpl); @@ -415,20 +415,20 @@ static inline bool ocf_alock_lock_one_rd(struct ocf_alock *alock, return false; /* Lock waiters list */ - ocf_alock_waitlist_lock(alock, line, flags); + ocf_alock_waitlist_lock(alock, entry, flags); - if (!ocf_alock_waitlist_is_empty_locked(alock, line)) { + if (!ocf_alock_waitlist_is_empty_locked(alock, entry)) { /* No waiters at the moment */ /* Check if read lock can be obtained */ - if (ocf_alock_trylock_entry_rd(alock, line)) { - /* Cache line locked */ + if (ocf_alock_trylock_entry_rd(alock, entry)) { + /* Cache entry locked */ goto unlock; } } /* Setup waiters field */ - waiter->line = line; + waiter->entry = entry; waiter->req = req; waiter->idx = idx; waiter->cmpl = cmpl; @@ -436,11 +436,11 @@ static inline bool ocf_alock_lock_one_rd(struct ocf_alock *alock, INIT_LIST_HEAD(&waiter->item); /* Add to waiters list */ - ocf_alock_waitlist_add(alock, line, waiter); + ocf_alock_waitlist_add(alock, entry, waiter); waiting = true; unlock: - ocf_alock_waitlist_unlock(alock, line, flags); + ocf_alock_waitlist_unlock(alock, entry, flags); if (!waiting) { cbs->line_mark_locked(req, idx, OCF_READ, true); @@ -458,13 +458,13 @@ unlock: */ static inline void ocf_alock_unlock_one_rd_common(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - const ocf_cache_line_t line) + const ocf_cache_line_t entry) { bool locked = false; bool exchanged = true; uint32_t i = 0; - uint32_t idx = _WAITERS_LIST_ITEM(line); + uint32_t idx = _WAITERS_LIST_ITEM(entry); struct ocf_alock_waiters_list *lst = &alock->waiters_lsts[idx]; struct ocf_alock_waiter *waiter; @@ -481,21 +481,21 @@ static inline void ocf_alock_unlock_one_rd_common(struct ocf_alock *alock, list_for_each_safe(iter, next, &lst->head) { waiter = list_entry(iter, struct ocf_alock_waiter, item); - if (line != waiter->line) + if (entry != waiter->entry) continue; if (exchanged) { if (waiter->rw == OCF_WRITE) - locked = ocf_alock_trylock_entry_rd2wr(alock, line); + locked = ocf_alock_trylock_entry_rd2wr(alock, entry); else if (waiter->rw == OCF_READ) - locked = ocf_alock_trylock_entry_rd2rd(alock, line); + locked = ocf_alock_trylock_entry_rd2rd(alock, entry); else ENV_BUG(); } else { if (waiter->rw == OCF_WRITE) - locked = ocf_alock_trylock_entry_wr(alock, line); + locked = ocf_alock_trylock_entry_wr(alock, entry); else if (waiter->rw == OCF_READ) - locked = ocf_alock_trylock_entry_rd(alock, line); + locked = ocf_alock_trylock_entry_rd(alock, entry); else ENV_BUG(); } @@ -520,28 +520,28 @@ static inline void ocf_alock_unlock_one_rd_common(struct ocf_alock *alock, /* No exchange, no waiters on the list, unlock and return * WR -> IDLE */ - ocf_alock_unlock_entry_rd(alock, line); + ocf_alock_unlock_entry_rd(alock, entry); } } bool ocf_alock_trylock_one_rd(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - return ocf_alock_trylock_entry_rd_idle(alock, line); + return ocf_alock_trylock_entry_rd_idle(alock, entry); } void ocf_alock_unlock_one_rd(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - const ocf_cache_line_t line) + const ocf_cache_line_t entry) { unsigned long flags = 0; - OCF_DEBUG_RQ(alock->cache, "Cache line = %u", line); + OCF_DEBUG_RQ(alock->cache, "Cache entry = %u", entry); /* Lock waiters list */ - ocf_alock_waitlist_lock(alock, line, flags); - ocf_alock_unlock_one_rd_common(alock, cbs, line); - ocf_alock_waitlist_unlock(alock, line, flags); + ocf_alock_waitlist_lock(alock, entry, flags); + ocf_alock_unlock_one_rd_common(alock, cbs, entry); + ocf_alock_waitlist_unlock(alock, entry, flags); } /* @@ -551,13 +551,13 @@ void ocf_alock_unlock_one_rd(struct ocf_alock *alock, */ static inline void ocf_alock_unlock_one_wr_common(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - const ocf_cache_line_t line) + const ocf_cache_line_t entry) { uint32_t i = 0; bool locked = false; bool exchanged = true; - uint32_t idx = _WAITERS_LIST_ITEM(line); + uint32_t idx = _WAITERS_LIST_ITEM(entry); struct ocf_alock_waiters_list *lst = &alock->waiters_lsts[idx]; struct ocf_alock_waiter *waiter; @@ -574,21 +574,21 @@ static inline void ocf_alock_unlock_one_wr_common(struct ocf_alock *alock, list_for_each_safe(iter, next, &lst->head) { waiter = list_entry(iter, struct ocf_alock_waiter, item); - if (line != waiter->line) + if (entry != waiter->entry) continue; if (exchanged) { if (waiter->rw == OCF_WRITE) - locked = ocf_alock_trylock_entry_wr2wr(alock, line); + locked = ocf_alock_trylock_entry_wr2wr(alock, entry); else if (waiter->rw == OCF_READ) - locked = ocf_alock_trylock_entry_wr2rd(alock, line); + locked = ocf_alock_trylock_entry_wr2rd(alock, entry); else ENV_BUG(); } else { if (waiter->rw == OCF_WRITE) - locked = ocf_alock_trylock_entry_wr(alock, line); + locked = ocf_alock_trylock_entry_wr(alock, entry); else if (waiter->rw == OCF_READ) - locked = ocf_alock_trylock_entry_rd(alock, line); + locked = ocf_alock_trylock_entry_rd(alock, entry); else ENV_BUG(); } @@ -613,26 +613,26 @@ static inline void ocf_alock_unlock_one_wr_common(struct ocf_alock *alock, /* No exchange, no waiters on the list, unlock and return * WR -> IDLE */ - ocf_alock_unlock_entry_wr(alock, line); + ocf_alock_unlock_entry_wr(alock, entry); } } void ocf_alock_unlock_one_wr(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - const ocf_cache_line_t line) + const ocf_cache_line_t entry) { unsigned long flags = 0; - OCF_DEBUG_RQ(alock->cache, "Cache line = %u", line); + OCF_DEBUG_RQ(alock->cache, "Cache entry = %u", entry); /* Lock waiters list */ - ocf_alock_waitlist_lock(alock, line, flags); - ocf_alock_unlock_one_wr_common(alock, cbs, line); - ocf_alock_waitlist_unlock(alock, line, flags); + ocf_alock_waitlist_lock(alock, entry, flags); + ocf_alock_unlock_one_wr_common(alock, cbs, entry); + ocf_alock_waitlist_unlock(alock, entry, flags); } /* - * Safely remove cache line lock waiter from waiting list. + * Safely remove cache entry lock waiter from waiting list. * Request can be assigned with lock asynchronously at any point of time, * so need to check lock state under a common lock. */ @@ -640,20 +640,20 @@ static inline void ocf_alock_waitlist_remove_entry(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, struct ocf_request *req, int i, int rw) { - ocf_cache_line_t line = req->map[i].coll_idx; - uint32_t idx = _WAITERS_LIST_ITEM(line); + ocf_cache_line_t entry = req->map[i].coll_idx; + uint32_t idx = _WAITERS_LIST_ITEM(entry); struct ocf_alock_waiters_list *lst = &alock->waiters_lsts[idx]; struct list_head *iter, *next; struct ocf_alock_waiter *waiter; unsigned long flags = 0; - ocf_alock_waitlist_lock(alock, line, flags); + ocf_alock_waitlist_lock(alock, entry, flags); if (cbs->line_is_locked(req, i, rw)) { if (rw == OCF_READ) - ocf_alock_unlock_one_rd_common(alock, cbs, line); + ocf_alock_unlock_one_rd_common(alock, cbs, entry); else - ocf_alock_unlock_one_wr_common(alock, cbs, line); + ocf_alock_unlock_one_wr_common(alock, cbs, entry); cbs->line_mark_locked(req, i, rw, false); } else { list_for_each_safe(iter, next, &lst->head) { @@ -665,7 +665,7 @@ static inline void ocf_alock_waitlist_remove_entry(struct ocf_alock *alock, } } - ocf_alock_waitlist_unlock(alock, line, flags); + ocf_alock_waitlist_unlock(alock, entry, flags); } /* Try to read-lock request without adding waiters. Function should be called @@ -677,7 +677,7 @@ static int ocf_alock_lock_rd_fast(struct ocf_alock *alock, struct ocf_request *req) { int32_t i; - ocf_cache_line_t line; + ocf_cache_line_t entry; int ret = OCF_LOCK_ACQUIRED; OCF_DEBUG_RQ(req, "Lock"); @@ -690,18 +690,18 @@ static int ocf_alock_lock_rd_fast(struct ocf_alock *alock, continue; } - line = req->map[i].coll_idx; - ENV_BUG_ON(line >= alock->num_entries); + entry = req->map[i].coll_idx; + ENV_BUG_ON(entry >= alock->num_entries); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_READ)); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_WRITE)); - if( ocf_alock_trylock_entry_rd_idle(alock, line)) { - /* cache line locked */ + if( ocf_alock_trylock_entry_rd_idle(alock, entry)) { + /* cache entry locked */ cbs->line_mark_locked(req, i, OCF_READ, true); } else { /* Not possible to lock all cachelines */ ret = OCF_LOCK_NOT_ACQUIRED; - OCF_DEBUG_RQ(req, "NO Lock, cache line = %u", line); + OCF_DEBUG_RQ(req, "NO Lock, cache entry = %u", entry); break; } } @@ -715,10 +715,10 @@ static int ocf_alock_lock_rd_fast(struct ocf_alock *alock, continue; } - line = req->map[i].coll_idx; + entry = req->map[i].coll_idx; if (cbs->line_is_locked(req, i, OCF_READ)) { - ocf_alock_unlock_one_rd(alock, cbs, line); + ocf_alock_unlock_one_rd(alock, cbs, entry); cbs->line_mark_locked(req, i, OCF_READ, false); } } @@ -736,7 +736,7 @@ static int ocf_alock_lock_rd_slow(struct ocf_alock *alock, struct ocf_request *req, ocf_req_async_lock_cb cmpl) { int32_t i; - ocf_cache_line_t line; + ocf_cache_line_t entry; int ret = OCF_LOCK_NOT_ACQUIRED; ENV_BUG_ON(env_atomic_read(&req->lock_remaining)); @@ -752,12 +752,12 @@ static int ocf_alock_lock_rd_slow(struct ocf_alock *alock, continue; } - line = req->map[i].coll_idx; - ENV_BUG_ON(line >= alock->num_entries); + entry = req->map[i].coll_idx; + ENV_BUG_ON(entry >= alock->num_entries); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_READ)); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_WRITE)); - if (!ocf_alock_lock_one_rd(alock, cbs, line, cmpl, req, i)) { + if (!ocf_alock_lock_one_rd(alock, cbs, entry, cmpl, req, i)) { /* lock not acquired and not added to wait list */ ret = -OCF_ERR_NO_MEM; goto err; @@ -810,7 +810,7 @@ static int ocf_alock_lock_wr_fast(struct ocf_alock *alock, struct ocf_request *req) { int32_t i; - ocf_cache_line_t line; + ocf_cache_line_t entry; int ret = OCF_LOCK_ACQUIRED; ENV_BUG_ON(env_atomic_read(&req->lock_remaining)); @@ -821,18 +821,18 @@ static int ocf_alock_lock_wr_fast(struct ocf_alock *alock, continue; } - line = req->map[i].coll_idx; - ENV_BUG_ON(line >= alock->num_entries); + entry = req->map[i].coll_idx; + ENV_BUG_ON(entry >= alock->num_entries); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_READ)); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_WRITE)); - if (ocf_alock_trylock_entry_wr(alock, line)) { - /* cache line locked */ + if (ocf_alock_trylock_entry_wr(alock, entry)) { + /* cache entry locked */ cbs->line_mark_locked(req, i, OCF_WRITE, true); } else { /* Not possible to lock all cachelines */ ret = OCF_LOCK_NOT_ACQUIRED; - OCF_DEBUG_RQ(req, "NO Lock, cache line = %u", line); + OCF_DEBUG_RQ(req, "NO Lock, cache entry = %u", entry); break; } } @@ -844,10 +844,10 @@ static int ocf_alock_lock_wr_fast(struct ocf_alock *alock, if (!cbs->line_needs_lock(req, i)) continue; - line = req->map[i].coll_idx; + entry = req->map[i].coll_idx; if (cbs->line_is_locked(req, i, OCF_WRITE)) { - ocf_alock_unlock_one_wr(alock, cbs, line); + ocf_alock_unlock_one_wr(alock, cbs, entry); cbs->line_mark_locked(req, i, OCF_WRITE, false); } } @@ -865,7 +865,7 @@ static int ocf_alock_lock_wr_slow(struct ocf_alock *alock, struct ocf_request *req, ocf_req_async_lock_cb cmpl) { int32_t i; - ocf_cache_line_t line; + ocf_cache_line_t entry; int ret = OCF_LOCK_NOT_ACQUIRED; ENV_BUG_ON(env_atomic_read(&req->lock_remaining)); @@ -883,12 +883,12 @@ static int ocf_alock_lock_wr_slow(struct ocf_alock *alock, continue; } - line = req->map[i].coll_idx; - ENV_BUG_ON(line >= alock->num_entries); + entry = req->map[i].coll_idx; + ENV_BUG_ON(entry >= alock->num_entries); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_READ)); ENV_BUG_ON(cbs->line_is_locked(req, i, OCF_WRITE)); - if (!ocf_alock_lock_one_wr(alock, cbs, line, cmpl, req, i)) { + if (!ocf_alock_lock_one_wr(alock, cbs, entry, cmpl, req, i)) { /* lock not acquired and not added to wait list */ ret = -OCF_ERR_NO_MEM; goto err; @@ -937,7 +937,7 @@ void ocf_alock_unlock_rd(struct ocf_alock *alock, struct ocf_request *req) { int32_t i; - ocf_cache_line_t line; + ocf_cache_line_t entry; OCF_DEBUG_RQ(req, "Unlock"); @@ -950,11 +950,11 @@ void ocf_alock_unlock_rd(struct ocf_alock *alock, if (!cbs->line_is_locked(req, i, OCF_READ)) continue; - line = req->map[i].coll_idx; + entry = req->map[i].coll_idx; - ENV_BUG_ON(line >= alock->num_entries); + ENV_BUG_ON(entry >= alock->num_entries); - ocf_alock_unlock_one_rd(alock, cbs, line); + ocf_alock_unlock_one_rd(alock, cbs, entry); cbs->line_mark_locked(req, i, OCF_READ, false); } } @@ -964,7 +964,7 @@ void ocf_alock_unlock_wr(struct ocf_alock *alock, struct ocf_request *req) { int32_t i; - ocf_cache_line_t line; + ocf_cache_line_t entry; OCF_DEBUG_RQ(req, "Unlock"); @@ -977,11 +977,11 @@ void ocf_alock_unlock_wr(struct ocf_alock *alock, if (!cbs->line_is_locked(req, i, OCF_WRITE)) continue; - line = req->map[i].coll_idx; + entry = req->map[i].coll_idx; - ENV_BUG_ON(line >= alock->num_entries); + ENV_BUG_ON(entry >= alock->num_entries); - ocf_alock_unlock_one_wr(alock, cbs, line); + ocf_alock_unlock_one_wr(alock, cbs, entry); cbs->line_mark_locked(req, i, OCF_WRITE, false); } } @@ -991,7 +991,7 @@ void ocf_alock_unlock(struct ocf_alock *alock, struct ocf_request *req) { int32_t i; - ocf_cache_line_t line; + ocf_cache_line_t entry; OCF_DEBUG_RQ(req, "Unlock"); @@ -999,17 +999,17 @@ void ocf_alock_unlock(struct ocf_alock *alock, if (!cbs->line_is_acting(req, i)) continue; - line = req->map[i].coll_idx; - ENV_BUG_ON(line >= alock->num_entries); + entry = req->map[i].coll_idx; + ENV_BUG_ON(entry >= alock->num_entries); if (cbs->line_is_locked(req, i, OCF_READ) && cbs->line_is_locked(req, i, OCF_WRITE)) { ENV_BUG(); } else if (cbs->line_is_locked(req, i, OCF_READ)) { - ocf_alock_unlock_one_rd(alock, cbs, line); + ocf_alock_unlock_one_rd(alock, cbs, entry); cbs->line_mark_locked(req, i, OCF_READ, false); } else if (cbs->line_is_locked(req, i, OCF_WRITE)) { - ocf_alock_unlock_one_wr(alock, cbs, line); + ocf_alock_unlock_one_wr(alock, cbs, entry); cbs->line_mark_locked(req, i, OCF_WRITE, false); } } @@ -1017,49 +1017,49 @@ void ocf_alock_unlock(struct ocf_alock *alock, void ocf_alock_unlock_one(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - struct ocf_request *req, uint32_t entry) + struct ocf_request *req, uint32_t idx) { - ENV_BUG_ON(!cbs->line_is_acting(req, entry)); + ENV_BUG_ON(!cbs->line_is_acting(req, idx)); - if (cbs->line_is_locked(req, entry, OCF_READ) && - cbs->line_is_locked(req, entry, OCF_WRITE)) { + if (cbs->line_is_locked(req, idx, OCF_READ) && + cbs->line_is_locked(req, idx, OCF_WRITE)) { ENV_BUG(); - } else if (cbs->line_is_locked(req, entry, OCF_READ)) { - ocf_alock_unlock_one_rd(alock, cbs, req->map[entry].coll_idx); - cbs->line_mark_locked(req, entry, OCF_READ, false); - } else if (cbs->line_is_locked(req, entry, OCF_WRITE)) { - ocf_alock_unlock_one_wr(alock, cbs, req->map[entry].coll_idx); - cbs->line_mark_locked(req, entry, OCF_WRITE, false); + } else if (cbs->line_is_locked(req, idx, OCF_READ)) { + ocf_alock_unlock_one_rd(alock, cbs, req->map[idx].coll_idx); + cbs->line_mark_locked(req, idx, OCF_READ, false); + } else if (cbs->line_is_locked(req, idx, OCF_WRITE)) { + ocf_alock_unlock_one_wr(alock, cbs, req->map[idx].coll_idx); + cbs->line_mark_locked(req, idx, OCF_WRITE, false); } else { ENV_BUG(); } } bool ocf_cache_line_is_used(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - ENV_BUG_ON(line >= alock->num_entries); + ENV_BUG_ON(entry >= alock->num_entries); - if (env_atomic_read(&(alock->access[line]))) + if (env_atomic_read(&(alock->access[entry]))) return true; - return !ocf_alock_waitlist_is_empty(alock, line); + return !ocf_alock_waitlist_is_empty(alock, entry); } bool ocf_alock_waitlist_is_empty(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { bool empty; unsigned long flags = 0; - ENV_BUG_ON(line >= alock->num_entries); + ENV_BUG_ON(entry >= alock->num_entries); /* Lock waiters list */ - ocf_alock_waitlist_lock(alock, line, flags); + ocf_alock_waitlist_lock(alock, entry, flags); - empty = ocf_alock_waitlist_is_empty_locked(alock, line); + empty = ocf_alock_waitlist_is_empty_locked(alock, entry); - ocf_alock_waitlist_unlock(alock, line, flags); + ocf_alock_waitlist_unlock(alock, entry, flags); return empty; } @@ -1067,14 +1067,14 @@ bool ocf_alock_waitlist_is_empty(struct ocf_alock *alock, /* NOTE: it is caller responsibility to assure that noone acquires * a lock in background */ bool ocf_alock_is_locked_exclusively(struct ocf_alock *alock, - ocf_cache_line_t line) + ocf_cache_line_t entry) { - env_atomic *access = &alock->access[line]; + env_atomic *access = &alock->access[entry]; int val = env_atomic_read(access); ENV_BUG_ON(val == OCF_CACHE_LINE_ACCESS_IDLE); - if (!ocf_alock_waitlist_is_empty(alock, line)) + if (!ocf_alock_waitlist_is_empty(alock, entry)) return false; return val == OCF_CACHE_LINE_ACCESS_ONE_RD || diff --git a/src/utils/utils_alock.h b/src/utils/utils_alock.h index 034b651..20d6a24 100644 --- a/src/utils/utils_alock.h +++ b/src/utils/utils_alock.h @@ -42,14 +42,14 @@ struct ocf_alock_lock_cbs }; bool ocf_alock_trylock_one_rd(struct ocf_alock *alock, - ocf_cache_line_t line); + ocf_cache_line_t entry); void ocf_alock_unlock_one_rd(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, - const ocf_cache_line_t line); + const ocf_cache_line_t entry); bool ocf_alock_trylock_entry_wr(struct ocf_alock *alock, - ocf_cache_line_t line); + ocf_cache_line_t entry); void ocf_alock_unlock_one_wr(struct ocf_alock *alock, struct ocf_alock_lock_cbs *cbs, @@ -76,10 +76,10 @@ void ocf_alock_unlock(struct ocf_alock *alock, struct ocf_request *req); bool ocf_alock_waitlist_is_empty(struct ocf_alock *alock, - ocf_cache_line_t line); + ocf_cache_line_t entry); bool ocf_alock_is_locked_exclusively(struct ocf_alock *alock, - ocf_cache_line_t line); + ocf_cache_line_t entry); uint32_t ocf_alock_waitlist_count(struct ocf_alock *alock);