Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Nov 20, 2025

This PR contains the following updates:

Package Change Age Confidence
github.com/cilium/ebpf v0.19.0 -> v0.20.0 age confidence

Release Notes

cilium/ebpf (github.com/cilium/ebpf)

v0.20.0

Compare Source

Performance Improvements

  • btf: Memory-map vmlinux BTF when possible instead of copying to heap (saves several megabytes)
  • btf: Decode BTF from byte slices instead of io.Reader for better performance
  • btf: Cache BTF during fixups and target search to avoid loading each blob multiple times
  • linker: Resolve kernel symbols in a single pass instead of individually
  • prog: Speed up opening pinned programs by using minimal program info
  • map: Avoid allocations during PerCPUMap batch lookups (76% faster, 99% fewer allocations)

New Features

  • btf: Added LoadSplitSpec function for easier use of split-BTF files
  • btf: Accept empty string tables in BTF data
  • link: Added Detach() method for explicitly detaching links
  • map: Preliminary support for arena maps
  • map: Parse and expose map_extra field in MapSpec (enables bloom filter configuration)
  • prog: Allow explicit ifindex specification when loading programs
  • prog: Support getting context output from syscall programs
  • prog: Allow passing extra targets for CO-RE relocations via ExtraRelocationTargets
  • bpf2go: Allow multiple commands in BPF2GO_CC environment variable (e.g., ccache clang)
  • tracefs: Allow hyphens in tracepoint group names
  • kallsyms: Return ErrRestrictedKernel when reading zero addresses due to kernel.kptr_restrict
  • info: Return ErrRestrictedKernel when program info is restricted by kernel security settings
  • prog: Tolerate ErrRestrictedKernel during ksym resolution unless ksyms are required

Bugfixes

  • ringbuf: Fixed panic when reading after close
  • btf: Fixed race condition when loading cached kernel/module specs
  • ringbuf: Fixed 32-bit compatibility by using uintptr for positions
  • memory: Set cleanup on *Memory instead of **Memory to fix resource leak
  • link: Fixed concurrent cleanup ordering for perf events and tracefs events

Windows Support Improvements

  • ringbuf: Added Windows support for ring buffer operations
  • windows: Fixed compatibility with recent eBPF for Windows changes (XDP_TEST removal, SAMPLE program type)
  • windows: Enabled Hyper-V support in test VMs
  • program: Added workaround for eBPF for Windows rejecting empty ContextOut

Breaking Changes

ProgramOptions.KernelModuleTypes removed

The KernelModuleTypes field in ProgramOptions has been removed. In 99% of cases this field should not be necessary anymore. Module BTF should be merged into the vmlinux BTF, as tools like btfhub do.

For advanced use cases that still require passing additional BTF specs for CO-RE relocations, use the new ExtraRelocationTargets field:

Before:

opts := &ebpf.ProgramOptions{
    KernelModuleTypes: map[string]*btf.Spec{
        "module1": moduleSpec1,
    },
}

After:

// Merge module BTF into vmlinux BTF (recommended)
// Or for advanced cases:
opts := &ebpf.ProgramOptions{
    ExtraRelocationTargets: []*btf.Spec{
        moduleSpec1,
    },
}
btf.Cache fields unexported

The KernelTypes, ModuleTypes, and LoadedModules fields in btf.Cache have been unexported. These fields were internal implementation details and should not have been accessed directly. Users should continue using btf.NewCache() to create cache instances - no code changes are needed if you weren't directly accessing these fields.

cache := btf.NewCache()
cache.KernelTypes = mySpec  // This will no longer compile

What's Changed

New Contributors

Full Changelog: cilium/ebpf@v0.19.0...v0.20.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot enabled auto-merge November 20, 2025 22:02
@renovate
Copy link
Contributor Author

renovate bot commented Nov 20, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: go.sum
Command failed: go get -t ./...
go: module github.com/cilium/[email protected] requires go >= 1.24.0; switching to go1.24.10
go: downloading go1.24.10 (linux/amd64)
go: download go1.24.10: golang.org/[email protected]: verifying module: checksum database disabled by GOSUMDB=off

@renovate renovate bot added this pull request to the merge queue Nov 20, 2025
Merged via the queue into main with commit 1632d90 Nov 20, 2025
3 of 8 checks passed
@renovate renovate bot deleted the renovate/github.com-cilium-ebpf-0.x branch November 20, 2025 22:02
@github-actions github-actions bot mentioned this pull request Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants