Tweets
- Tweets, current page.
- Tweets & replies
- Media
You blocked @pchaigno
Are you sure you want to view these Tweets? Viewing Tweets won't unblock @pchaigno
-
Pinned Tweet
The new strace v5.3 can use seccomp-bpf to reduce overhead! https://pchaigno.github.io/strace/2019/10/02/introducing-strace-seccomp-bpf.html …pic.twitter.com/oYdTCtosyc
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
And if you're not struggling, come anyway! A lot improved recently.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
If you're struggling with BPF debugging, check out
@qeole's talk at FOSDEM 2020!https://fosdem.org/2020/schedule/event/debugging_bpf/ …Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Paul Chaignon Retweeted
Hiring kernel developers at Juniper Networks. Bonus if you have experience with eBPF and/or XDP.
#ebpf#xdp#zabiplane#jobs#kernel - DM or @ me.Thanks. Twitter will use this to make your timeline better. UndoUndo -
Paul Chaignon Retweeted
in a lovely, unintentional turn of events I'm creating the demand I have long wanted to see: I'm hiring (contract) P4 developers. specifically with experience / understanding of eBPF & XDP as a target. remote only. students/academic/researchers preferred!
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Only 4 new lines in the BPF verifier between the last two Linux releases! Did someone kidnap the BPF contributors??https://pchaigno.github.io/bpf/2019/07/02/bpf-verifier-complexity.html …
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Paul Chaignon Retweeted
I'm looking forward to
#OVSCon, where I will have a pleasure to present how Open vSwitch can be extended at runtime using@P4lang and#BPF. The enhancement is developed by my team from@Orange_Polska and is based on the@pchaigno's solution (Oko switch).#SDNhttps://twitter.com/Ben_Pfaff/status/1186763842715471872 …Thanks. Twitter will use this to make your timeline better. UndoUndo -
GitHub Pages now support BPF bytecode highlighting!https://pchaigno.github.io/bpf/2019/10/11/bpf-syntax-highlighting.html …
Thanks. Twitter will use this to make your timeline better. UndoUndo -
The code for the BPF interpreter is available at https://github.com/uw-unsat/serval-sosp19/blob/master/serval/serval/bpf.rkt … and written in Rosette, an extension of the Racket language. https://unsat.cs.washington.edu/projects/serval has lots of other references and details.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
And a third (proof-of-concept) BPF verifier! In this paper,
@lukenels_ et al. explain how they automatically transform a BPF interpreter into a BPF verifier using symbolic execution. They then use it to find 15 bugs in Linux's JIT compilers! https://unsat.cs.washington.edu/papers/nelson-serval.pdf …pic.twitter.com/3M38wie0Y8
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
.
@brendangregg's warning (http://www.brendangregg.com/blog/2014-05-11/strace-wow-much-syscall.html …) is still valid: strace shouldn't be used in production! --seccomp-bpf is just a step in the right direction.Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
That's all I have for today (and until I get my hands on a microcode manual)!
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
hashmap_ops() first looks up the map (with hashmap_get_fd()) and the entry matching the key, then applies the hashmap operation. For example, in case of a lookup, it reads the hashmap entry in out_ent_addr with macro __hashmap_read_field(). https://github.com/Netronome/nic-firmware/blob/092d992f10fc8b4447baf352812f733de516b8b9/firmware/apps/nic/maps/hashmap.uc#L777-L784 …pic.twitter.com/stZ5Kn7TeO
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
htab_map_lookup_subr_func() defines a few return cases, but most of the code is in hashmap_ops(), a single macro for lots of different hashmap operations. https://github.com/Netronome/nic-firmware/blob/092d992f10fc8b4447baf352812f733de516b8b9/firmware/apps/nic/maps/hashmap.uc#L726 …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
One missing piece of the BPF offload are the helpers. Most of them are inlined to microcode by the JIT compiler, except... the map helpers! The htab_map_lookup_subr_func() macro, for example, implements the hashmap lookups. https://github.com/Netronome/nic-firmware/blob/092d992f10fc8b4447baf352812f733de516b8b9/firmware/apps/nic/maps/hashmap.uc#L917 …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Looks like the ebpf_reentry() macro above ebpf_call() handles the return from BPF programs. It updates the statistics and applies the action (drop, pass to continue, or transmit on wire). https://github.com/Netronome/nic-firmware/blob/092d992f10fc8b4447baf352812f733de516b8b9/firmware/apps/nic/ebpf.uc#L137 …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
We haven't seen how the BPF program is actually executed though. That happens in the microcode macro ebpf_call() in the NIC's datapath. It computes the jump offset, prepares the BPF stack, and jumps to the loaded program. https://github.com/Netronome/nic-firmware/blob/092d992f10fc8b4447baf352812f733de516b8b9/firmware/apps/nic/ebpf.uc#L173 …pic.twitter.com/kMpBTSD4xH
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
That's it! Loading BPF programs is pretty simple since most of the heavy lifting is performed in the kernel, thanks to the Netronome-specific JIT compiler: https://github.com/torvalds/linux/blob/a2d79c7174aeb43b13020dd53d85a7aefdd9f3e5/drivers/net/ethernet/netronome/nfp/bpf/jit.c …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The MicroC function update_bpf_prog() writes the BPF program to the NIC's code store. Most of the code is there to ensure the write is atomic (since there are multiple threads per Flow Processing Core). https://github.com/Netronome/nic-firmware/blob/092d992f10fc8b4447baf352812f733de516b8b9/firmware/lib/nic_basic/_c/nic_internal.c#L491 …pic.twitter.com/GJpX9Earar
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The BPF program is received by the NIC's control plane (the README is worth a read, to get a grasp of the overall architecture). https://github.com/Netronome/nic-firmware/blob/092d992f10fc8b4447baf352812f733de516b8b9/firmware/apps/nic/app_control_lib.c#L376-L378 …pic.twitter.com/2j53sUxBLb
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.