Lines Matching refs:plh

255 #define plh_lock(plh) while(!os_atomic_cmpxchg(&(plh)->plh_lock, 0, 1, acquire)) { loop_wait(); }  argument
256 #define plh_unlock(plh) os_atomic_store(&(plh)->plh_lock, 0, release); argument
2951 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in stackshot_plh_est_size() local
2958 return SIZE_EST(size * sizeof(*plh->plh_array)) + in stackshot_plh_est_size()
2959 SIZE_EST(size * sizeof(*plh->plh_chains)) + in stackshot_plh_est_size()
2961 SIZE_EST((1ul << STACKSHOT_PLH_SHIFT) * sizeof(*plh->plh_hash)); in stackshot_plh_est_size()
2977 struct port_label_hash plh = { in stackshot_plh_setup() local
2994 size = plh.plh_size; in stackshot_plh_setup()
2998 plh.plh_array = stackshot_alloc_with_size(size * sizeof(*plh.plh_array), &error); in stackshot_plh_setup()
2999 plh.plh_chains = stackshot_alloc_with_size(size * sizeof(*plh.plh_chains), &error); in stackshot_plh_setup()
3011plh.plh_hash = stackshot_alloc_with_size((1ul << STACKSHOT_PLH_SHIFT) * sizeof(*plh.plh_hash), &er… in stackshot_plh_setup()
3015 …if (plh.plh_array == NULL || plh.plh_chains == NULL || percpu_alloc_failed || plh.plh_hash == NULL… in stackshot_plh_setup()
3020 plh.plh_array[x] = NULL; in stackshot_plh_setup()
3021 plh.plh_chains[x] = -1; in stackshot_plh_setup()
3024 plh.plh_hash[x] = -1; in stackshot_plh_setup()
3026 stackshot_ctx.sc_plh = plh; /* structure assignment */ in stackshot_plh_setup()
3076 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in stackshot_plh_lookup_locked() local
3084 PLH_STAT_OP(os_atomic_inc(&plh->plh_lookup_send, relaxed)); in stackshot_plh_lookup_locked()
3087 PLH_STAT_OP(os_atomic_inc(&plh->plh_lookup_receive, relaxed)); in stackshot_plh_lookup_locked()
3092 PLH_STAT_OP(os_atomic_inc(&plh->plh_lookups, relaxed)); in stackshot_plh_lookup_locked()
3093 if (plh->plh_size == 0) { in stackshot_plh_lookup_locked()
3099 for (cur = plh->plh_hash[hash]; cur >= 0; cur = plh->plh_chains[cur]) { in stackshot_plh_lookup_locked()
3101 if (cur >= plh->plh_count || depth > plh->plh_count || depth > plh->plh_size) { in stackshot_plh_lookup_locked()
3102 PLH_STAT_OP(os_atomic_inc(&plh->plh_bad, relaxed)); in stackshot_plh_lookup_locked()
3103 PLH_STAT_OP(os_atomic_add(&plh->plh_bad_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3106 assert(cur < plh->plh_count); in stackshot_plh_lookup_locked()
3107 if (plh->plh_array[cur] == ispl) { in stackshot_plh_lookup_locked()
3108 PLH_STAT_OP(os_atomic_inc(&plh->plh_found, relaxed)); in stackshot_plh_lookup_locked()
3109 PLH_STAT_OP(os_atomic_add(&plh->plh_found_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3116 PLH_STAT_OP(os_atomic_inc(&plh->plh_bad, relaxed)); in stackshot_plh_lookup_locked()
3117 PLH_STAT_OP(os_atomic_add(&plh->plh_bad_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3120 PLH_STAT_OP(os_atomic_inc(&plh->plh_insert, relaxed)); in stackshot_plh_lookup_locked()
3121 PLH_STAT_OP(os_atomic_add(&plh->plh_insert_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3122 if (plh->plh_count >= plh->plh_size) { in stackshot_plh_lookup_locked()
3125 cur = plh->plh_count; in stackshot_plh_lookup_locked()
3126 plh->plh_count++; in stackshot_plh_lookup_locked()
3127 plh->plh_array[cur] = ispl; in stackshot_plh_lookup_locked()
3128 plh->plh_chains[cur] = plh->plh_hash[hash]; in stackshot_plh_lookup_locked()
3129 plh->plh_hash[hash] = cur; in stackshot_plh_lookup_locked()
3146 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in kdp_stackshot_plh_record_locked() local
3148 uint16_t count = plh->plh_count; in kdp_stackshot_plh_record_locked()
3153 count <= plh->plh_size && plh->plh_size <= STACKSHOT_PLH_SIZE_MAX) { in kdp_stackshot_plh_record_locked()
3154 struct ipc_service_port_label **arr = plh->plh_array; in kdp_stackshot_plh_record_locked()
3223 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in kdp_stackshot_plh_stats() local
3225 #define PLH_STAT(x) do { if (os_atomic_load(&plh->x, relaxed) != 0) { \ in kdp_stackshot_plh_stats()
3226 …kcd_exit_on_error(kcdata_add_uint32_with_description(stackshot_kcdata_p, os_atomic_load(&plh->x, r… in kdp_stackshot_plh_stats()