evlist.c (0588000eac9ba4178cebade437da3b28e8fad48f) | evlist.c (cac21425578abddc4e9f529845832a57ba27ce0f) |
---|---|
1/* 2 * Copyright (C) 2011, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com> 3 * 4 * Parts came from builtin-{top,stat,record}.c, see those files for further 5 * copyright notes. 6 * 7 * Released under the GPL v2. (and only v2, not any later version) 8 */ --- 38 unchanged lines hidden (view full) --- 47 perf_evlist__init(evlist, cpus, threads); 48 49 return evlist; 50} 51 52void perf_evlist__config_attrs(struct perf_evlist *evlist, 53 struct perf_record_opts *opts) 54{ | 1/* 2 * Copyright (C) 2011, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com> 3 * 4 * Parts came from builtin-{top,stat,record}.c, see those files for further 5 * copyright notes. 6 * 7 * Released under the GPL v2. (and only v2, not any later version) 8 */ --- 38 unchanged lines hidden (view full) --- 47 perf_evlist__init(evlist, cpus, threads); 48 49 return evlist; 50} 51 52void perf_evlist__config_attrs(struct perf_evlist *evlist, 53 struct perf_record_opts *opts) 54{ |
55 struct perf_evsel *evsel, *first; | 55 struct perf_evsel *evsel; |
56 57 if (evlist->cpus->map[0] < 0) 58 opts->no_inherit = true; 59 | 56 57 if (evlist->cpus->map[0] < 0) 58 opts->no_inherit = true; 59 |
60 first = perf_evlist__first(evlist); 61 | |
62 list_for_each_entry(evsel, &evlist->entries, node) { | 60 list_for_each_entry(evsel, &evlist->entries, node) { |
63 perf_evsel__config(evsel, opts, first); | 61 perf_evsel__config(evsel, opts); |
64 65 if (evlist->nr_entries > 1) 66 evsel->attr.sample_type |= PERF_SAMPLE_ID; 67 } 68} 69 70static void perf_evlist__purge(struct perf_evlist *evlist) 71{ --- 248 unchanged lines hidden (view full) --- 320 if (!perf_evlist__sample_id_all(evlist)) 321 return perf_evlist__first(evlist); 322 323 return NULL; 324} 325 326union perf_event *perf_evlist__mmap_read(struct perf_evlist *evlist, int idx) 327{ | 62 63 if (evlist->nr_entries > 1) 64 evsel->attr.sample_type |= PERF_SAMPLE_ID; 65 } 66} 67 68static void perf_evlist__purge(struct perf_evlist *evlist) 69{ --- 248 unchanged lines hidden (view full) --- 318 if (!perf_evlist__sample_id_all(evlist)) 319 return perf_evlist__first(evlist); 320 321 return NULL; 322} 323 324union perf_event *perf_evlist__mmap_read(struct perf_evlist *evlist, int idx) 325{ |
328 /* XXX Move this to perf.c, making it generally available */ 329 unsigned int page_size = sysconf(_SC_PAGE_SIZE); | |
330 struct perf_mmap *md = &evlist->mmap[idx]; 331 unsigned int head = perf_mmap__read_head(md); 332 unsigned int old = md->prev; 333 unsigned char *data = md->base + page_size; 334 union perf_event *event = NULL; 335 336 if (evlist->overwrite) { 337 /* --- 185 unchanged lines hidden (view full) --- 523 * 524 * perf_mmap__write_tail(m, head) 525 * 526 * Using perf_evlist__read_on_cpu does this automatically. 527 */ 528int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages, 529 bool overwrite) 530{ | 326 struct perf_mmap *md = &evlist->mmap[idx]; 327 unsigned int head = perf_mmap__read_head(md); 328 unsigned int old = md->prev; 329 unsigned char *data = md->base + page_size; 330 union perf_event *event = NULL; 331 332 if (evlist->overwrite) { 333 /* --- 185 unchanged lines hidden (view full) --- 519 * 520 * perf_mmap__write_tail(m, head) 521 * 522 * Using perf_evlist__read_on_cpu does this automatically. 523 */ 524int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages, 525 bool overwrite) 526{ |
531 unsigned int page_size = sysconf(_SC_PAGE_SIZE); | |
532 struct perf_evsel *evsel; 533 const struct cpu_map *cpus = evlist->cpus; 534 const struct thread_map *threads = evlist->threads; 535 int prot = PROT_READ | (overwrite ? 0 : PROT_WRITE), mask; 536 537 /* 512 kiB: default amount of unprivileged mlocked memory */ 538 if (pages == UINT_MAX) 539 pages = (512 * 1024) / page_size; --- 304 unchanged lines hidden --- | 527 struct perf_evsel *evsel; 528 const struct cpu_map *cpus = evlist->cpus; 529 const struct thread_map *threads = evlist->threads; 530 int prot = PROT_READ | (overwrite ? 0 : PROT_WRITE), mask; 531 532 /* 512 kiB: default amount of unprivileged mlocked memory */ 533 if (pages == UINT_MAX) 534 pages = (512 * 1024) / page_size; --- 304 unchanged lines hidden --- |