Lines Matching refs:cpu_buf
12337 struct perf_cpu_buf *cpu_buf)
12339 if (!cpu_buf)
12341 if (cpu_buf->base &&
12342 munmap(cpu_buf->base, pb->mmap_size + pb->page_size))
12343 pr_warn("failed to munmap cpu_buf #%d\n", cpu_buf->cpu);
12344 if (cpu_buf->fd >= 0) {
12345 ioctl(cpu_buf->fd, PERF_EVENT_IOC_DISABLE, 0);
12346 close(cpu_buf->fd);
12348 free(cpu_buf->buf);
12349 free(cpu_buf);
12360 struct perf_cpu_buf *cpu_buf = pb->cpu_bufs[i];
12362 if (!cpu_buf)
12365 bpf_map_delete_elem(pb->map_fd, &cpu_buf->map_key);
12366 perf_buffer__free_cpu_buf(pb, cpu_buf);
12380 struct perf_cpu_buf *cpu_buf;
12384 cpu_buf = calloc(1, sizeof(*cpu_buf));
12385 if (!cpu_buf)
12388 cpu_buf->pb = pb;
12389 cpu_buf->cpu = cpu;
12390 cpu_buf->map_key = map_key;
12392 cpu_buf->fd = syscall(__NR_perf_event_open, attr, -1 /* pid */, cpu,
12394 if (cpu_buf->fd < 0) {
12401 cpu_buf->base = mmap(NULL, pb->mmap_size + pb->page_size,
12403 cpu_buf->fd, 0);
12404 if (cpu_buf->base == MAP_FAILED) {
12405 cpu_buf->base = NULL;
12412 if (ioctl(cpu_buf->fd, PERF_EVENT_IOC_ENABLE, 0) < 0) {
12419 return cpu_buf;
12422 perf_buffer__free_cpu_buf(pb, cpu_buf);
12580 struct perf_cpu_buf *cpu_buf;
12592 cpu_buf = perf_buffer__open_cpu_buf(pb, p->attr, cpu, map_key);
12593 if (IS_ERR(cpu_buf)) {
12594 err = PTR_ERR(cpu_buf);
12598 pb->cpu_bufs[j] = cpu_buf;
12601 &cpu_buf->fd, 0);
12605 cpu, map_key, cpu_buf->fd,
12611 pb->events[j].data.ptr = cpu_buf;
12612 if (epoll_ctl(pb->epoll_fd, EPOLL_CTL_ADD, cpu_buf->fd,
12616 cpu, cpu_buf->fd,
12650 struct perf_cpu_buf *cpu_buf = ctx;
12651 struct perf_buffer *pb = cpu_buf->pb;
12656 return pb->event_cb(pb->ctx, cpu_buf->cpu, e);
12663 pb->sample_cb(pb->ctx, cpu_buf->cpu, s->data, s->size);
12670 pb->lost_cb(pb->ctx, cpu_buf->cpu, s->lost);
12681 struct perf_cpu_buf *cpu_buf)
12685 ret = perf_event_read_simple(cpu_buf->base, pb->mmap_size,
12686 pb->page_size, &cpu_buf->buf,
12687 &cpu_buf->buf_size,
12688 perf_buffer__process_record, cpu_buf);
12708 struct perf_cpu_buf *cpu_buf = pb->events[i].data.ptr;
12710 err = perf_buffer__process_records(pb, cpu_buf);
12734 struct perf_cpu_buf *cpu_buf;
12739 cpu_buf = pb->cpu_bufs[buf_idx];
12740 if (!cpu_buf)
12743 return cpu_buf->fd;
12748 struct perf_cpu_buf *cpu_buf;
12753 cpu_buf = pb->cpu_bufs[buf_idx];
12754 if (!cpu_buf)
12757 *buf = cpu_buf->base;
12772 struct perf_cpu_buf *cpu_buf;
12777 cpu_buf = pb->cpu_bufs[buf_idx];
12778 if (!cpu_buf)
12781 return perf_buffer__process_records(pb, cpu_buf);
12789 struct perf_cpu_buf *cpu_buf = pb->cpu_bufs[i];
12791 if (!cpu_buf)
12794 err = perf_buffer__process_records(pb, cpu_buf);