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 ---