-
Notifications
You must be signed in to change notification settings - Fork 446
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
p4-ebpf permission denied: func 'map_initializer' doesn't have 1-th argument: invalid bpf_context #4310
Comments
Looks like the problem lies between nikss-ctl and pwru, not the p4c. If look at the pwru how it loads BPF probe you can see that it tries to attach probe to every TC program. At this point everything is OK. Now look at the list of loaded BPF programs. There is a program with name The problem arise when pwru tries to attach probe to As a |
Thanks for looking into this Jan.
When I remove program map_initializer (using rm), I get the following pwru
error:
# ./pwru --filter-trace-tc
2024/01/02 10:31:38 Failed to load objects: Verifier error: load program: invalid argument:
func#0 @0
func#1 @38
func#2 @854
func#3 @861
Subprog map_initializer doesn't exist
processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
program fentry_tc: load program: invalid argument: Subprog map_initializer doesn't exist (5 line(s) omitted)
Prior to removing program map_initializer:
# /usr/share/bcc/introspection/bps 511
BID TYPE UID #MAPS LoadTime NAME
511 sched cls 0 2 Jan02/10:40 map_initializer
MID TYPE FLAGS KeySz ValueSz MaxEnts NAME
489 array 0x0 4 4 1 ingress_tbl_mac
490 array 0x0 4 8192 1 crc_lookup_tbl
|
I'm not sure why there is still reference to What happens if you also remove both tables, Another option is just to add the missing argument for Unfortunately you can't just remove subprogram |
For testing purposes, I commented out
So then I commented out I then tried the same thing with both
tc_ingress_fuct does exist
Your other suggestions resulted in same/similar results. I don't want to waste people's time on this, but do you think there is value in bringing this to celium/pwru's attention? |
Hard to say if there is a such value, but you can try. |
x-posting a potential solution in case anyone wants to take a stab at it - cilium/pwru#404 (comment) |
When attempting to utilize cilium's pwru
--filter-trace-tc
option with a p4-ebpf psa program loaded using nikss-ctl, I get the below error. The p4-ebpf psa program compiles and loads without issue. Runningpwru --filter-trace-tc
when the p4-ebpf program is not loaded runs as expected. p4-ebpf c/bc/o files attached.out-gtpu-ecmp.zip
I see the same exact error on the following two systems:
For context, I was experimenting with pwru to see if I could trace a packet through a p4-ebpf processing pipeline. Similar to ovs-appctl ofproto/trace, except with live traffic.
The text was updated successfully, but these errors were encountered: