Lines Matching defs:hash
6 #include <linux/hash.h>
152 * Lock and MCS node addresses hash table for fast lookup
157 * Dynamically allocate a hash table big enough to hold at least 4X the
159 * granularity. So the minimum number of hash buckets should be at least
179 * Allocate memory for the PV qspinlock hash buckets
203 #define for_each_hash_entry(he, offset, hash) \
204 for (hash &= ~(PV_HE_PER_LINE - 1), he = &pv_lock_hash[hash], offset = 0; \
206 offset++, he = &pv_lock_hash[(hash + offset) & ((1 << pv_lock_hash_bits) - 1)])
210 unsigned long offset, hash = hash_ptr(lock, pv_lock_hash_bits);
214 for_each_hash_entry(he, offset, hash) {
238 unsigned long offset, hash = hash_ptr(lock, pv_lock_hash_bits);
242 for_each_hash_entry(he, offset, hash) {
254 * SLOW flag, there MUST be a hash entry.
287 * pv_kick_node() is used to set _Q_SLOW_VAL and fill in hash table on its
328 * to hash this lock.
381 * Put the lock into the hash table and set the _Q_SLOW_VAL.
384 * the hash table later on at unlock time, no atomic instruction is
408 * insert ourselves into the hash table anymore.
442 * We must hash before setting _Q_SLOW_VAL, such that
444 * we'll be sure to be able to observe our hash entry.
446 * [S] <hash> [Rmw] l->locked == _Q_SLOW_VAL