Home
last modified time | relevance | path

Searched refs:fob (Results 1 – 6 of 6) sorted by relevance

/xnu-11417.121.6/bsd/skywalk/nexus/flowswitch/flow/
H A Dflow_owner.c50 struct flow_owner_bucket *fob; in flow_owner_buckets_alloc() local
54 *fob_sz = P2ROUNDUP(sizeof(*fob), cache_sz); in flow_owner_buckets_alloc()
56 fob = sk_alloc_type_hash(KT_SK_FOB, fob_tot_sz, Z_WAITOK, skmem_tag_fsw_fob_hash); in flow_owner_buckets_alloc()
57 if (__improbable(fob == NULL)) { in flow_owner_buckets_alloc()
71 ASSERT(IS_P2ALIGNED(fob, cache_sz)); in flow_owner_buckets_alloc()
75 "(total %zu bytes) ALLOC", SK_KVA(fob), fob_cnt, in flow_owner_buckets_alloc()
78 return fob; in flow_owner_buckets_alloc()
82 flow_owner_buckets_free(struct flow_owner_bucket *fob, size_t tot_sz) in flow_owner_buckets_free() argument
84 SK_DF(SK_VERB_MEM, "fob 0x%llx FREE", SK_KVA(fob)); in flow_owner_buckets_free()
85 sk_free_type_hash(KT_SK_FOB, tot_sz, fob); in flow_owner_buckets_free()
[all …]
H A Dflow_manager.c210 struct flow_owner_bucket *fob = flow_mgr_get_fob_at_idx(fm, i); in flow_mgr_create() local
211 flow_owner_bucket_init(fob); in flow_mgr_create()
213 *(size_t *)(uintptr_t)&fob->fob_idx = i; in flow_mgr_create()
273 struct flow_owner_bucket *fob = in flow_mgr_destroy() local
275 ASSERT(fob->fob_idx == i); in flow_mgr_destroy()
276 flow_owner_bucket_destroy(fob); in flow_mgr_destroy()
341 struct flow_owner_bucket *fob = in flow_mgr_terminate() local
343 FOB_LOCK(fob); in flow_mgr_terminate()
344 fob->fob_busy_flags |= FOBF_DEAD; in flow_mgr_terminate()
347 struct flow_owner_bucket *fob = in flow_mgr_terminate() local
[all …]
H A Dflow_entry.c158 flow_owner_find_by_pid(struct flow_owner_bucket *fob, pid_t pid, void *context, in flow_owner_find_by_pid() argument
165 FOB_LOCK_ASSERT_HELD(fob); in flow_owner_find_by_pid()
166 return RB_FIND(flow_owner_tree, &fob->fob_owner_head, &find); in flow_owner_find_by_pid()
/xnu-11417.121.6/bsd/skywalk/nexus/flowswitch/
H A Dfsw_flow.c43 struct flow_owner_bucket *fob; in fsw_flow_add() local
101 fob = flow_mgr_get_fob_by_pid(fm, pid); in fsw_flow_add()
102 FOB_LOCK_SPIN(fob); in fsw_flow_add()
103 while (fob->fob_busy_flags & (FOBF_OPEN_BUSY | FOBF_CLOSE_BUSY)) { in fsw_flow_add()
104 if (++(fob->fob_open_waiters) == 0) { /* wraparound */ in fsw_flow_add()
105 fob->fob_open_waiters++; in fsw_flow_add()
107 if ((*error = msleep(&fob->fob_open_waiters, &fob->fob_lock, in fsw_flow_add()
112 ASSERT(fob->fob_open_waiters > 0); in fsw_flow_add()
113 fob->fob_open_waiters--; in fsw_flow_add()
114 FOB_UNLOCK(fob); in fsw_flow_add()
[all …]
H A Dfsw.c1921 struct flow_owner_bucket *fob = flow_mgr_get_fob_at_idx(fm, i); in fsw_mib_get_flow_owner() local
1922 FOB_LOCK(fob); in fsw_mib_get_flow_owner()
1923 RB_FOREACH(fo, flow_owner_tree, &fob->fob_owner_head) { in fsw_mib_get_flow_owner()
1932 FOB_UNLOCK(fob); in fsw_mib_get_flow_owner()
H A Dfsw_dp.c4820 struct flow_owner_bucket *fob = flow_mgr_get_fob_at_idx(fm, i); in fsw_process_deferred() local
4827 if (!FOB_TRY_LOCK(fob)) { in fsw_process_deferred()
4831 FOB_LOCK(fob); in fsw_process_deferred()
4834 FOB_LOCK_ASSERT_HELD(fob); in fsw_process_deferred()
4835 RB_FOREACH(fo, flow_owner_tree, &fob->fob_owner_head) { in fsw_process_deferred()
4874 FOB_UNLOCK(fob); in fsw_process_deferred()