Knowledge (XXG)

eBPF

Source 📝

714:. Tail calls are particularly useful in eBPF, where the stack is limited to 512 bytes. During runtime, functionality can be added or replaced atomically, thus altering the BPF program’s execution behavior. A popular use case for tail calls is to spread the complexity of eBPF programs over several programs. Another use case is for replacing or extending logic by replacing the contents of the program array while it is in use. For example, to update a program version without 38: 819:
library adapts eBPF programs to work with the data structure layout on the target kernel where they run, even if this layout is different from the kernel where the code was compiled. To do this, libbpf needs the BPF CO-RE relocation information generated by Clang as part of the compilation process.
797:
from the kernel. Some structures can be modified between different kernel versions, altering the memory layout. Since the Linux kernel is continuously developed, there is no guarantee that the internal data structures will remain the same across different versions. CO-RE is a fundamental concept in
810:
format that describes the types used in the kernel and eBPF programs and provides detailed information about struct layouts, field offsets, and data types. It enables runtime accessibility of kernel types, which is crucial for BPF program development and verification. BTF is included in the kernel
769:
must be released and only one lock can be held at a time to avoid deadlocks over multiple programs, checking that programs are not allowed to read uninitialized memory.  This is not an exhaustive list of the checks the verifier does, and there are exceptions to these rules. An example is that
651:
and can be used to share data among multiple eBPF programs or to communicate between a user space application and eBPF code running in the kernel. eBPF programs can leverage eBPF maps to store and retrieve data in a wide set of data structures. Map implementations are provided by the core kernel.
265:
environments, where the execution environment is restricted and the runtime has no insight about the program. Examples of programs that are automatically rejected are programs without strong exit guarantees (i.e. for/while loops without exit conditions) and programs dereferencing pointers without
748:
search through all possible paths of the program, the verifier simulates the execution of each instruction, tracking the state of registers and stack if any instruction could lead to an unsafe state, verification fails. This process continues until all paths have been analyzed or a violation is
743:
The verifier is a core component of eBPF, and its main responsibility is to ensure that an eBPF program is safe to execute. It performs a static analysis of the eBPF bytecode to guarantee its safety. The verifier analyzes the program to assess all possible execution paths. It steps through the
655:
In practice, eBPF maps are typically used for scenarios such as a user space program writing configuration information to be retrieved by an eBPF program, an eBPF program storing state for later retrieval by another eBPF program (or a future run of the same program), or an eBPF program writing
338:
eBPF evolved from the classic Berkeley Packet Filter (cBPF, a retroactively-applied name). At the most basic level, it introduced the use of ten 64-bit registers (instead of two 32-bit long registers for cBPF), different jump semantics, a call instruction and corresponding register passing
410:
use case was merged. In the same month, initial infrastructure work got accepted to attach eBPF to the networking traffic control (tc) layer allowing to attach eBPF to the core ingress and later also egress paths of the network stack, later heavily used by projects such as
734:
resulting in a BPF object file that had duplicate functions. This restriction was lifted, and mainstream eBPF compilers now support writing functions naturally in eBPF programs. This reduces the generated eBPF code size making it friendlier to a CPU instruction cache.
543:
The bpfilter prototype has been published, allowing translation of a subset of iptables rulesets into eBPF via a newly developed user mode driver. The work has caused controversies due to the ongoing nftables development effort and has not been merged into mainline.
757:, checking that an eBPF program is not allowed to read arbitrary memory because being able to arbitrary read memory could allow a program leak sensitive information, checking that network programs are not allowed to access memory outside of 1857:
Høiland-Jørgensen, Toke; Brouer, Jesper Dangaard; Borkmann, Daniel; Fastabend, John; Herbert, Tom; Ahern, David; Miller, David (December 2018). "The eXpress data path: Fast programmable packet processing in the operating system kernel".
890:. The purpose is to raise, budget and spend funds in support of various open source, open data and/or open standards projects relating to eBPF technologies to further drive the growth and adoption of the eBPF ecosystem. Since inception, 1112:. While unprivileged eBPF implemented mitigations against transient execution attacks, unprivileged use has ultimately been disabled by the kernel community by default to protect from use against future hardware vulnerabilities. 749:
found. Depending on the type of program, the verifier checks for violations of specific rules. These rules can include checking that an eBPF program always terminates within a reasonable amount of time (no
798:
modern eBPF development that allows eBPF programs to be portable across different kernel versions and configurations. It addresses the challenge of kernel structure variations between different
874:
The eBPF Foundation was created in August 2021 with the goal to expand the contributions being made to extend the powerful capabilities of eBPF and grow beyond Linux. Founding members include
322:
said, "BPF has actually been really useful, and the real power of it is how it allows people to do specialized code that isn't enabled until asked for". Due to its success in Linux, the eBPF
3200: 1145: 394:. It was replaced by an eBPF interpreter and the Linux kernel internally translates classic BPF (cBPF) into eBPF instructions. It was released in version 3.18 of the Linux kernel. 3148: 866:
was named "eBee". The logo has originally been created by Vadim Shchekoldin. Earlier unofficial eBPF mascots have existed in the past, but have not seen widespread adoption.
710:
system call operates for regular processes. This basically allows an eBPF program to call another eBPF program. Tail calls are implemented as a long jump, reusing the same
1208: 515:
eBPF becomes its own kernel subsystem to ease the continuously growing kernel patch management. The first pull request by eBPF maintainers was submitted.
3800: 3380: 843:
The alias eBPF is often interchangeably used with BPF, for example by the Linux kernel community. eBPF and BPF is referred to as a technology name like
239:(BPF, with the "e" originally meaning "extended") filtering mechanism in Linux and is also used in non-networking parts of the Linux kernel as well. 1930: 531:
A new socket family called AF_XDP was published, allowing for high performance packet processing with zero-copy semantics at the XDP layer. Today,
3981: 3976: 3775: 1350: 2946: 730:
encapsulating logic for reusability. Prior to Linux kernel 4.16 and LLVM 6.0, a typical eBPF C program had to explicitly direct the compiler to
3966: 3124: 1698: 442:
announced a collection of new eBPF-based tracing tools as the bcc project, providing a front-end for eBPF to make it easier to write programs.
831:-generated relocations. The ELF format allows the eBPF loader (e.g., libbpf) to process and adjust the BPF program dynamically for the target 2370: 2634: 1753: 580:
BTF (BPF Type Format) has been added to the Linux kernel as an efficient meta data format which is approximately 100x smaller in size than
2920: 3925: 3903: 3881: 3859: 3840: 2486: 1877: 1213: 243: 3406: 1956: 1105: 1901: 782: 727: 964: 1376: 821: 1620: 815:(e.g., LLVM). These relocations capture high-level descriptions of what information the eBPF program intends to access. The 770:
tracing programs have access to helpers that allow them to read memory in a controlled way, but these program types require
1590: 3971: 3749: 1805: 1460: 1564: 803: 777:
Over time the eBPF verifier has evolved to include newer features and optimizations, such as support for bounded loops,
754: 676:
that run on the CPU. Early implementations of eBPF saw eBPF bytecode interpreted, but this has now been replaced with a
673: 100: 2764: 3354: 2037: 1242: 762: 1646: 3330: 2141: 952: 311: 196: 2972: 2790: 2868: 2326: 851:
as an extended version, but as its use cases outgrew networking, today "eBPF" is preferentially interpreted as a
832: 232: 3281: 2063: 940: 677: 569: 283: 155: 761:
bounds because adjacent memory could contain sensitive information, checking that programs are not allowed to
3050: 2011: 1672: 1512: 1100:
Due to the ease of programmability, eBPF has been used as a tool for implementing microarchitectural timing
616: 391: 314:
subsystems. Given eBPF's efficiency and flexibility opened up new possibilities to solve production issues,
275: 2274: 2167: 1779: 1431: 848: 604: 450:
eBPF got the ability to be attached into network driver's core receive path. This layer is known today as
251: 236: 2556: 1299: 1088: 924: 778: 703: 360: 279: 225: 2842: 1146:"Meta, Google, Isovalent, Microsoft and Netflix Launch eBPF Foundation as Part of the Linux Foundation" 3680:"IKEA Private Cloud, eBPF Based Networking, Load Balancing, and Observability with... Karsten Nielsen" 2998: 458:
to create a fast data path which works in combination with the Linux kernel rather than bypassing it.
107: 3149:"How Does Alibaba Cloud Build High-Performance Cloud-Native Pod Networks in Production Environments?" 2894: 1101: 255: 1860:
Proceedings of the 14th International Conference on emerging Networking EXperiments and Technologies
1486: 3309:
Keynote: Open Source Intrusion Detection for Containers at Shopify - Shane Lawrence & Kris Nóva
3104:
Software L4 Load Balancing for Kubernetes Services at Yahoo! – Karthikeyan Thangaraj, Verizon Media
178: 3550:"Think eBPF for Kernel Security Monitoring - Falco at Apple- Eric Sage & Melissa Kilby, Apple" 1182: 2426: 1883: 1076: 799: 745: 707: 688: 477:
container networking with eBPF and XDP. Today, Cilium has been adopted by major cloud provider's
466: 412: 407: 390:, primary maintainer of the Linux networking stack, accepted the rework of the old in-kernel BPF 307: 3918:
Learning eBPF: Programming the Linux Kernel for Enhanced Observability, Networking, and Security
3432: 2869:"Live-patching security vulnerabilities inside the Linux kernel with eBPF Linux Security Module" 2362:
Learning eBPF: programming the Linux Kernel for enhanced observability, networking, and security
523:
Bpftool was added to the Linux kernel as a user space utility to introspect the eBPF subsystem.
298:
kernel and are run upon triggering of an event. eBPF use cases include (but are not limited to)
3654:"DIGLIM eBPF: secure boot at application level with minimal changes to distros - Roberto Sassu" 3077:"BPF for Android: How we leverage BPF for our networking solutions - Madhan Raj Kanagarathinam" 3024: 2248: 656:
results or metrics into a map for retrieval by a user space program that will present results.
3921: 3899: 3877: 3855: 3836: 3576:"eBPF & Cilium at Sky – Sebastian Duff, Anthony Comtois, Jospeh [sic] Samuel, Sky" 3255: 2482: 2376: 2366: 1873: 1121: 451: 303: 299: 287: 171: 726:
It is generally considered good practice in software development to group common code into a
3460:
Rate limiting access to internal services in a virtual network – Nick Bouliane, DigitalOcean
3174: 1863: 1413: 1150: 295: 229: 190: 162: 3528: 862:
is the official logo for eBPF. At the first eBPF Summit there was a vote taken and the bee
258:
and rejects programs which crash, hang or otherwise interfere with the kernel negatively.
1109: 917:
uses eBPF through their Katran layer 4 load-balancer for all traffic going to facebook.com
731: 684: 665: 644: 387: 683:
The eBPF virtual machine consists of eleven 64-bit registers with 32-bit subregisters, a
2193: 3628:"High Performance Load Balancing @Walmart – Kanthi Pavuluri & Karan Dalal, Walmart" 958: 914: 875: 794: 758: 500: 323: 319: 183: 63: 2502: 3960: 3869: 3828: 2531: 2474: 2450: 2399: 1436: 976: 750: 553: 439: 315: 1887: 1417: 1025:
uses eBPF and XDP to rate limit access to internal services in their virtual network
3707:
Panel Discussion: Is There Actually a Byte Behind All the Buzz? eBPF in Production!
2816: 1022: 648: 504: 376: 847:. eBPF evolved from the machine language for the filtering virtual machine in the 3602:"Running and orchestrating multiple XDP and TC programs – Brian Merrell, Walmart" 2686: 744:
instructions in order and evaluates them. The verification process starts with a
136: 1985: 1034: 910:
eBPF has been adopted by a number of large-scale production users, for example:
899: 824: 339:
convention, new instructions, and a different encoding for these instructions.
247: 201: 2089: 3951: 3727: 3705: 3679: 3653: 3627: 3601: 3575: 3549: 3506: 3480: 3458: 3307: 3230:"Our eBPF Journey at Datadog - Laurent Bernaille & Tabitha Sable, Datadog" 3229: 3102: 3076: 2738: 2712: 2660: 2380: 2360: 1831: 1324: 1046: 1040: 1028: 980: 930: 711: 478: 242:
It is used to safely and efficiently extend the capabilities of the kernel at
57: 45: 3729:
Using user-space tracing to solve DNS problems – Andrius Grabauskas, Palantir
3508:
Why eBPF is changing the telco networking space – Daniel Bernier, Bell Canada
927:, developed and uses BPF LSM to replace audit and it uses eBPF for networking 592:
The first 880-page long book on BPF, written by Brendan Gregg, was released.
1868: 1247: 1010: 883: 771: 699: 489: 262: 71: 3481:"Building a Secure and Maintainable PaaS - Bradley Whitfield, Capital One" 17: 2327:"bpf.h - include/uapi/linux/bpf.h - Linux source code v5.15.86 - Bootlin" 1091:
uses eBPF to debug networking problems in large scale Kubernetes clusters
1004: 992: 970: 933:
uses eBPF for load-balancing and DDoS protection and security enforcement
812: 807: 766: 715: 669: 470: 424: 371:
The first non-networking use case of the classic Berkeley Packet Filter,
2222: 1085:
uses eBPF at scale for load balancing and tracing in their private cloud
652:
There are various types, including hash maps, arrays, and ring buffers.
603:
upstreamed BPF LSM support into the Linux kernel, enabling programmable
282:(JIT compiled) for native execution performance. The execution model is 3331:"BPFAgent: eBPF for Monitoring at DoorDash - DoorDash Engineering Blog" 1931:"New GKE Dataplane V2 increases security and visibility for containers" 1082: 1058: 998: 986: 946: 936: 891: 887: 852: 627:
Microsoft released eBPF for Windows, which runs code in the NT kernel.
372: 327: 291: 75: 2947:"Extending Vector with eBPF to inspect host and container performance" 2608: 1406: 1209:"eBPF and Kubernetes: Little Helper Minions for Scaling Microservices" 572:
in order to support the ability for in-kernel TLS policy enforcement.
492:
added offload of eBPF programs for XDP and tc BPF layer to their NIC.
37: 3913: 3891: 3282:"Trip.com: Stepping into Cloud Native Networking Era with Cilium+BGP" 1064: 1052: 1043:
uses eBPF for code profiling as part of their observability offering
1016: 920: 895: 879: 863: 600: 557: 403: 67: 811:
image of BTF-enable kernels. Special relocations are emitted by the
2582: 2300: 2115: 1538: 816: 828: 668:
runs within the kernel and takes in a program in the form of eBPF
581: 503:'s layer 4 load-balancer, Katran, went live. Every packet towards 379:
using a configurable policy implemented through BPF instructions.
363:(JIT compiler) for the classic Berkeley Packet Filter got merged. 254:. Safety is provided through an in-kernel verifier which performs 167: 2194:"Combining kTLS and BPF for Introspection and Policy Enforcement" 1591:"Linux kernel 3.18, Section 1.3. bpf() syscall for eBFP [ 3942:
eBPF.io - Introduction, tutorials & eBPF community resources
3381:"Getting Linux based eBPF programs to run with eBPF for Windows" 1070: 989:
uses eBPF for Kubernetes Pod networking and security enforcement
844: 532: 474: 455: 428: 1274: 2921:"How Netflix uses eBPF flow logs at scale for network insight" 859: 2739:"BPF security auditing at Google - Brendan Jackman/KP Singh" 1986:"XDP 1.5 Years In Production. Evolution and Lessons Learned" 691:
keep track of state when eBPF programs are executed.  
687:
and a 512-byte large BPF stack space. These general purpose
3946: 2843:"Production ready eBPF, or how we fixed the BSD socket API" 2394: 2392: 2390: 2142:"Why is the kernel community replacing iptables with BPF?" 1902:"Cilium - Fast IPv6 Container Networking with BPF and XDP" 1806:"Add driver bpf hook for early packet drop and forwarding" 702:
can call and execute another eBPF program and replace the
3947:
eBPF.foundation - Linux Foundation's eBPF Foundation site
3776:"BPF and Spectre: Mitigating transient execution attacks" 1461:"Linus Torvalds talks about coming back to work on Linux" 1377:"eBPF - The Silent Platform Revolution from Cloud Native" 1351:"BPF and Spectre: Mitigating transient execution attacks" 3952:
eBPF documentary - Documentary on the beginnings of eBPF
2635:"Open-sourcing Katran, a scalable network load balancer" 1384:
SIGCOMM 2023, 1st Workshop on eBPF and Kernel Extensions
1140: 1138: 1136: 212: 3125:"Skyfall: eBPF agent for infrastructure observability" 1007:
uses eBPF through BPFAgent for kernel level monitoring
680:
process for performance and security-related reasons.
1727: 343:
Most significant milestones in the evolution of eBPF
274:
Loaded programs which passed the verifier are either
2791:"Cloudflare architecture and how BPF eats the world" 3941: 1019:
uses eBPF through Cilium for layer 4 load-balancing
967:
uses eBPF through Cilium for layer 4 load balancing
949:
uses eBPF through Katran for layer 4 load-balancing
902:, Tigera, DaoCloud, Datoms, FutureWei also joined. 481:offerings and is one of the most widely used CNIs. 326:has been ported to other operating systems such as 207: 189: 177: 161: 151: 99: 81: 56: 44: 2365:(First ed.). Sebastopol, CA: O'Reilly Media. 3850:David Calavera, Lorenzo Fontana (December 2019). 1067:uses eBPF through their DIGLIM secure boot system 535:has an official AF_XDP poll-mode driver support. 507:since then has been processed by eBPF & XDP. 2400:"BPF Architecture — Cilium 1.16.0 documentation" 1728:"eBPF-based Networking, Observability, Security" 1037:uses eBPF to moderize telco networking with SRv6 3750:"Reading privileged memory with a side-channel" 1001:uses eBPF for intrusion detection through Falco 290:, meaning, programs can be attached to various 2973:"Dropbox traffic infrastructure: Edge network" 827:. This file contains BTF-type information and 318:famously dubbed eBPF "superpowers for Linux". 3433:"Cilium Standalone Layer 4 Load Balancer XDP" 8: 1780:"bcc: Taming Linux 4.3+ Tracing Superpowers" 552:The new bpftrace tool has been announced by 30: 3801:"bpf: Disallow unprivileged bpf by default" 224:is a technology that can run programs in a 2895:"Unimog - Cloudflare's edge load balancer" 1957:"nfp ring reconfiguration and XDP support" 1647:"tracing: attach eBPF programs to kprobes" 973:uses eBPF for infrastructure observability 955:uses eBPF for NAT46 and traffic monitoring 820:The compiled eBPF program is stored in an 806:CO-RE comprises BTF (BPF Type Format) - a 789:eBPF CO-RE (Compile Once - Run Everywhere) 36: 29: 3407:"Progress on making eBPF work on Windows" 1867: 781:, function-by-function verification, and 2713:"eCHO episode 29: BPF LSM with KP Singh" 2275:"MAC and Audit policy using eBPF (KRSI)" 2223:"BTF deduplication and Linux kernel BTF" 1832:"eCHO episode 9: XDP and Load Balancing" 1407:"eBPF - From a Programmer's Perspective" 341: 3256:"User Story - How Trip.com uses Cilium" 3201:"Runtime Security Monitoring with eBPF" 1722: 1720: 1132: 1073:uses eBPF for Kubernetes Pod networking 1055:uses eBPF for Kubernetes Pod networking 1031:uses eBPF for Kubernetes Pod networking 995:uses eBPF for Kubernetes Pod networking 2526: 2524: 2421: 2419: 2168:"bpftrace (DTrace 2.0) for Linux 2018" 1980: 1978: 1925: 1923: 774:and thus do not pose a security risk. 568:eBPF introspection has been added for 2354: 2352: 2350: 2348: 2346: 1539:"Yet another new approach to seccomp" 1325:"Safe Programs The Foundation of BPF" 1049:uses eBPF for Kubernetes Pod security 454:(XDP) and was added as a response to 7: 1513:"net: filter: Just In Time compiler" 1300:"eBPF - Rethinking the Linux Kernel" 1269: 1267: 1237: 1235: 1233: 1216:KubeCon + CloudNativeCon Europe 2020 1177: 1175: 1173: 1171: 1169: 1061:uses eBPF for layer 4 load-balancing 822:ELF (Executable and Linkable Format) 672:instructions which are converted to 246:without requiring changes to kernel 3874:Systems Performance, Second edition 1465:zdnet Interview with Linus Torvalds 1275:"eBPF Documentation: What is eBPF?" 961:uses eBPF for Networking solutions 375:, appeared; it allows filtering of 261:This validation model differs from 25: 939:uses eBPF for fleet-wide network 793:eBPF programs use the memory and 3854:. O'Reilly Media, Incorporated. 3025:"Extending the Kernel with eBPF" 2765:"Replacing HTB with EDT and BPF" 1595:] virtual machine programs" 469:was initially announced during 27:Safe dynamic programs and tools 3982:Software using the MIT license 3977:Software using the GPL license 3754:googleprojectzero.blogspot.com 3329:Rogers, Patrick (2023-08-15). 2249:"BPF Performance Tools (book)" 2012:"pull-request: bpf 2017-11-23" 1699:"net, sched: add clsact qdisc" 1013:ported eBPF and XDP to Windows 678:Just-in-Time (JIT) compilation 615:The eBPF compiler backend for 402:The ability to attach eBPF to 1: 3967:Free software programmed in C 3355:"Making eBPF work on Windows" 1418:10.13140/RG.2.2.33688.11529/4 1405:Hedam, Niclas (26 May 2023). 1243:"Making eBPF work on Windows" 235:. It is the successor to the 3852:Linux Observability With BPF 3051:"NAT46 translation with BPF" 2609:"eBPF Foundation Governance" 2064:"Introducing AF_XDP support" 718:or to enable/disable logic. 473:as a project providing fast 3530:Elastic Universal Profiling 2455:ebpf-docs.dylanreimerink.nl 2431:ebpf-docs.dylanreimerink.nl 1187:USENIX LISA 2021 conference 674:native machine instructions 87:; 10 years ago 3998: 1673:"eBPF support for cls_bpf" 359:The first in-kernel Linux 3335:DoorDash Engineering Blog 2999:"eBPF Traffic Monitoring" 2583:"eBPF Foundation Charter" 2090:"AF_XDP Poll Mode Driver" 943:and performance diagnosis 634:Architecture and concepts 35: 3411:cloudblogs.microsoft.com 3385:cloudblogs.microsoft.com 3359:cloudblogs.microsoft.com 2532:"What is the bee named?" 2427:"Tail calls - eBPF Docs" 2116:"BPF comes to firewalls" 1754:"LLVM 3.7 Release Notes" 1079:uses eBPF for networking 643:eBPF maps are efficient 427:backend got merged into 286:and with few exceptions 3179:datadogon.datadoghq.com 2817:"It's crowded in here!" 2451:"BPF CO-RE - eBPF Docs" 1869:10.1145/3281411.3281443 1432:"Linux BPF Superpowers" 617:GNU Compiler Collection 62:Open source community, 2557:"eBPF: One Small Step" 849:Berkeley Packet Filter 605:Linux Security Modules 237:Berkeley Packet Filter 3833:BPF Performance Tools 2503:"eBPF Summit Day Two" 2479:BPF Performance Tools 1621:"Happy birthday BPF!" 1487:"Classic BPF vs eBPF" 1089:Palantir Technologies 779:dead-code elimination 706:, similar to how the 607:(LSMs) through eBPF. 361:just-in-time compiler 280:just-in-time compiled 3972:Free system software 2687:"From XDP to socket" 2561:Brendan Gregg's Blog 2038:"tools: add bpftool" 1355:POPL 2022 conference 1102:side-channel attacks 660:eBPF virtual machine 256:static code analysis 2951:netflixtechblog.com 2925:netflixtechblog.com 2899:blog.cloudflare.com 2873:blog.cloudflare.com 2847:blog.cloudflare.com 2821:blog.cloudflare.com 2795:blog.cloudflare.com 1386:. 10 September 2023 1108:against vulnerable 800:Linux distributions 344: 50:Alexei Starovoitov, 32: 3920:. O'Reilly Media. 3835:. Addison-Wesley. 3780:popl22.sigplan.org 3312:, 4 September 2020 3029:source.android.com 3003:source.android.com 2481:. Addison-Wesley. 2359:Rice, Liz (2023). 2331:elixir.bootlin.com 1862:. pp. 54–66. 1601:. December 7, 2014 1077:The New York Times 983:Pod load-balancing 619:(GCC) was merged. 342: 226:privileged context 46:Original author(s) 3872:(December 2020). 3831:(December 2019). 3710:, 28 October 2022 3175:"Datadog on eBPF" 2661:"BPF at Facebook" 2477:(December 2019). 2372:978-1-0981-3512-6 1758:releases.llvm.org 1599:kernelnewbies.org 1467:. 23 October 2018 1357:. 22 January 2022 1331:. 8 November 2020 1122:Express Data Path 732:inline a function 704:execution context 631: 630: 288:run-to-completion 219: 218: 143:/ebpf-for-windows 16:(Redirected from 3989: 3931: 3909: 3887: 3865: 3846: 3816: 3815: 3813: 3811: 3797: 3791: 3790: 3788: 3786: 3772: 3766: 3765: 3763: 3761: 3756:. 3 January 2018 3746: 3740: 3739: 3738: 3737: 3732:, 19 August 2021 3724: 3718: 3717: 3716: 3715: 3702: 3696: 3695: 3693: 3691: 3676: 3670: 3669: 3667: 3665: 3650: 3644: 3643: 3641: 3639: 3624: 3618: 3617: 3615: 3613: 3598: 3592: 3591: 3589: 3587: 3572: 3566: 3565: 3563: 3561: 3546: 3540: 3539: 3538: 3537: 3525: 3519: 3518: 3517: 3516: 3511:, 31 August 2021 3503: 3497: 3496: 3494: 3492: 3477: 3471: 3470: 3469: 3468: 3463:, 19 August 2021 3455: 3449: 3448: 3446: 3444: 3429: 3423: 3422: 3420: 3418: 3403: 3397: 3396: 3394: 3392: 3377: 3371: 3370: 3368: 3366: 3351: 3345: 3344: 3342: 3341: 3326: 3320: 3319: 3318: 3317: 3304: 3298: 3297: 3295: 3293: 3278: 3272: 3271: 3269: 3267: 3252: 3246: 3245: 3243: 3241: 3226: 3220: 3219: 3217: 3215: 3205: 3197: 3191: 3190: 3188: 3186: 3171: 3165: 3164: 3162: 3160: 3155:. September 2020 3153:alibabacloud.com 3145: 3139: 3138: 3136: 3135: 3129:www.linkedin.com 3121: 3115: 3114: 3113: 3112: 3107:, 19 August 2021 3099: 3093: 3092: 3090: 3088: 3073: 3067: 3066: 3064: 3062: 3047: 3041: 3040: 3038: 3036: 3021: 3015: 3014: 3012: 3010: 2995: 2989: 2988: 2986: 2984: 2969: 2963: 2962: 2960: 2958: 2943: 2937: 2936: 2934: 2932: 2917: 2911: 2910: 2908: 2906: 2901:. September 2020 2891: 2885: 2884: 2882: 2880: 2865: 2859: 2858: 2856: 2854: 2839: 2833: 2832: 2830: 2828: 2813: 2807: 2806: 2804: 2802: 2787: 2781: 2780: 2778: 2776: 2761: 2755: 2754: 2752: 2750: 2735: 2729: 2728: 2726: 2724: 2709: 2703: 2702: 2700: 2698: 2693:. September 2021 2683: 2677: 2676: 2674: 2672: 2657: 2651: 2650: 2648: 2646: 2631: 2625: 2624: 2622: 2620: 2605: 2599: 2598: 2596: 2594: 2579: 2573: 2572: 2570: 2568: 2553: 2547: 2546: 2544: 2542: 2528: 2519: 2518: 2516: 2514: 2499: 2493: 2492: 2471: 2465: 2464: 2462: 2461: 2447: 2441: 2440: 2438: 2437: 2423: 2414: 2413: 2411: 2410: 2396: 2385: 2384: 2356: 2341: 2340: 2338: 2337: 2323: 2317: 2316: 2314: 2312: 2307:. September 2020 2297: 2291: 2290: 2288: 2286: 2271: 2265: 2264: 2262: 2260: 2253:brendangregg.com 2245: 2239: 2238: 2236: 2234: 2219: 2213: 2212: 2210: 2208: 2198: 2190: 2184: 2183: 2181: 2179: 2172:brendangregg.com 2164: 2158: 2157: 2155: 2153: 2138: 2132: 2131: 2129: 2127: 2112: 2106: 2105: 2103: 2101: 2086: 2080: 2079: 2077: 2075: 2060: 2054: 2053: 2051: 2049: 2044:. September 2017 2034: 2028: 2027: 2025: 2023: 2008: 2002: 2001: 1999: 1997: 1982: 1973: 1972: 1970: 1968: 1953: 1947: 1946: 1944: 1942: 1935:cloud.google.com 1927: 1918: 1917: 1915: 1913: 1898: 1892: 1891: 1871: 1854: 1848: 1847: 1845: 1843: 1828: 1822: 1821: 1819: 1817: 1802: 1796: 1795: 1793: 1791: 1786:. September 2015 1784:brendangregg.com 1776: 1770: 1769: 1767: 1765: 1750: 1744: 1743: 1741: 1739: 1724: 1715: 1714: 1712: 1710: 1695: 1689: 1688: 1686: 1684: 1669: 1663: 1662: 1660: 1658: 1643: 1637: 1636: 1634: 1632: 1627:. September 2014 1617: 1611: 1610: 1608: 1606: 1587: 1581: 1580: 1578: 1576: 1561: 1555: 1554: 1552: 1550: 1545:. 1 January 2012 1535: 1529: 1528: 1526: 1524: 1509: 1503: 1502: 1500: 1498: 1483: 1477: 1476: 1474: 1472: 1457: 1451: 1450: 1448: 1446: 1428: 1422: 1421: 1411: 1402: 1396: 1395: 1393: 1391: 1381: 1373: 1367: 1366: 1364: 1362: 1347: 1341: 1340: 1338: 1336: 1329:eBPF Summit 2021 1321: 1315: 1314: 1312: 1310: 1296: 1290: 1289: 1287: 1285: 1271: 1262: 1261: 1259: 1257: 1250:Open Source Blog 1239: 1228: 1227: 1225: 1223: 1218:. 19 August 2020 1205: 1199: 1198: 1196: 1194: 1179: 1164: 1163: 1161: 1159: 1154:. 12 August 2021 1151:Linux Foundation 1142: 722:BPF to BPF calls 645:key/value stores 452:eXpress DataPath 345: 296:operating system 230:operating system 215: 163:Operating system 147: 144: 142: 140: 138: 132: 129: 127: 125: 123: 121: 119: 117: 115: 113: 111: 109: 95: 93: 88: 40: 33: 21: 3997: 3996: 3992: 3991: 3990: 3988: 3987: 3986: 3957: 3956: 3938: 3928: 3912: 3906: 3890: 3884: 3868: 3862: 3849: 3843: 3827: 3824: 3822:Further reading 3819: 3809: 3807: 3799: 3798: 3794: 3784: 3782: 3774: 3773: 3769: 3759: 3757: 3748: 3747: 3743: 3735: 3733: 3726: 3725: 3721: 3713: 3711: 3704: 3703: 3699: 3689: 3687: 3678: 3677: 3673: 3663: 3661: 3652: 3651: 3647: 3637: 3635: 3626: 3625: 3621: 3611: 3609: 3600: 3599: 3595: 3585: 3583: 3574: 3573: 3569: 3559: 3557: 3548: 3547: 3543: 3535: 3533: 3527: 3526: 3522: 3514: 3512: 3505: 3504: 3500: 3490: 3488: 3487:. November 2020 3479: 3478: 3474: 3466: 3464: 3457: 3456: 3452: 3442: 3440: 3431: 3430: 3426: 3416: 3414: 3413:. November 2019 3405: 3404: 3400: 3390: 3388: 3387:. February 2022 3379: 3378: 3374: 3364: 3362: 3353: 3352: 3348: 3339: 3337: 3328: 3327: 3323: 3315: 3313: 3306: 3305: 3301: 3291: 3289: 3288:. November 2020 3286:arthurchiao.art 3280: 3279: 3275: 3265: 3263: 3262:. February 2020 3254: 3253: 3249: 3239: 3237: 3236:. November 2020 3228: 3227: 3223: 3213: 3211: 3210:. February 2021 3203: 3199: 3198: 3194: 3184: 3182: 3181:. February 2021 3173: 3172: 3168: 3158: 3156: 3147: 3146: 3142: 3133: 3131: 3123: 3122: 3118: 3110: 3108: 3101: 3100: 3096: 3086: 3084: 3083:. February 2024 3081:www.youtube.com 3075: 3074: 3070: 3060: 3058: 3055:lore.kernel.org 3049: 3048: 3044: 3034: 3032: 3023: 3022: 3018: 3008: 3006: 2997: 2996: 2992: 2982: 2980: 2971: 2970: 2966: 2956: 2954: 2953:. February 2019 2945: 2944: 2940: 2930: 2928: 2919: 2918: 2914: 2904: 2902: 2893: 2892: 2888: 2878: 2876: 2867: 2866: 2862: 2852: 2850: 2849:. February 2022 2841: 2840: 2836: 2826: 2824: 2815: 2814: 2810: 2800: 2798: 2789: 2788: 2784: 2774: 2772: 2769:netdevconf.info 2763: 2762: 2758: 2748: 2746: 2745:. November 2021 2737: 2736: 2732: 2722: 2720: 2719:. November 2021 2711: 2710: 2706: 2696: 2694: 2685: 2684: 2680: 2670: 2668: 2667:. December 2019 2659: 2658: 2654: 2644: 2642: 2633: 2632: 2628: 2618: 2616: 2613:ebpf.foundation 2607: 2606: 2602: 2592: 2590: 2587:ebpf.foundation 2581: 2580: 2576: 2566: 2564: 2555: 2554: 2550: 2540: 2538: 2530: 2529: 2522: 2512: 2510: 2501: 2500: 2496: 2489: 2473: 2472: 2468: 2459: 2457: 2449: 2448: 2444: 2435: 2433: 2425: 2424: 2417: 2408: 2406: 2398: 2397: 2388: 2373: 2358: 2357: 2344: 2335: 2333: 2325: 2324: 2320: 2310: 2308: 2299: 2298: 2294: 2284: 2282: 2279:lore.kernel.org 2273: 2272: 2268: 2258: 2256: 2255:. December 2019 2247: 2246: 2242: 2232: 2230: 2229:. November 2018 2221: 2220: 2216: 2206: 2204: 2203:. November 2018 2201:vger.kernel.org 2196: 2192: 2191: 2187: 2177: 2175: 2166: 2165: 2161: 2151: 2149: 2140: 2139: 2135: 2125: 2123: 2122:. February 2018 2114: 2113: 2109: 2099: 2097: 2088: 2087: 2083: 2073: 2071: 2068:lore.kernel.org 2062: 2061: 2057: 2047: 2045: 2042:lore.kernel.org 2036: 2035: 2031: 2021: 2019: 2018:. November 2017 2016:lore.kernel.org 2010: 2009: 2005: 1995: 1993: 1992:. November 2018 1984: 1983: 1976: 1966: 1964: 1963:. November 2016 1961:lore.kernel.org 1955: 1954: 1950: 1940: 1938: 1929: 1928: 1921: 1911: 1909: 1900: 1899: 1895: 1880: 1856: 1855: 1851: 1841: 1839: 1830: 1829: 1825: 1815: 1813: 1810:lore.kernel.org 1804: 1803: 1799: 1789: 1787: 1778: 1777: 1773: 1763: 1761: 1752: 1751: 1747: 1737: 1735: 1726: 1725: 1718: 1708: 1706: 1703:lore.kernel.org 1697: 1696: 1692: 1682: 1680: 1677:lore.kernel.org 1671: 1670: 1666: 1656: 1654: 1651:lore.kernel.org 1645: 1644: 1640: 1630: 1628: 1625:lore.kernel.org 1619: 1618: 1614: 1604: 1602: 1589: 1588: 1584: 1574: 1572: 1569:lore.kernel.org 1563: 1562: 1558: 1548: 1546: 1537: 1536: 1532: 1522: 1520: 1517:lore.kernel.org 1511: 1510: 1506: 1496: 1494: 1485: 1484: 1480: 1470: 1468: 1459: 1458: 1454: 1444: 1442: 1430: 1429: 1425: 1409: 1404: 1403: 1399: 1389: 1387: 1379: 1375: 1374: 1370: 1360: 1358: 1349: 1348: 1344: 1334: 1332: 1323: 1322: 1318: 1308: 1306: 1298: 1297: 1293: 1283: 1281: 1273: 1272: 1265: 1255: 1253: 1241: 1240: 1231: 1221: 1219: 1207: 1206: 1202: 1192: 1190: 1183:"BPF Internals" 1181: 1180: 1167: 1157: 1155: 1144: 1143: 1134: 1130: 1118: 1110:microprocessors 1098: 908: 872: 841: 795:data structures 791: 772:root privileges 741: 724: 697: 685:program counter 666:virtual machine 662: 647:that reside in 641: 636: 560:2.0 for Linux. 431:3.7.0 release. 388:David S. Miller 336: 272: 266:safety checks. 211: 199: 135: 133: 106: 91: 89: 86: 82:Initial release 52:Daniel Borkmann 51: 28: 23: 22: 15: 12: 11: 5: 3995: 3993: 3985: 3984: 3979: 3974: 3969: 3959: 3958: 3955: 3954: 3949: 3944: 3937: 3936:External links 3934: 3933: 3932: 3927:978-1098135126 3926: 3916:(April 2023). 3910: 3905:978-1492097259 3904: 3894:(April 2022). 3888: 3883:978-0136820154 3882: 3870:Gregg, Brendan 3866: 3861:978-1492050209 3860: 3847: 3842:978-0136554820 3841: 3829:Gregg, Brendan 3823: 3820: 3818: 3817: 3792: 3767: 3741: 3719: 3697: 3671: 3645: 3619: 3593: 3567: 3556:. October 2021 3541: 3520: 3498: 3472: 3450: 3424: 3398: 3372: 3346: 3321: 3299: 3273: 3247: 3221: 3192: 3166: 3140: 3116: 3094: 3068: 3042: 3016: 2990: 2979:. October 2018 2964: 2938: 2912: 2886: 2860: 2834: 2823:. October 2019 2808: 2782: 2756: 2730: 2704: 2678: 2652: 2626: 2600: 2574: 2548: 2520: 2509:. October 2020 2494: 2488:978-0136554820 2487: 2466: 2442: 2415: 2404:docs.cilium.io 2386: 2371: 2342: 2318: 2292: 2266: 2240: 2214: 2185: 2174:. October 2018 2159: 2133: 2107: 2081: 2070:. January 2018 2055: 2029: 2003: 1974: 1948: 1919: 1906:slideshare.net 1893: 1878: 1849: 1823: 1797: 1771: 1745: 1734:. January 2016 1716: 1705:. January 2016 1690: 1664: 1638: 1612: 1582: 1556: 1530: 1504: 1478: 1452: 1441:. 5 March 2016 1423: 1397: 1368: 1342: 1316: 1291: 1263: 1229: 1200: 1165: 1131: 1129: 1126: 1125: 1124: 1117: 1114: 1097: 1094: 1093: 1092: 1086: 1080: 1074: 1068: 1062: 1056: 1050: 1044: 1038: 1032: 1026: 1020: 1014: 1008: 1002: 996: 990: 984: 979:uses eBPF for 974: 968: 962: 959:Samsung Galaxy 956: 950: 944: 934: 928: 918: 907: 904: 871: 868: 853:pseudo-acronym 840: 837: 790: 787: 765:, so any held 751:infinite loops 740: 737: 723: 720: 696: 693: 661: 658: 640: 637: 635: 632: 629: 628: 625: 621: 620: 613: 612:September 2020 609: 608: 598: 594: 593: 590: 586: 585: 578: 574: 573: 566: 562: 561: 550: 546: 545: 541: 537: 536: 529: 525: 524: 521: 520:September 2017 517: 516: 513: 509: 508: 498: 494: 493: 487: 483: 482: 464: 460: 459: 448: 444: 443: 437: 436:September 2015 433: 432: 421: 417: 416: 400: 396: 395: 385: 381: 380: 369: 365: 364: 357: 353: 352: 349: 335: 332: 320:Linus Torvalds 294:points in the 271: 268: 252:kernel modules 217: 216: 209: 205: 204: 193: 187: 186: 184:Runtime system 181: 175: 174: 165: 159: 158: 153: 149: 148: 103: 97: 96: 83: 79: 78: 60: 54: 53: 48: 42: 41: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3994: 3983: 3980: 3978: 3975: 3973: 3970: 3968: 3965: 3964: 3962: 3953: 3950: 3948: 3945: 3943: 3940: 3939: 3935: 3929: 3923: 3919: 3915: 3911: 3907: 3901: 3897: 3896:What Is eBPF? 3893: 3889: 3885: 3879: 3875: 3871: 3867: 3863: 3857: 3853: 3848: 3844: 3838: 3834: 3830: 3826: 3825: 3821: 3806: 3802: 3796: 3793: 3781: 3777: 3771: 3768: 3755: 3751: 3745: 3742: 3731: 3730: 3723: 3720: 3709: 3708: 3701: 3698: 3685: 3681: 3675: 3672: 3660:. August 2022 3659: 3655: 3649: 3646: 3634:. August 2021 3633: 3629: 3623: 3620: 3608:. August 2021 3607: 3603: 3597: 3594: 3582:. August 2021 3581: 3577: 3571: 3568: 3555: 3551: 3545: 3542: 3532: 3531: 3524: 3521: 3510: 3509: 3502: 3499: 3486: 3482: 3476: 3473: 3462: 3461: 3454: 3451: 3438: 3434: 3428: 3425: 3412: 3408: 3402: 3399: 3386: 3382: 3376: 3373: 3360: 3356: 3350: 3347: 3336: 3332: 3325: 3322: 3311: 3310: 3303: 3300: 3287: 3283: 3277: 3274: 3261: 3257: 3251: 3248: 3235: 3231: 3225: 3222: 3209: 3202: 3196: 3193: 3180: 3176: 3170: 3167: 3154: 3150: 3144: 3141: 3130: 3126: 3120: 3117: 3106: 3105: 3098: 3095: 3082: 3078: 3072: 3069: 3056: 3052: 3046: 3043: 3031:. August 2022 3030: 3026: 3020: 3017: 3005:. August 2022 3004: 3000: 2994: 2991: 2978: 2974: 2968: 2965: 2952: 2948: 2942: 2939: 2926: 2922: 2916: 2913: 2900: 2896: 2890: 2887: 2874: 2870: 2864: 2861: 2848: 2844: 2838: 2835: 2822: 2818: 2812: 2809: 2796: 2792: 2786: 2783: 2770: 2766: 2760: 2757: 2744: 2740: 2734: 2731: 2718: 2714: 2708: 2705: 2692: 2688: 2682: 2679: 2666: 2662: 2656: 2653: 2640: 2636: 2630: 2627: 2615:. August 2022 2614: 2610: 2604: 2601: 2588: 2584: 2578: 2575: 2562: 2558: 2552: 2549: 2537: 2533: 2527: 2525: 2521: 2508: 2504: 2498: 2495: 2490: 2484: 2480: 2476: 2475:Brendan Gregg 2470: 2467: 2456: 2452: 2446: 2443: 2432: 2428: 2422: 2420: 2416: 2405: 2401: 2395: 2393: 2391: 2387: 2382: 2378: 2374: 2368: 2364: 2363: 2355: 2353: 2351: 2349: 2347: 2343: 2332: 2328: 2322: 2319: 2306: 2302: 2296: 2293: 2280: 2276: 2270: 2267: 2254: 2250: 2244: 2241: 2228: 2224: 2218: 2215: 2202: 2195: 2189: 2186: 2173: 2169: 2163: 2160: 2147: 2143: 2137: 2134: 2121: 2117: 2111: 2108: 2096:. August 2022 2095: 2091: 2085: 2082: 2069: 2065: 2059: 2056: 2043: 2039: 2033: 2030: 2017: 2013: 2007: 2004: 1991: 1987: 1981: 1979: 1975: 1962: 1958: 1952: 1949: 1936: 1932: 1926: 1924: 1920: 1908:. August 2016 1907: 1903: 1897: 1894: 1889: 1885: 1881: 1879:9781450360807 1875: 1870: 1865: 1861: 1853: 1850: 1837: 1833: 1827: 1824: 1811: 1807: 1801: 1798: 1785: 1781: 1775: 1772: 1760:. August 2015 1759: 1755: 1749: 1746: 1733: 1729: 1723: 1721: 1717: 1704: 1700: 1694: 1691: 1678: 1674: 1668: 1665: 1652: 1648: 1642: 1639: 1626: 1622: 1616: 1613: 1600: 1596: 1594: 1586: 1583: 1570: 1566: 1565:"BPF updates" 1560: 1557: 1544: 1540: 1534: 1531: 1518: 1514: 1508: 1505: 1492: 1488: 1482: 1479: 1466: 1462: 1456: 1453: 1440: 1438: 1437:Brendan Gregg 1433: 1427: 1424: 1419: 1415: 1408: 1401: 1398: 1385: 1378: 1372: 1369: 1356: 1352: 1346: 1343: 1330: 1326: 1320: 1317: 1305: 1301: 1295: 1292: 1280: 1276: 1270: 1268: 1264: 1252:. 10 May 2021 1251: 1249: 1244: 1238: 1236: 1234: 1230: 1217: 1215: 1210: 1204: 1201: 1189:. 1 June 2021 1188: 1184: 1178: 1176: 1174: 1172: 1170: 1166: 1153: 1152: 1147: 1141: 1139: 1137: 1133: 1127: 1123: 1120: 1119: 1115: 1113: 1111: 1107: 1103: 1095: 1090: 1087: 1084: 1081: 1078: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1048: 1045: 1042: 1039: 1036: 1033: 1030: 1027: 1024: 1021: 1018: 1015: 1012: 1009: 1006: 1003: 1000: 997: 994: 991: 988: 985: 982: 978: 975: 972: 969: 966: 963: 960: 957: 954: 951: 948: 945: 942: 941:observability 938: 935: 932: 929: 926: 923:uses eBPF in 922: 919: 916: 913: 912: 911: 905: 903: 901: 897: 893: 889: 885: 882:, Isovalent, 881: 877: 869: 867: 865: 861: 856: 854: 850: 846: 838: 836: 834: 830: 826: 823: 818: 814: 809: 805: 801: 796: 788: 786: 784: 780: 775: 773: 768: 764: 760: 756: 752: 747: 739:eBPF verifier 738: 736: 733: 729: 721: 719: 717: 713: 709: 705: 701: 694: 692: 690: 686: 681: 679: 675: 671: 667: 659: 657: 653: 650: 646: 638: 633: 626: 623: 622: 618: 614: 611: 610: 606: 602: 599: 596: 595: 591: 589:December 2019 588: 587: 583: 579: 577:November 2018 576: 575: 571: 567: 565:November 2018 564: 563: 559: 555: 554:Brendan Gregg 551: 548: 547: 542: 540:February 2018 539: 538: 534: 530: 527: 526: 522: 519: 518: 514: 512:November 2017 511: 510: 506: 502: 499: 496: 495: 491: 488: 486:November 2016 485: 484: 480: 476: 472: 468: 465: 462: 461: 457: 453: 449: 446: 445: 441: 440:Brendan Gregg 438: 435: 434: 430: 426: 422: 419: 418: 414: 409: 405: 401: 398: 397: 393: 389: 386: 383: 382: 378: 374: 370: 367: 366: 362: 358: 355: 354: 350: 347: 346: 340: 333: 331: 329: 325: 321: 317: 316:Brendan Gregg 313: 309: 305: 301: 297: 293: 289: 285: 281: 278:or in-kernel 277: 269: 267: 264: 259: 257: 253: 249: 245: 240: 238: 234: 231: 227: 223: 214: 210: 206: 203: 198: 194: 192: 188: 185: 182: 180: 176: 173: 169: 166: 164: 160: 157: 154: 150: 146: 131: 104: 102: 98: 84: 80: 77: 73: 70:, Isovalent, 69: 65: 61: 59: 55: 49: 47: 43: 39: 34: 19: 3917: 3895: 3873: 3851: 3832: 3808:. Retrieved 3804: 3795: 3783:. Retrieved 3779: 3770: 3758:. Retrieved 3753: 3744: 3734:, retrieved 3728: 3722: 3712:, retrieved 3706: 3700: 3688:. Retrieved 3683: 3674: 3662:. Retrieved 3657: 3648: 3636:. Retrieved 3631: 3622: 3610:. Retrieved 3605: 3596: 3584:. Retrieved 3579: 3570: 3558:. Retrieved 3553: 3544: 3534:, retrieved 3529: 3523: 3513:, retrieved 3507: 3501: 3489:. Retrieved 3484: 3475: 3465:, retrieved 3459: 3453: 3441:. Retrieved 3436: 3427: 3415:. Retrieved 3410: 3401: 3389:. Retrieved 3384: 3375: 3363:. Retrieved 3358: 3349: 3338:. Retrieved 3334: 3324: 3314:, retrieved 3308: 3302: 3290:. Retrieved 3285: 3276: 3264:. Retrieved 3259: 3250: 3238:. Retrieved 3233: 3224: 3212:. Retrieved 3207: 3195: 3183:. Retrieved 3178: 3169: 3157:. Retrieved 3152: 3143: 3132:. Retrieved 3128: 3119: 3109:, retrieved 3103: 3097: 3085:. Retrieved 3080: 3071: 3059:. Retrieved 3057:. April 2022 3054: 3045: 3033:. Retrieved 3028: 3019: 3007:. Retrieved 3002: 2993: 2981:. Retrieved 2977:dropbox.tech 2976: 2967: 2955:. Retrieved 2950: 2941: 2929:. Retrieved 2924: 2915: 2903:. Retrieved 2898: 2889: 2877:. Retrieved 2872: 2863: 2851:. Retrieved 2846: 2837: 2825:. Retrieved 2820: 2811: 2799:. Retrieved 2794: 2785: 2773:. Retrieved 2768: 2759: 2747:. Retrieved 2742: 2733: 2721:. Retrieved 2716: 2707: 2695:. Retrieved 2690: 2681: 2669:. Retrieved 2664: 2655: 2643:. Retrieved 2638: 2629: 2617:. Retrieved 2612: 2603: 2591:. Retrieved 2586: 2577: 2565:. Retrieved 2560: 2551: 2539:. Retrieved 2535: 2511:. Retrieved 2506: 2497: 2478: 2469: 2458:. Retrieved 2454: 2445: 2434:. Retrieved 2430: 2407:. Retrieved 2403: 2361: 2334:. Retrieved 2330: 2321: 2309:. Retrieved 2304: 2301:"BPF in GCC" 2295: 2283:. Retrieved 2281:. March 2020 2278: 2269: 2257:. Retrieved 2252: 2243: 2231:. Retrieved 2227:nakryiko.com 2226: 2217: 2205:. Retrieved 2200: 2188: 2176:. Retrieved 2171: 2162: 2150:. Retrieved 2148:. April 2018 2145: 2136: 2124:. Retrieved 2119: 2110: 2098:. Retrieved 2094:doc.dpdk.org 2093: 2084: 2072:. Retrieved 2067: 2058: 2046:. Retrieved 2041: 2032: 2020:. Retrieved 2015: 2006: 1994:. Retrieved 1989: 1965:. Retrieved 1960: 1951: 1939:. Retrieved 1934: 1910:. Retrieved 1905: 1896: 1859: 1852: 1840:. Retrieved 1835: 1826: 1814:. Retrieved 1809: 1800: 1788:. Retrieved 1783: 1774: 1762:. Retrieved 1757: 1748: 1736:. Retrieved 1731: 1707:. Retrieved 1702: 1693: 1681:. Retrieved 1679:. March 2015 1676: 1667: 1655:. Retrieved 1653:. March 2015 1650: 1641: 1629:. Retrieved 1624: 1615: 1605:September 6, 1603:. Retrieved 1598: 1592: 1585: 1573:. Retrieved 1571:. March 2014 1568: 1559: 1547:. Retrieved 1542: 1533: 1521:. Retrieved 1519:. April 2011 1516: 1507: 1495:. Retrieved 1493:. March 2014 1490: 1481: 1469:. Retrieved 1464: 1455: 1443:. Retrieved 1435: 1426: 1400: 1388:. Retrieved 1383: 1371: 1359:. Retrieved 1354: 1345: 1333:. Retrieved 1328: 1319: 1307:. Retrieved 1303: 1294: 1282:. Retrieved 1278: 1254:. Retrieved 1246: 1220:. Retrieved 1212: 1203: 1191:. Retrieved 1186: 1156:. Retrieved 1149: 1099: 1023:DigitalOcean 909: 873: 857: 842: 792: 776: 753:or infinite 742: 725: 698: 682: 663: 654: 649:kernel space 642: 549:October 2018 528:January 2018 505:facebook.com 377:system calls 368:January 2012 337: 284:event-driven 273: 260: 241: 228:such as the 221: 220: 58:Developer(s) 3684:youtube.com 3658:youtube.com 3632:youtube.com 3606:youtube.com 3580:youtube.com 3554:youtube.com 3485:youtube.com 3439:. July 2022 3234:youtube.com 3087:19 February 2927:. June 2021 2875:. June 2022 2771:. July 2020 2743:youtube.com 2717:youtube.com 2665:youtube.com 2589:. June 2021 1838:. June 2021 1836:youtube.com 1812:. July 2016 1035:Bell Canada 900:Crowdstrike 825:object file 746:depth-first 712:stack frame 463:August 2016 420:August 2015 392:interpreter 373:seccomp-bpf 276:interpreted 250:or loading 248:source code 202:MIT License 3961:Categories 3805:kernel.org 3736:2024-02-09 3714:2024-02-09 3686:. May 2022 3536:2024-02-26 3515:2024-02-09 3467:2024-02-04 3361:. May 2021 3340:2024-02-09 3316:2024-02-09 3134:2024-02-03 3111:2024-02-03 2797:. May 2019 2691:lpc.events 2641:. May 2018 2563:. May 2015 2460:2024-08-07 2436:2024-08-04 2409:2024-08-01 2381:1353981026 2336:2024-08-01 1990:lpc.events 1937:. May 2021 1128:References 1041:Elastic_NV 1029:CapitalOne 981:Kubernetes 965:Yahoo! Inc 931:Cloudflare 870:Governance 755:recursion) 700:Tail calls 695:Tail calls 597:March 2020 479:Kubernetes 399:March 2015 384:March 2014 356:April 2011 300:networking 152:Written in 141:/Microsoft 101:Repository 18:Draft:EBPF 3914:Rice, Liz 3892:Rice, Liz 3810:16 August 3785:16 August 3760:16 August 3690:16 August 3664:16 August 3638:16 August 3612:16 August 3586:16 August 3560:16 August 3491:16 August 3443:16 August 3437:cilium.io 3417:16 August 3391:16 August 3365:16 August 3292:16 August 3266:16 August 3260:cilium.io 3240:16 August 3214:16 August 3208:sstic.org 3185:16 August 3159:16 August 3061:16 August 3035:16 August 3009:16 August 2983:16 August 2957:16 August 2931:16 August 2905:16 August 2879:16 August 2853:16 August 2827:16 August 2801:16 August 2775:16 August 2749:16 August 2723:16 August 2697:16 August 2671:16 August 2645:16 August 2619:16 August 2593:16 August 2507:cilium.io 2311:16 August 2285:16 August 2259:16 August 2178:16 August 2146:cilium.io 2100:16 August 1996:16 August 1941:16 August 1732:cilium.io 1497:6 January 1390:5 October 1304:QCon 2020 1248:Microsoft 1011:Microsoft 884:Microsoft 804:versions. 783:callbacks 767:spinlocks 689:registers 664:The eBPF 639:eBPF maps 624:July 2022 490:Netronome 447:July 2016 423:The eBPF 406:as first 263:sandboxed 200:Windows: 134:Windows: 124:/torvalds 72:Microsoft 1888:53779310 1116:See also 1104:such as 1096:Security 1005:DoorDash 993:Trip.com 971:LinkedIn 906:Adoption 839:Branding 813:compiler 808:metadata 763:deadlock 728:function 716:downtime 708:execve() 670:bytecode 497:May 2017 471:LinuxCon 425:compiler 312:security 302:such as 2536:ebpf.io 2305:lwn.net 2120:lwn.net 1439:'s Blog 1279:eBPF.io 1106:Spectre 1083:Red Hat 1059:Walmart 999:Shopify 987:Datadog 977:Alibaba 953:Android 947:Dropbox 937:Netflix 892:Red Hat 888:Netflix 408:tracing 404:kprobes 334:History 328:Windows 324:runtime 308:tracing 244:runtime 213:ebpf.io 208:Website 195:Linux: 191:License 172:Windows 120:/kernel 110:.kernel 105:Linux: 90: ( 76:Netflix 3924:  3902:  3880:  3858:  3839:  2639:fb.com 2567:1 July 2541:1 July 2513:1 July 2485:  2379:  2369:  2233:1 July 2207:1 July 2152:1 July 2126:1 July 2074:1 July 2048:1 July 2022:1 July 1967:1 July 1912:1 July 1886:  1876:  1842:1 July 1816:1 July 1790:1 July 1764:1 July 1738:1 July 1709:1 July 1683:1 July 1657:1 July 1631:1 July 1575:1 July 1549:1 July 1523:1 July 1471:1 July 1445:1 July 1361:1 July 1335:1 July 1309:1 July 1284:1 July 1256:1 July 1222:1 July 1193:1 July 1158:1 July 1065:Huawei 1017:Seznam 921:Google 896:Huawei 880:Google 864:mascot 833:kernel 817:libbpf 759:packet 601:Google 558:DTrace 467:Cilium 413:Cilium 351:Event 270:Design 233:kernel 137:github 126:/linux 118:/linux 68:Google 3204:(PDF) 2197:(PDF) 1884:S2CID 1410:(PDF) 1380:(PDF) 1047:Apple 829:Clang 582:DWARF 168:Linux 3922:ISBN 3900:ISBN 3878:ISBN 3856:ISBN 3837:ISBN 3812:2022 3787:2022 3762:2022 3692:2022 3666:2022 3640:2022 3614:2022 3588:2022 3562:2022 3493:2022 3445:2022 3419:2022 3393:2022 3367:2022 3294:2022 3268:2022 3242:2022 3216:2022 3187:2022 3161:2022 3089:2022 3063:2022 3037:2022 3011:2022 2985:2022 2959:2022 2933:2022 2907:2022 2881:2022 2855:2022 2829:2022 2803:2022 2777:2022 2751:2022 2725:2022 2699:2022 2673:2022 2647:2022 2621:2022 2595:2022 2569:2022 2543:2022 2515:2022 2483:ISBN 2377:OCLC 2367:ISBN 2313:2022 2287:2022 2261:2022 2235:2022 2209:2022 2180:2022 2154:2022 2128:2022 2102:2022 2076:2022 2050:2022 2024:2022 1998:2022 1969:2022 1943:2022 1914:2022 1874:ISBN 1844:2022 1818:2022 1792:2022 1766:2022 1740:2022 1711:2022 1685:2022 1659:2022 1633:2022 1607:2019 1577:2022 1551:2022 1525:2022 1499:2023 1473:2022 1447:2022 1392:2023 1363:2022 1337:2022 1311:2022 1286:2022 1258:2022 1224:2022 1214:CNCF 1195:2022 1160:2022 1071:Ikea 915:Meta 886:and 876:Meta 858:The 845:LLVM 802:and 570:kTLS 533:DPDK 501:Meta 475:IPv6 456:DPDK 429:LLVM 348:Date 310:and 292:hook 222:eBPF 179:Type 139:.com 128:.git 122:/git 116:/scm 114:/pub 112:.org 92:2014 85:2014 64:Meta 31:eBPF 1864:doi 1593:sic 1543:LWN 1491:LWN 1414:doi 1053:Sky 925:GKE 860:bee 556:as 304:XDP 197:GPL 108:git 3963:: 3898:. 3876:. 3803:. 3778:. 3752:. 3682:. 3656:. 3630:. 3604:. 3578:. 3552:. 3483:. 3435:. 3409:. 3383:. 3357:. 3333:. 3284:. 3258:. 3232:. 3206:. 3177:. 3151:. 3127:. 3079:. 3053:. 3027:. 3001:. 2975:. 2949:. 2923:. 2897:. 2871:. 2845:. 2819:. 2793:. 2767:. 2741:. 2715:. 2689:. 2663:. 2637:. 2611:. 2585:. 2559:. 2534:. 2523:^ 2505:. 2453:. 2429:. 2418:^ 2402:. 2389:^ 2375:. 2345:^ 2329:. 2303:. 2277:. 2251:. 2225:. 2199:. 2170:. 2144:. 2118:. 2092:. 2066:. 2040:. 2014:. 1988:. 1977:^ 1959:. 1933:. 1922:^ 1904:. 1882:. 1872:. 1834:. 1808:. 1782:. 1756:. 1730:. 1719:^ 1701:. 1675:. 1649:. 1623:. 1597:. 1567:. 1541:. 1515:. 1489:. 1463:. 1434:. 1412:. 1382:. 1353:. 1327:. 1302:. 1277:. 1266:^ 1245:. 1232:^ 1211:. 1185:. 1168:^ 1148:. 1135:^ 898:, 894:, 878:, 855:. 835:. 785:. 584:. 415:. 330:. 306:, 170:, 74:, 66:, 3930:. 3908:. 3886:. 3864:. 3845:. 3814:. 3789:. 3764:. 3694:. 3668:. 3642:. 3616:. 3590:. 3564:. 3495:. 3447:. 3421:. 3395:. 3369:. 3343:. 3296:. 3270:. 3244:. 3218:. 3189:. 3163:. 3137:. 3091:. 3065:. 3039:. 3013:. 2987:. 2961:. 2935:. 2909:. 2883:. 2857:. 2831:. 2805:. 2779:. 2753:. 2727:. 2701:. 2675:. 2649:. 2623:. 2597:. 2571:. 2545:. 2517:. 2491:. 2463:. 2439:. 2412:. 2383:. 2339:. 2315:. 2289:. 2263:. 2237:. 2211:. 2182:. 2156:. 2130:. 2104:. 2078:. 2052:. 2026:. 2000:. 1971:. 1945:. 1916:. 1890:. 1866:: 1846:. 1820:. 1794:. 1768:. 1742:. 1713:. 1687:. 1661:. 1635:. 1609:. 1579:. 1553:. 1527:. 1501:. 1475:. 1449:. 1420:. 1416:: 1394:. 1365:. 1339:. 1313:. 1288:. 1260:. 1226:. 1197:. 1162:. 156:C 145:/ 130:/ 94:) 20:)

Index

Draft:EBPF

Original author(s)
Developer(s)
Meta
Google
Microsoft
Netflix
Repository
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
github.com/Microsoft/ebpf-for-windows/
C
Operating system
Linux
Windows
Type
Runtime system
License
GPL
MIT License
ebpf.io
privileged context
operating system
kernel
Berkeley Packet Filter
runtime
source code
kernel modules
static code analysis
sandboxed

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.