Download Latest Version v0.19.0 source code.zip (2.4 MB)
Email in envelope

Get an email when there's a new version of eBPF

Home / v0.19.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-06-24 7.8 kB
v0.19.0 source code.tar.gz 2025-06-24 2.1 MB
v0.19.0 source code.zip 2025-06-24 2.4 MB
Totals: 3 Items   4.5 MB 5

Major Performance Improvements

This release includes significant performance optimizations across multiple areas:

  • Lazy BTF Decoding: BTF types are now decoded on-demand rather than all upfront, dramatically reducing memory usage and load times
  • Faster Object Opening: Opening Maps and Programs from fd/id/pin is significantly faster through minimal info retrieval
  • Improved Statistics Access: New Program.Stats() method allows querying runtime statistics without fetching full ProgramInfo

CO-RE Improvements

  • Full Kernel Module Support: CO-RE relocations now work against all kernel modules, not just vmlinux

Build System and Toolchain Updates

  • LLVM Toolchain: Updated to support LLVM 14, 17, and 20 (dropped LLVM 11 support)

Enhanced Map Support

  • BTF Declaration Tags: Added MapSpec.Tags field for reading btf_decl_tag attributes set on maps
  • Better Error Handling: Improved BPF_F_NO_PREALLOC hints and warnings for map types that require this flag

Assembly and Instruction Handling

  • Atomic Operations: Complete support for all atomic operations beyond just atomic add

Memory and Variable Access

  • New Accessors: Added accessor methods for values represented by Variable and Memory types

Windows Support Improvements

  • Path Canonicalization: Fixed pin path handling to work with eBPF for Windows path canonicalization rules

Bug Fixes

  • Map Batch Operations: Fixed value unmarshaling for partial batch operations in BatchLookup and BatchLookupDelete (#1741)
  • Assembly Validation: Return InvalidOpCode for StoreImm with DWord size (#1767)
  • Builtin Function Calls: Allow negative constants for builtin function calls (#1797)
  • CO-RE Module Types: Perform CO-RE against all kernel module types (#1511)
  • Pin API: Made WalkDir harder to misuse and added Windows support (#1652)
  • Struct Layout: Emit structs.HostLayout in GoFormatter (#1686)

Compatibility Notes

  • Minimum eBPF for Windows: Now requires eBPF for Windows 0.21.0 or later
  • LLVM 11 Dropped: No longer supports LLVM 11 (required for declaration tag support)

What's Changed

New Contributors

Full Changelog: https://github.com/cilium/ebpf/compare/v0.18.0...v0.19.0

Source: README.md, updated 2025-06-24