| /linux/tools/perf/tests/ |
| H A D | hists_output.c | 97 struct hist_entry *he; in del_hist_entries() local 112 he = rb_entry(node, struct hist_entry, rb_node); in del_hist_entries() 114 rb_erase_cached(&he->rb_node_in, root_in); in del_hist_entries() 115 hist_entry__delete(he); in del_hist_entries() 131 #define COMM(he) (thread__comm_str(he->thread)) argument 132 #define DSO(he) (dso__short_name(map__dso(he->ms.map))) argument 133 #define SYM(he) (he->ms.sym->name) argument 134 #define CPU(he) (he->cpu) argument 135 #define PID(he) (thread__tid(he->thread)) argument 142 struct hist_entry *he; in test1() local [all …]
|
| H A D | hists_common.c | 177 struct hist_entry *he; in print_hists_in() local 179 he = rb_entry(node, struct hist_entry, rb_node_in); in print_hists_in() 181 if (!he->filtered) { in print_hists_in() 182 struct dso *dso = map__dso(he->ms.map); in print_hists_in() 185 i, thread__comm_str(he->thread), in print_hists_in() 187 he->ms.sym->name, he->stat.period); in print_hists_in() 206 struct hist_entry *he; in print_hists_out() local 208 he = rb_entry(node, struct hist_entry, rb_node); in print_hists_out() 210 if (!he in print_hists_out() [all...] |
| H A D | hists_link.c | 70 struct hist_entry *he; in add_hist_entries() local 92 he = hists__add_entry(hists, &al, NULL, in add_hist_entries() 94 if (he == NULL) { in add_hist_entries() 112 he = hists__add_entry(hists, &al, NULL, in add_hist_entries() 114 if (he == NULL) { in add_hist_entries() 176 struct hist_entry *he; in __validate_match() local 178 he = rb_entry(node, struct hist_entry, rb_node_in); in __validate_match() 180 if (hist_entry__has_pairs(he)) { in __validate_match() 183 he->thread, he->ms.map, he->ms.sym)) { in __validate_match() 228 struct hist_entry *he; in __validate_link() local [all …]
|
| H A D | hists_cumulate.c | 132 struct hist_entry *he; in del_hist_entries() local 147 he = rb_entry(node, struct hist_entry, rb_node); in del_hist_entries() 149 rb_erase_cached(&he->rb_node_in, root_in); in del_hist_entries() 150 hist_entry__delete(he); in del_hist_entries() 166 #define COMM(he) (thread__comm_str(he->thread)) argument 167 #define DSO(he) (dso__short_name(map__dso(he->ms.map))) argument 168 #define SYM(he) (he->ms.sym->name) argument 169 #define CPU(he) (he->cpu) argument 170 #define DEPTH(he) (he->callchain->max_depth) argument 195 struct hist_entry *he; in do_test() local [all …]
|
| /linux/tools/perf/util/ |
| H A D | hist.c | 39 struct hist_entry *he); 41 struct hist_entry *he); 43 struct hist_entry *he); 45 struct hist_entry *he); 47 struct hist_entry *he); 339 static int hists__update_mem_stat(struct hists *hists, struct hist_entry *he, in hists__update_mem_stat() argument 345 if (he->mem_stat == NULL) { in hists__update_mem_stat() 346 he->mem_stat = calloc(hists->nr_mem_stats, sizeof(*he->mem_stat)); in hists__update_mem_stat() 347 if (he->mem_stat == NULL) in hists__update_mem_stat() 356 he->mem_stat[i].entries[idx] += period; in hists__update_mem_stat() [all …]
|
| H A D | sort.c | 116 static int hist_entry__thread_snprintf(struct hist_entry *he, char *bf, in hist_entry__thread_snprintf() argument 119 const char *comm = thread__comm_str(he->thread); in hist_entry__thread_snprintf() 122 return repsep_snprintf(bf, size, "%7d:%-*.*s", thread__tid(he->thread), in hist_entry__thread_snprintf() 126 static int hist_entry__thread_filter(struct hist_entry *he, int type, const void *arg) in hist_entry__thread_filter() argument 133 return th && !RC_CHK_EQUAL(he->thread, th); in hist_entry__thread_filter() 152 static int hist_entry__tgid_snprintf(struct hist_entry *he, char *bf, in hist_entry__tgid_snprintf() argument 155 int tgid = thread__pid(he->thread); in hist_entry__tgid_snprintf() 159 if (thread__pid(he->thread) == thread__tid(he->thread)) { in hist_entry__tgid_snprintf() 160 comm = thread__comm_str(he->thread); in hist_entry__tgid_snprintf() 162 struct maps *maps = thread__maps(he->thread); in hist_entry__tgid_snprintf() [all …]
|
| H A D | block-info.c | 128 int block_info__process_sym(struct hist_entry *he, struct block_hist *bh, in block_info__process_sym() argument 137 if (!he->ms.map || !he->ms.sym) in block_info__process_sym() 141 al.map = he->ms.map; in block_info__process_sym() 142 al.sym = he->ms.sym; in block_info__process_sym() 144 notes = symbol__annotation(he->ms.sym); in block_info__process_sym() 148 for (unsigned int i = 0; i < symbol__size(he->ms.sym); i++) { in block_info__process_sym() 157 init_block_info(bi, he->ms.sym, &ch[i], i, in block_info__process_sym() 160 hists_to_evsel(he->hists)); in block_info__process_sym() 212 struct hist_entry *he) in block_total_cycles_pct_entry() argument 215 struct block_info *bi = he->block_info; in block_total_cycles_pct_entry() [all …]
|
| H A D | hist.h | 160 struct hist_entry *he; member 321 static __pure inline bool hist_entry__has_callchains(struct hist_entry *he) in hist_entry__has_callchains() argument 323 return he->callchain_size != 0; in hist_entry__has_callchains() 326 static inline bool hist_entry__has_pairs(struct hist_entry *he) in hist_entry__has_pairs() argument 328 return !list_empty(&he->pairs.node); in hist_entry__has_pairs() 331 static inline struct hist_entry *hist_entry__next_pair(struct hist_entry *he) in hist_entry__next_pair() argument 333 if (hist_entry__has_pairs(he)) in hist_entry__next_pair() 334 return list_entry(he->pairs.node.next, struct hist_entry, pairs.node); in hist_entry__next_pair() 339 struct hist_entry *he) in hist_entry__add_pair() argument 341 list_add_tail(&pair->pairs.node, &he->pairs.head); in hist_entry__add_pair() [all …]
|
| H A D | annotate.h | 102 struct sym_hist_entry he; member 203 struct hist_entry *he; member 436 int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *sample, 479 struct hist_entry *he); 483 int hist_entry__annotate_printf(struct hist_entry *he, struct evsel *evsel); 484 int hist_entry__tty_annotate(struct hist_entry *he, struct evsel *evsel); 485 int hist_entry__tty_annotate2(struct hist_entry *he, struct evsel *evsel); 553 struct annotated_data_type *hist_entry__get_data_type(struct hist_entry *he);
|
| H A D | sort.h | 123 int (*se_snprintf)(struct hist_entry *he, char *bf, size_t size, 125 int (*se_filter)(struct hist_entry *he, int type, const void *arg); 126 void (*se_init)(struct hist_entry *he); 160 char *hist_entry__srcline(struct hist_entry *he);
|
| H A D | annotate-data.h | 243 int hist_entry__annotate_data_tty(struct hist_entry *he, struct evsel *evsel); 291 static inline int hist_entry__annotate_data_tty(struct hist_entry *he __maybe_unused, in hist_entry__annotate_data_tty() 308 int hist_entry__annotate_data_tui(struct hist_entry *he, struct evsel *evsel, 311 static inline int hist_entry__annotate_data_tui(struct hist_entry *he __maybe_unused, in hist_entry__annotate_data_tui()
|
| H A D | annotate.c | 588 int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *sample, in hist_entry__inc_addr_samples() argument 591 return symbol__inc_addr_samples(&he->ms, evsel, ip, sample); in hist_entry__inc_addr_samples() 764 __hist_entry__get_data_type(struct hist_entry *he, struct arch *arch, 784 struct symbol *sym = apd->he->ms.sym; in annotation_line__print() 840 data->he.period); in annotation_line__print() 843 data->he.nr_samples); in annotation_line__print() 856 data_type = __hist_entry__get_data_type(apd->he, apd->arch, in annotation_line__print() 929 data->he.period = period; in calc_percent() 930 data->he.nr_samples = hits; in calc_percent() 1218 int hist_entry__annotate_printf(struct hist_entry *he, struct evsel *evsel) in hist_entry__annotate_printf() argument [all …]
|
| /linux/tools/perf/ |
| H A D | builtin-c2c.c | 85 struct hist_entry he; member 168 return &c2c_he->he; in c2c_he_zalloc() 177 static void c2c_he_free(void *he) in c2c_he_free() argument 181 c2c_he = container_of(he, struct c2c_hist_entry, he); in c2c_he_free() 205 he__get_c2c_hists(struct hist_entry *he, in he__get_c2c_hists() argument 214 c2c_he = container_of(he, struct c2c_hist_entry, he); in he__get_c2c_hists() 303 struct hist_entry *he, in perf_c2c__evsel_hists_inc_stats() argument 308 hists__inc_nr_samples(evsel_hists, he->filtered); in perf_c2c__evsel_hists_inc_stats() 310 if (!he->filtered) in perf_c2c__evsel_hists_inc_stats() 323 struct hist_entry *he; in process_sample_event() local [all …]
|
| H A D | builtin-diff.c | 273 static double period_percent(struct hist_entry *he, u64 period) in period_percent() argument 275 u64 total = hists__total_period(he->hists); in period_percent() 280 static double compute_delta(struct hist_entry *he, struct hist_entry *pair) in compute_delta() argument 282 double old_percent = period_percent(he, he->stat.period); in compute_delta() 290 static double compute_ratio(struct hist_entry *he, struct hist_entry *pair) in compute_ratio() argument 292 double old_period = he->stat.period ?: 1; in compute_ratio() 300 static s64 compute_wdiff(struct hist_entry *he, struct hist_entry *pair) in compute_wdiff() argument 302 u64 old_period = he->stat.period; in compute_wdiff() 312 static int formula_delta(struct hist_entry *he, struct hist_entry *pair, in formula_delta() argument 315 u64 he_total = he->hists->stats.total_period; in formula_delta() [all …]
|
| H A D | builtin-annotate.c | 177 struct hist_entry *he = iter->he; in hist_iter__branch_callback() local 183 bi = he->branch_info; in hist_iter__branch_callback() 244 struct hist_entry *he; in evsel__add_sample() local 275 he = hists__add_entry(hists, al, NULL, NULL, NULL, NULL, sample, true); in evsel__add_sample() 276 if (he == NULL) in evsel__add_sample() 279 ret = hist_entry__inc_addr_samples(he, sample, evsel, al->addr); in evsel__add_sample() 325 static int hist_entry__stdio_annotate(struct hist_entry *he, in hist_entry__stdio_annotate() argument 330 return hist_entry__tty_annotate2(he, evsel); in hist_entry__stdio_annotate() 332 return hist_entry__tty_annotate(he, evsel); in hist_entry__stdio_annotate() 422 struct hist_entry *he = rb_entry(nd, struct hist_entry, rb_node); in hists__find_annotations() local [all …]
|
| H A D | builtin-kvm.c | 95 struct hist_entry *he); 118 struct hist_entry *he) in ev_name_entry() argument 120 int width = fmt_width(fmt, hpp, he->hists); in ev_name_entry() 122 return scnprintf(hpp->buf, hpp->size, "%*s", width, he->kvm_info->name); in ev_name_entry() 142 event_left = container_of(left, struct kvm_event, he); \ 143 event_right = container_of(right, struct kvm_event, he); \ 159 struct hist_entry *he) \ 162 int width = fmt_width(fmt, hpp, he->hists); \ 165 event = container_of(he, struct kvm_event, he); \ 209 struct hist_entry *he) in ev_entry_mean() argument [all …]
|
| H A D | builtin-top.c | 112 static int perf_top__parse_source(struct perf_top *top, struct hist_entry *he) in perf_top__parse_source() argument 121 if (!he || !he->ms.sym) in perf_top__parse_source() 124 evsel = hists_to_evsel(he->hists); in perf_top__parse_source() 126 sym = he->ms.sym; in perf_top__parse_source() 127 map = he->ms.map; in perf_top__parse_source() 151 err = symbol__annotate(&he->ms, evsel, NULL); in perf_top__parse_source() 153 top->sym_filter_entry = he; in perf_top__parse_source() 156 symbol__strerror_disassemble(&he->ms, err, msg, sizeof(msg)); in perf_top__parse_source() 164 static void __zero_source_counters(struct hist_entry *he) in __zero_source_counters() argument 166 struct symbol *sym = he->ms.sym; in __zero_source_counters() [all …]
|
| /linux/tools/perf/ui/browsers/ |
| H A D | hists.c | 71 struct hist_entry *he = in hist_browser__get_folding() local 74 if (he->leaf && he->unfolded) in hist_browser__get_folding() 75 unfolded_rows += he->nr_rows; in hist_browser__get_folding() 162 static char hist_entry__folded(const struct hist_entry *he) in hist_entry__folded() argument 164 return he->has_children ? tree__folded_sign(he->unfolded) : ' '; in hist_entry__folded() 273 static int hierarchy_count_rows(struct hist_browser *hb, struct hist_entry *he, in hierarchy_count_rows() argument 280 if (he->leaf) in hierarchy_count_rows() 281 return callchain__count_rows(&he->sorted_chain); in hierarchy_count_rows() 283 if (he->has_no_entry) in hierarchy_count_rows() 286 node = rb_first_cached(&he->hroot_out); in hierarchy_count_rows() [all …]
|
| H A D | annotate-data.c | 155 struct hist_entry *he = browser->b.priv; in annotated_data_browser__collect_entries() local 156 struct annotated_data_type *adt = he->mem_type; in annotated_data_browser__collect_entries() 157 struct evsel *evsel = hists_to_evsel(he->hists); in annotated_data_browser__collect_entries() 336 struct hist_entry *he = uib->priv; in browser__show() local 337 struct annotated_data_type *adt = he->mem_type; in browser__show() 343 adt->self.type_name, he->stat.nr_events); in browser__show() 392 struct hist_entry *he = uib->priv; in browser__write() local 393 struct annotated_data_type *adt = he->mem_type; in browser__write() 394 struct evsel *leader = hists_to_evsel(he->hists); in browser__write() 570 int hist_entry__annotate_data_tui(struct hist_entry *he, struct evsel *evsel, in hist_entry__annotate_data_tui() argument [all …]
|
| /linux/tools/perf/ui/stdio/ |
| H A D | hist.c | 385 static size_t hist_entry_callchain__fprintf(struct hist_entry *he, in hist_entry_callchain__fprintf() argument 389 u64 parent_samples = he->stat.period; in hist_entry_callchain__fprintf() 392 parent_samples = he->stat_acc->period; in hist_entry_callchain__fprintf() 396 return callchain__fprintf_graph(fp, &he->sorted_chain, total_samples, in hist_entry_callchain__fprintf() 400 return callchain__fprintf_graph(fp, &he->sorted_chain, total_samples, in hist_entry_callchain__fprintf() 404 return callchain__fprintf_flat(fp, &he->sorted_chain, total_samples); in hist_entry_callchain__fprintf() 407 return callchain__fprintf_folded(fp, &he->sorted_chain, total_samples); in hist_entry_callchain__fprintf() 418 int __hist_entry__snprintf(struct hist_entry *he, struct perf_hpp *hpp, in __hist_entry__snprintf() argument 427 if (symbol_conf.exclude_other && !he->parent) in __hist_entry__snprintf() 431 if (perf_hpp__should_skip(fmt, he->hists)) in __hist_entry__snprintf() [all …]
|
| /linux/kernel/locking/ |
| H A D | qspinlock_paravirt.h | 203 #define for_each_hash_entry(he, offset, hash) \ argument 204 for (hash &= ~(PV_HE_PER_LINE - 1), he = &pv_lock_hash[hash], offset = 0; \ 206 offset++, he = &pv_lock_hash[(hash + offset) & ((1 << pv_lock_hash_bits) - 1)]) 211 struct pv_hash_entry *he; in pv_hash() local 214 for_each_hash_entry(he, offset, hash) { in pv_hash() 217 if (try_cmpxchg(&he->lock, &old, lock)) { in pv_hash() 218 WRITE_ONCE(he->node, node); in pv_hash() 220 return &he->lock; in pv_hash() 239 struct pv_hash_entry *he; in pv_unhash() local 242 for_each_hash_entry(he, offset, hash) { in pv_unhash() [all …]
|
| /linux/tools/perf/ui/gtk/ |
| H A D | hists.c | 44 static u64 he_get_##_field(struct hist_entry *he) \ 46 return he->stat._field; \ 51 struct hist_entry *he) \ 53 return hpp__fmt(fmt, hpp, he, he_get_##_field, " %*.2f%%", \ 58 static u64 he_get_acc_##_field(struct hist_entry *he) \ 60 return he->stat_acc->_field; \ 65 struct hist_entry *he) \ 67 return hpp__fmt_acc(fmt, hpp, he, he_get_acc_##_field, " %*.2f%%", \ 414 struct hist_entry *he; in perf_gtk__add_hierarchy_entries() local 425 he = rb_entry(node, struct hist_entry, rb_node); in perf_gtk__add_hierarchy_entries() [all …]
|
| /linux/include/linux/ |
| H A D | rhashtable.h | 114 const struct rhash_head *he) in rht_obj() argument 116 return (char *)he - ht->p.head_offset; in rht_obj() 166 const struct rhash_head *he, const struct rhashtable_params params) in rht_head_hashfn() argument 168 const char *ptr = rht_obj(ht, he); in rht_head_hashfn() 622 struct rhash_head *he; in __rhashtable_lookup() local 631 rht_for_each_rcu_from(he, __rht_ptr_rcu(bkt, freq), tbl, hash) { in __rhashtable_lookup() 633 params.obj_cmpfn(&arg, rht_obj(ht, he)) : in __rhashtable_lookup() 634 rhashtable_compare(&arg, rht_obj(ht, he))) in __rhashtable_lookup() 636 return he; in __rhashtable_lookup() 641 } while (he != RHT_NULLS_MARKER(bkt)); in __rhashtable_lookup() [all …]
|
| /linux/tools/perf/ui/ |
| H A D | hist.c | 59 static int __hpp__fmt(struct perf_hpp *hpp, struct hist_entry *he, in __hpp__fmt() argument 64 struct hists *hists = he->hists; in __hpp__fmt() 80 values[0].val = get_field(he); in __hpp__fmt() 81 values[0].samples = he->stat.nr_events; in __hpp__fmt() 89 list_for_each_entry(pair, &he->pairs.head, pairs.node) { in __hpp__fmt() 124 struct hist_entry *he, hpp_field_fn get_field, in hpp__fmt() argument 131 return __hpp__fmt(hpp, he, get_field, fmtstr, 1, in hpp__fmt() 140 return __hpp__fmt(hpp, he, get_field, fmtstr, len, print_fn, fmtype); in hpp__fmt() 144 struct hist_entry *he, hpp_field_fn get_field, in hpp__fmt_acc() argument 153 return hpp__fmt(fmt, hpp, he, get_field, fmtstr, print_fn, fmtype); in hpp__fmt_acc() [all …]
|
| /linux/Documentation/core-api/ |
| H A D | errseq.rst | 49 Let me tell you a story about a worker drone. Now, he's a good worker 52 from out of town and he's sure to test the poor fellow too. 54 They're all handing him work to do -- so much he can't keep track of who 56 just want to know when he's finished all of the work they've handed him so 57 far and whether he made any mistakes since they last asked. 60 but he can't keep track of things at that level of detail, all he can 61 remember is the most recent mistake that he made. 90 whether he made any mistakes on any of it:: 100 glitches and he makes a mistake. He sighs a heavy sigh, and marks it 110 Note that the supervisors can't tell how many mistakes he made, only [all …]
|