Lines Matching refs:cpu_buf
11538 struct perf_cpu_buf *cpu_buf) in perf_buffer__free_cpu_buf() argument
11540 if (!cpu_buf) in perf_buffer__free_cpu_buf()
11542 if (cpu_buf->base && in perf_buffer__free_cpu_buf()
11543 munmap(cpu_buf->base, pb->mmap_size + pb->page_size)) in perf_buffer__free_cpu_buf()
11544 pr_warn("failed to munmap cpu_buf #%d\n", cpu_buf->cpu); in perf_buffer__free_cpu_buf()
11545 if (cpu_buf->fd >= 0) { in perf_buffer__free_cpu_buf()
11546 ioctl(cpu_buf->fd, PERF_EVENT_IOC_DISABLE, 0); in perf_buffer__free_cpu_buf()
11547 close(cpu_buf->fd); in perf_buffer__free_cpu_buf()
11549 free(cpu_buf->buf); in perf_buffer__free_cpu_buf()
11550 free(cpu_buf); in perf_buffer__free_cpu_buf()
11561 struct perf_cpu_buf *cpu_buf = pb->cpu_bufs[i]; in perf_buffer__free() local
11563 if (!cpu_buf) in perf_buffer__free()
11566 bpf_map_delete_elem(pb->map_fd, &cpu_buf->map_key); in perf_buffer__free()
11567 perf_buffer__free_cpu_buf(pb, cpu_buf); in perf_buffer__free()
11581 struct perf_cpu_buf *cpu_buf; in perf_buffer__open_cpu_buf() local
11585 cpu_buf = calloc(1, sizeof(*cpu_buf)); in perf_buffer__open_cpu_buf()
11586 if (!cpu_buf) in perf_buffer__open_cpu_buf()
11589 cpu_buf->pb = pb; in perf_buffer__open_cpu_buf()
11590 cpu_buf->cpu = cpu; in perf_buffer__open_cpu_buf()
11591 cpu_buf->map_key = map_key; in perf_buffer__open_cpu_buf()
11593 cpu_buf->fd = syscall(__NR_perf_event_open, attr, -1 /* pid */, cpu, in perf_buffer__open_cpu_buf()
11595 if (cpu_buf->fd < 0) { in perf_buffer__open_cpu_buf()
11602 cpu_buf->base = mmap(NULL, pb->mmap_size + pb->page_size, in perf_buffer__open_cpu_buf()
11604 cpu_buf->fd, 0); in perf_buffer__open_cpu_buf()
11605 if (cpu_buf->base == MAP_FAILED) { in perf_buffer__open_cpu_buf()
11606 cpu_buf->base = NULL; in perf_buffer__open_cpu_buf()
11613 if (ioctl(cpu_buf->fd, PERF_EVENT_IOC_ENABLE, 0) < 0) { in perf_buffer__open_cpu_buf()
11620 return cpu_buf; in perf_buffer__open_cpu_buf()
11623 perf_buffer__free_cpu_buf(pb, cpu_buf); in perf_buffer__open_cpu_buf()
11776 struct perf_cpu_buf *cpu_buf; in __perf_buffer__new() local
11788 cpu_buf = perf_buffer__open_cpu_buf(pb, p->attr, cpu, map_key); in __perf_buffer__new()
11789 if (IS_ERR(cpu_buf)) { in __perf_buffer__new()
11790 err = PTR_ERR(cpu_buf); in __perf_buffer__new()
11794 pb->cpu_bufs[j] = cpu_buf; in __perf_buffer__new()
11797 &cpu_buf->fd, 0); in __perf_buffer__new()
11801 cpu, map_key, cpu_buf->fd, in __perf_buffer__new()
11807 pb->events[j].data.ptr = cpu_buf; in __perf_buffer__new()
11808 if (epoll_ctl(pb->epoll_fd, EPOLL_CTL_ADD, cpu_buf->fd, in __perf_buffer__new()
11812 cpu, cpu_buf->fd, in __perf_buffer__new()
11846 struct perf_cpu_buf *cpu_buf = ctx; in perf_buffer__process_record() local
11847 struct perf_buffer *pb = cpu_buf->pb; in perf_buffer__process_record()
11852 return pb->event_cb(pb->ctx, cpu_buf->cpu, e); in perf_buffer__process_record()
11859 pb->sample_cb(pb->ctx, cpu_buf->cpu, s->data, s->size); in perf_buffer__process_record()
11866 pb->lost_cb(pb->ctx, cpu_buf->cpu, s->lost); in perf_buffer__process_record()
11877 struct perf_cpu_buf *cpu_buf) in perf_buffer__process_records() argument
11881 ret = perf_event_read_simple(cpu_buf->base, pb->mmap_size, in perf_buffer__process_records()
11882 pb->page_size, &cpu_buf->buf, in perf_buffer__process_records()
11883 &cpu_buf->buf_size, in perf_buffer__process_records()
11884 perf_buffer__process_record, cpu_buf); in perf_buffer__process_records()
11904 struct perf_cpu_buf *cpu_buf = pb->events[i].data.ptr; in perf_buffer__poll() local
11906 err = perf_buffer__process_records(pb, cpu_buf); in perf_buffer__poll()
11930 struct perf_cpu_buf *cpu_buf; in perf_buffer__buffer_fd() local
11935 cpu_buf = pb->cpu_bufs[buf_idx]; in perf_buffer__buffer_fd()
11936 if (!cpu_buf) in perf_buffer__buffer_fd()
11939 return cpu_buf->fd; in perf_buffer__buffer_fd()
11944 struct perf_cpu_buf *cpu_buf; in perf_buffer__buffer() local
11949 cpu_buf = pb->cpu_bufs[buf_idx]; in perf_buffer__buffer()
11950 if (!cpu_buf) in perf_buffer__buffer()
11953 *buf = cpu_buf->base; in perf_buffer__buffer()
11968 struct perf_cpu_buf *cpu_buf; in perf_buffer__consume_buffer() local
11973 cpu_buf = pb->cpu_bufs[buf_idx]; in perf_buffer__consume_buffer()
11974 if (!cpu_buf) in perf_buffer__consume_buffer()
11977 return perf_buffer__process_records(pb, cpu_buf); in perf_buffer__consume_buffer()
11985 struct perf_cpu_buf *cpu_buf = pb->cpu_bufs[i]; in perf_buffer__consume() local
11987 if (!cpu_buf) in perf_buffer__consume()
11990 err = perf_buffer__process_records(pb, cpu_buf); in perf_buffer__consume()