Lines Matching full:hash
21 * The appropriate thread-local data is found via a QHT, i.e. a concurrent hash
23 * all entries in the hash table. Depending on the number of threads and
45 * an intermediate hash table. This would simplify the code only slightly, but
98 /* initial sizing for hash tables */
111 * Call sites are the same for all threads, so we track them in a separate hash
137 * It pays off to _not_ hash callsite->file; hashing a string is slow, and
138 * without it we still get a pretty unique hash.
171 /* without the objects we need to hash the file name to get a decent hash */
270 uint32_t hash; in qsp_callsite_find() local
272 hash = qsp_callsite_hash(orig); in qsp_callsite_find()
273 callsite = qht_lookup(&qsp_callsite_ht, orig, hash); in qsp_callsite_find()
279 qht_insert(&qsp_callsite_ht, callsite, hash, &existing); in qsp_callsite_find()
289 qsp_entry_create(struct qht *ht, const QSPEntry *entry, uint32_t hash) in qsp_entry_create() argument
298 qht_insert(ht, e, hash, &existing); in qsp_entry_create()
307 qsp_entry_find(struct qht *ht, const QSPEntry *entry, uint32_t hash) in qsp_entry_find() argument
311 e = qht_lookup(ht, entry, hash); in qsp_entry_find()
313 e = qsp_entry_create(ht, entry, hash); in qsp_entry_find()
332 uint32_t hash; in qsp_entry_get() local
339 hash = qsp_entry_hash(&orig); in qsp_entry_get()
340 return qsp_entry_find(&qsp_ht, &orig, hash); in qsp_entry_get()
344 * @e is in the global hash table; it is only written to by the current thread,
533 uint32_t hash; in qsp_aggregate() local
535 hash = qsp_entry_no_thread_hash(e); in qsp_aggregate()
536 agg = qsp_entry_find(ht, e, hash); in qsp_aggregate()
538 * The entry is in the global hash table; read from it atomically (as in in qsp_aggregate()
545 static void qsp_iter_diff(void *p, uint32_t hash, void *htp) in qsp_iter_diff() argument
551 new = qht_lookup(ht, old, hash); in qsp_iter_diff()
563 bool removed = qht_remove(ht, new, hash); in qsp_iter_diff()
580 uint32_t hash; in qsp_iter_callsite_coalesce() local
582 hash = qsp_entry_no_thread_obj_hash(old); in qsp_iter_callsite_coalesce()
583 e = qht_lookup(ht, old, hash); in qsp_iter_callsite_coalesce()
585 e = qsp_entry_create(ht, old, hash); in qsp_iter_callsite_coalesce()
605 * First, see if there's a prior snapshot, so that we read the global hash in qsp_mktree()
615 /* Aggregate all results from the global hash table into a local one */ in qsp_mktree()
632 /* free the previous hash table, and point htp to coalesce_ht */ in qsp_mktree()
638 /* sort the hash table elements by using a tree */ in qsp_mktree()
641 /* free the hash table, but keep the elements (those are in the tree now) */ in qsp_mktree()