Lines Matching refs:plh
246 #define plh_lock(plh) while(!os_atomic_cmpxchg(&(plh)->plh_lock, 0, 1, acquire)) { loop_wait(); } argument
247 #define plh_unlock(plh) os_atomic_store(&(plh)->plh_lock, 0, release); argument
2863 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in stackshot_plh_est_size() local
2870 return SIZE_EST(size * sizeof(*plh->plh_array)) + in stackshot_plh_est_size()
2871 SIZE_EST(size * sizeof(*plh->plh_chains)) + in stackshot_plh_est_size()
2873 SIZE_EST((1ul << STACKSHOT_PLH_SHIFT) * sizeof(*plh->plh_hash)); in stackshot_plh_est_size()
2889 struct port_label_hash plh = { in stackshot_plh_setup() local
2906 size = plh.plh_size; in stackshot_plh_setup()
2910 plh.plh_array = stackshot_alloc_with_size(size * sizeof(*plh.plh_array), &error); in stackshot_plh_setup()
2911 plh.plh_chains = stackshot_alloc_with_size(size * sizeof(*plh.plh_chains), &error); in stackshot_plh_setup()
2923 …plh.plh_hash = stackshot_alloc_with_size((1ul << STACKSHOT_PLH_SHIFT) * sizeof(*plh.plh_hash), &er… in stackshot_plh_setup()
2927 …if (plh.plh_array == NULL || plh.plh_chains == NULL || percpu_alloc_failed || plh.plh_hash == NULL… in stackshot_plh_setup()
2932 plh.plh_array[x] = NULL; in stackshot_plh_setup()
2933 plh.plh_chains[x] = -1; in stackshot_plh_setup()
2936 plh.plh_hash[x] = -1; in stackshot_plh_setup()
2938 stackshot_ctx.sc_plh = plh; /* structure assignment */ in stackshot_plh_setup()
2987 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in stackshot_plh_lookup_locked() local
2995 PLH_STAT_OP(os_atomic_inc(&plh->plh_lookup_send, relaxed)); in stackshot_plh_lookup_locked()
2998 PLH_STAT_OP(os_atomic_inc(&plh->plh_lookup_receive, relaxed)); in stackshot_plh_lookup_locked()
3003 PLH_STAT_OP(os_atomic_inc(&plh->plh_lookups, relaxed)); in stackshot_plh_lookup_locked()
3004 if (plh->plh_size == 0) { in stackshot_plh_lookup_locked()
3010 for (cur = plh->plh_hash[hash]; cur >= 0; cur = plh->plh_chains[cur]) { in stackshot_plh_lookup_locked()
3012 if (cur >= plh->plh_count || depth > plh->plh_count || depth > plh->plh_size) { in stackshot_plh_lookup_locked()
3013 PLH_STAT_OP(os_atomic_inc(&plh->plh_bad, relaxed)); in stackshot_plh_lookup_locked()
3014 PLH_STAT_OP(os_atomic_add(&plh->plh_bad_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3017 assert(cur < plh->plh_count); in stackshot_plh_lookup_locked()
3018 if (plh->plh_array[cur] == ispl) { in stackshot_plh_lookup_locked()
3019 PLH_STAT_OP(os_atomic_inc(&plh->plh_found, relaxed)); in stackshot_plh_lookup_locked()
3020 PLH_STAT_OP(os_atomic_add(&plh->plh_found_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3027 PLH_STAT_OP(os_atomic_inc(&plh->plh_bad, relaxed)); in stackshot_plh_lookup_locked()
3028 PLH_STAT_OP(os_atomic_add(&plh->plh_bad_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3031 PLH_STAT_OP(os_atomic_inc(&plh->plh_insert, relaxed)); in stackshot_plh_lookup_locked()
3032 PLH_STAT_OP(os_atomic_add(&plh->plh_insert_depth, depth, relaxed)); in stackshot_plh_lookup_locked()
3033 if (plh->plh_count >= plh->plh_size) { in stackshot_plh_lookup_locked()
3036 cur = plh->plh_count; in stackshot_plh_lookup_locked()
3037 plh->plh_count++; in stackshot_plh_lookup_locked()
3038 plh->plh_array[cur] = ispl; in stackshot_plh_lookup_locked()
3039 plh->plh_chains[cur] = plh->plh_hash[hash]; in stackshot_plh_lookup_locked()
3040 plh->plh_hash[hash] = cur; in stackshot_plh_lookup_locked()
3057 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in kdp_stackshot_plh_record_locked() local
3059 uint16_t count = plh->plh_count; in kdp_stackshot_plh_record_locked()
3064 count <= plh->plh_size && plh->plh_size <= STACKSHOT_PLH_SIZE_MAX) { in kdp_stackshot_plh_record_locked()
3065 struct ipc_service_port_label **arr = plh->plh_array; in kdp_stackshot_plh_record_locked()
3124 struct port_label_hash *plh = &stackshot_ctx.sc_plh; in kdp_stackshot_plh_stats() local
3126 #define PLH_STAT(x) do { if (os_atomic_load(&plh->x, relaxed) != 0) { \ in kdp_stackshot_plh_stats()
3127 …kcd_exit_on_error(kcdata_add_uint32_with_description(stackshot_kcdata_p, os_atomic_load(&plh->x, r… in kdp_stackshot_plh_stats()