MCPcopy Create free account
hub / github.com/F-Stack/f-stack / rte_hash_free

Function rte_hash_free

dpdk/lib/hash/rte_cuckoo_hash.c:483–528  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

481}
482
483void
484rte_hash_free(struct rte_hash *h)
485{
486 struct rte_tailq_entry *te;
487 struct rte_hash_list *hash_list;
488
489 if (h == NULL)
490 return;
491
492 hash_list = RTE_TAILQ_CAST(rte_hash_tailq.head, rte_hash_list);
493
494 rte_mcfg_tailq_write_lock();
495
496 /* find out tailq entry */
497 TAILQ_FOREACH(te, hash_list, next) {
498 if (te->data == (void *) h)
499 break;
500 }
501
502 if (te == NULL) {
503 rte_mcfg_tailq_write_unlock();
504 return;
505 }
506
507 TAILQ_REMOVE(hash_list, te, next);
508
509 rte_mcfg_tailq_write_unlock();
510
511 if (h->dq)
512 rte_rcu_qsbr_dq_delete(h->dq);
513
514 if (h->use_local_cache)
515 rte_free(h->local_free_slots);
516 if (h->writer_takes_lock)
517 rte_free(h->readwrite_lock);
518 rte_ring_free(h->free_slots);
519 rte_ring_free(h->free_ext_bkts);
520 rte_free(h->key_store);
521 rte_free(h->buckets);
522 rte_free(h->buckets_ext);
523 rte_free(h->tbl_chng_cnt);
524 rte_free(h->ext_bkt_to_free);
525 rte_free(h->hash_rcu_cfg);
526 rte_free(h);
527 rte_free(te);
528}
529
530hash_sig_t
531rte_hash_hash(const struct rte_hash *h, const void *key)

Callers 15

rte_ipsec_sad_destroyFunction · 0.85
rte_lpm6_createFunction · 0.85
rte_lpm6_freeFunction · 0.85
rte_vhost_crypto_createFunction · 0.85
rte_vhost_crypto_freeFunction · 0.85
hinic_osdep_deinitFunction · 0.85
enic_fm_initFunction · 0.85
enic_fm_destroyFunction · 0.85
nfp_flow_priv_initFunction · 0.85
nfp_flow_priv_uninitFunction · 0.85

Calls 5

rte_rcu_qsbr_dq_deleteFunction · 0.85
rte_freeFunction · 0.85
rte_ring_freeFunction · 0.85

Tested by 15

test_rcu_qsbr_sw_sv_3qsFunction · 0.68
test_rcu_qsbr_mw_mv_mqsFunction · 0.68
hash_cleanFunction · 0.68
hash_create_freeFunction · 0.68
test_hash_multiwriterFunction · 0.68
generate_keysFunction · 0.68