gobpf icon indicating copy to clipboard operation
gobpf copied to clipboard

gobpf: Please make perf ring buffer size configurable

Open somersf opened this issue 7 years ago • 0 comments

As per https://github.com/iovisor/bcc/pull/997 but for the Go API.

In bcc/perf.go, a page count parameter can't be supplied; it uses an fixed constant size.

const BPF_PERF_READER_PAGE_CNT = 8
...

func bpfOpenPerfBuffer(cpu uint, callbackDataIndex uint64) (unsafe.Pointer, error) {
	cpuC := C.int(cpu)
	reader, err := C.bpf_open_perf_buffer(
		(C.perf_reader_raw_cb)(unsafe.Pointer(C.callback_to_go)),
		nil,
		unsafe.Pointer(uintptr(callbackDataIndex)),
		-1, cpuC, BPF_PERF_READER_PAGE_CNT)
	if reader == nil {
		return nil, fmt.Errorf("failed to open perf buffer: %v", err)
	}
	return reader, nil
}

Thanks.

somersf avatar Oct 24 '18 23:10 somersf