We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
my kernel release:
~ # uname -a Linux (none) 4.18.0 #10 SMP Fri Jul 26 10:32:39 CST 2024 x86_64 GNU/Linux
libbpf version is 0.3, to adapt to the version of 4.18 kernel.
... struct { __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); __uint(max_entries, 128); __type(key, __u32); __type(value, __u32); } events SEC(".maps"); struct event { uint32_t pid; uint32_t crc; char name[32]; }; SEC("tracepoint/syscalls/sys_exit_init_module") int func3(struct finit_module_args *ctx) { struct event ev = { .name = "__finished"}; ev.crc = 0; ev.pid = bpf_get_current_pid_tgid(); // bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &ev, sizeof(ev)); return 0; }
the code above works fine, but when I enable the commented line bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &ev, sizeof(ev));
bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &ev, sizeof(ev));
error occured.
libbpf: loading object '538580-4440' from buffer libbpf: elf: section(3) kprobe/find_symbol, size 440, link 0, flags 6, type=1 libbpf: sec 'kprobe/find_symbol': found program 'func1' at insn offset 0 (0 bytes), code size 55 insns (440 bytes) libbpf: elf: section(4) .relkprobe/find_symbol, size 16, link 31, flags 0, type=9 libbpf: elf: section(5) kretprobe/find_symbol, size 144, link 0, flags 6, type=1 libbpf: sec 'kretprobe/find_symbol': found program 'func2' at insn offset 0 (0 bytes), code size 18 insns (144 bytes) libbpf: elf: section(6) .relkretprobe/find_symbol, size 16, link 31, flags 0, type=9 libbpf: elf: section(7) tracepoint/syscalls/sys_exit_init_module, size 216, link 0, flags 6, type=1 libbpf: sec 'tracepoint/syscalls/sys_exit_init_module': found program 'func3' at insn offset 0 (0 bytes), code size 27 insns (21) libbpf: elf: section(8) .reltracepoint/syscalls/sys_exit_init_module, size 16, link 31, flags 0, type=9 libbpf: elf: section(9) .maps.events, size 8, link 0, flags 3, type=1 libbpf: elf: skipping unrecognized data section(9) .maps.events libbpf: elf: section(10) .maps.param_array, size 280, link 0, flags 3, type=1 libbpf: elf: skipping unrecognized data section(10) .maps.param_array libbpf: elf: section(11) .rodata, size 40, link 0, flags 2, type=1 libbpf: elf: section(12) .maps, size 64, link 0, flags 3, type=1 libbpf: elf: section(13) license, size 4, link 0, flags 3, type=1 libbpf: license of 538580-4440 is GPL libbpf: elf: section(22) .BTF, size 2850, link 0, flags 0, type=1 libbpf: elf: section(24) .BTF.ext, size 576, link 0, flags 0, type=1 libbpf: elf: section(31) .symtab, size 2640, link 1, flags 0, type=2 libbpf: looking for externs among 110 symbols... libbpf: collected 0 externs total libbpf: map 'events': at sec_idx 12, offset 0. libbpf: map 'events': found type = 4. libbpf: map 'events': found max_entries = 128. libbpf: map 'events': found key [1], sz = 4. libbpf: map 'events': found value [1], sz = 4. libbpf: map 'param_array': at sec_idx 12, offset 32. libbpf: map 'param_array': found type = 2. libbpf: map 'param_array': found max_entries = 1. libbpf: map 'param_array': found key [1], sz = 4. libbpf: map 'param_array': found value [7], sz = 272. libbpf: map '538580_4.rodata' (global data): at sec_idx 11, offset 0, flags 480. libbpf: map 2 is "538580_4.rodata" libbpf: sec '.relkprobe/find_symbol': collecting relocation for section(3) 'kprobe/find_symbol' libbpf: sec '.relkprobe/find_symbol': relo #0: insn #48 against 'param_array' libbpf: prog 'func1': found map 1 (param_array, sec 12, off 32) for insn #48 libbpf: sec '.relkretprobe/find_symbol': collecting relocation for section(5) 'kretprobe/find_symbol' libbpf: sec '.relkretprobe/find_symbol': relo #0: insn #6 against 'param_array' libbpf: prog 'func2': found map 1 (param_array, sec 12, off 32) for insn #6 libbpf: sec '.reltracepoint/syscalls/sys_exit_init_module': collecting relocation for section(7) 'tracepoint/syscalls/sys_exit_i' libbpf: sec '.reltracepoint/syscalls/sys_exit_init_module': relo #0: insn #19 against 'events' libbpf: prog 'func3': found map 0 (events, sec 12, off 0) for insn #19 libbpf: kernel doesn't support global data libbpf: failed to load object '538580-4440'
Thanks.
The text was updated successfully, but these errors were encountered:
See 'libbpf: kernel doesn't support global data'. You need newer kernel.
Sorry, something went wrong.
No branches or pull requests
my kernel release:
libbpf version is 0.3, to adapt to the version of 4.18 kernel.
the code above works fine, but when I enable the commented line
bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &ev, sizeof(ev));
error occured.
Thanks.
The text was updated successfully, but these errors were encountered: