-
Notifications
You must be signed in to change notification settings - Fork 7
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
fix(deps): update module github.com/cilium/ebpf to v0.17.1 #218
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/github.com-cilium-ebpf-0.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PR Environments:
|
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.12.2
fix(deps): update module github.com/cilium/ebpf to v0.12.3
Nov 9, 2023
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
November 9, 2023 17:13
6f2724e
to
96bf97f
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
February 15, 2024 19:16
96bf97f
to
70eacc3
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.12.3
fix(deps): update module github.com/cilium/ebpf to v0.13.0
Feb 15, 2024
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
February 22, 2024 13:16
70eacc3
to
83fccb5
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.13.0
fix(deps): update module github.com/cilium/ebpf to v0.13.1
Feb 22, 2024
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
February 22, 2024 22:02
83fccb5
to
5be1a71
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.13.1
fix(deps): update module github.com/cilium/ebpf to v0.13.2
Feb 22, 2024
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
March 27, 2024 11:26
5be1a71
to
9732470
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.13.2
fix(deps): update module github.com/cilium/ebpf to v0.14.0
Mar 27, 2024
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
March 29, 2024 08:14
9732470
to
f5e4b46
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
April 14, 2024 11:26
f5e4b46
to
2fa75ab
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
April 22, 2024 15:33
2fa75ab
to
bf99dc1
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.14.0
fix(deps): update module github.com/cilium/ebpf to v0.15.0
Apr 22, 2024
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
May 9, 2024 12:08
bf99dc1
to
76f9916
Compare
ℹ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
June 4, 2024 12:32
76f9916
to
8240480
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
June 16, 2024 07:40
8240480
to
b0af6de
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
July 14, 2024 09:48
b0af6de
to
e3378d0
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
July 24, 2024 14:01
e3378d0
to
5716567
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.15.0
fix(deps): update module github.com/cilium/ebpf to v0.16.0
Jul 24, 2024
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
September 11, 2024 16:44
5716567
to
1bd2f0e
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
2 times, most recently
from
November 17, 2024 17:04
fd6612b
to
d1c06ad
Compare
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
December 18, 2024 17:44
d1c06ad
to
10a8c44
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.16.0
fix(deps): update module github.com/cilium/ebpf to v0.17.0
Dec 18, 2024
renovate
bot
force-pushed
the
renovate/github.com-cilium-ebpf-0.x
branch
from
December 20, 2024 02:12
10a8c44
to
ed3c4a3
Compare
renovate
bot
changed the title
fix(deps): update module github.com/cilium/ebpf to v0.17.0
fix(deps): update module github.com/cilium/ebpf to v0.17.1
Dec 20, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.12.0
->v0.17.1
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
cilium/ebpf (github.com/cilium/ebpf)
v0.17.1
: Hotfix: don't retry endlessly on verifier errors on kernels <6.4Compare Source
During the prior removal of
ProgramOptions.LogSize
in v0.16, the tests weren't updated to exercise the retry logic. With the last-minute addition ofProgramOptions.LogSizeStart
, a bug was introduced that would cause program loads to retry indefinitely without ever growing the buffer in case of a verifier error on kernels before 6.4. This is now fixed, and the tests were updated to exercise the retry logic.v0.17.0
: Global Variables, Decl Tags, and packagepin
Compare Source
Note: the hotfix release 0.17.1 is out. Users are highly encouraged to upgrade.
As we close the door on the year 2024, we're also wrapping up the ebpf-go v0.17 development cycle. This release represents a large body of work and is our largest feature release since BTF.
Users are, as always, highly encouraged to upgrade, and we're looking forward to hearing your feedback on the new Global Variables API. We've been putting this interface trough its paces internally, along with a few eager community members, and we're ready to let the wider community make use of it.
This release also marks the end of our Go 1.21 support; Go 1.22 is required going forward.
Breaking Changes
Before we get to the fun stuff, we need to call out a few breaking changes:
Global variables with a
static
qualifier can no longer be rewritten usingCollectionSpec.RewriteConstants()
! See the section on global variables under major features below.program: remove LogSize and VerifierError.Truncated by @lmb in https://github.com/cilium/ebpf/pull/1526
prog: add ProgramOptions.LogSizeStart to obtain full log after verifier bug by @ti-mo in https://github.com/cilium/ebpf/pull/1630
The
ProgramOptions.LogSize
field was deprecated and a no-op since 0.16 and has now been removed completely. In its place, a new field was added to obtain full verifier logs when the verifier hits an internal bug. TheProgramOptions.LogSizeStart
field controls the starting size of the log buffer. Use this if you have a good understanding of the log size you're expecting, or if you're trying to pull out the full log when the verifier hits an internal bug. The error string now also contains some hints about what happened and how to handle this situation.map: remove MapSpec.Freeze field by @ti-mo in https://github.com/cilium/ebpf/pull/1558
elf_reader: don't use BPF_F_RDONLY_PROG flag to trigger map freezing by @ti-mo in https://github.com/cilium/ebpf/pull/1568
The Freeze field was ambiguous from the start, and has been a source of subtle bugs over the years. Automatic map freezing is now done based solely on map name (.(ro)data prefix). If you were manually setting this flag, consider using a conventional map name instead.
info: expose ksym info and func info by ProgramInfo by @Asphaltt in https://github.com/cilium/ebpf/pull/1576
info: expose more prog jited info by @Asphaltt in https://github.com/cilium/ebpf/pull/1598
Some ext_info types in package btf were redefined to enable pulling raw func and line infos out of
Program.Info()
. These were all types without methods and all unexported fields, but calling them out regardless in case someone's doingunintendedadvanced things with BTF.kallsyms: change Modules caching strategy, cache address lookups by @ti-mo in https://github.com/cilium/ebpf/pull/1590
Users attaching bpf programs to kernel symbols should see a marked decrease in allocations made in the library during program creation in the general case. Only used entries are now cached, making kallsyms lookups on subsequent program loads free. In the pathological case (new kernel symbols on every load), scanning is repeated, resulting in more CPU time being used instead of holding on to all kallsyms symbols indefinitely.
ProgramSpec.KernelModule()
was unexported until further notice.Also, bpf2go users should now be able to generate Go bindings as unprivileged users once again. Oops!
Major Features
Easy global variables: introducing
ebpf.VariableSpec
andebpf.Variable
This has been a frequent ask in the community for years, so we finally bit the bullet and committed to an API to interact with global bpf variables through
CollectionSpec.Variables
andCollectionSpec.Variables
. We've published a small guide over on ebpf-go.dev/concepts/global-variables that details how to use them, so we're not going to reiterate here.See the documentation on the use of the
static
qualifier! These are no longer considered global variables, and can't be modified at runtime.bpf2go now also generates objects to be used with
CollectionSpec.Assign
and.LoadAndAssign()
, and also emits Go type declarations for C types used as bpf C variables. Our test coverage was somewhat lacking for the latter, please drop something on the issue tracker if you're noticing surprising bpf2go output.Note that it's currently not possible to manually create a
VariableSpec
and wire it up to aCollectionSpec
, so if you were previously relying on e.g. manually assembling aCollectionSpec
and usingRewriteConstants()
in tests, this will no longer work. This may land as the API crystallizes and we settle on a good mechanism to enable this. Please reach out on the Cilium Slack if you'd like to see this happen.Tags!
As you'll notice, the
btf.Struct
,btf.Union
,btf.Member
,btf.Typedef
,btf.Func
andbtf.Var
have gained a new field:Tags
! Set one or more tags on these objects from bpf C using__attribute__((btf_decl_tag("mytag")))
andyou'll find
Tags
being populated in Go.There's also the
btf.Func.ParamTags
field that holds tags declared on individual function parameters. These are part of theFunc
since they appear only in the function prototype, not in the parameter type itself, since those can appear in many different types. (it does get confusing!)Also, an honorable mention to
btf.TypeTag
, which has now been exported. This allows tagging pointers with an arbitrary string value and is mainly used by the Linux verifier to tag kernel pointers, see the__kptr
and__kptr_ref
macros in Linux'bpf_helpers.h
.Pins!
We've added a new root-level package
pin
, which currently features theLoad()
andWalkDir()
functions. Since allLoadPinned*
functions in the library now check for the underlying object's type, we've repurposed the machinery to allow loading an opaque pin and returning a Go object of the right type.WalkDir
does what it says on the tin, it walks bpffs directories and invokes a callback that received the loaded object. Super convenient!Minor Features
We've also added a handful of minor features during this release:
bpf_prog_info
fields inProgramInfo
by @tyrone-wu in https://github.com/cilium/ebpf/pull/1512Other Changes
Last but not least, there's bugfixes, CI changes and some internal refactoring that happened to eventually make ebpf-go work with ebpf-for-windows. See individual PRs for more context. Stay tuned!
objNameAllowsDot
, return *btf.Var fromVariable{Spec}.Type()
by @ti-mo in https://github.com/cilium/ebpf/pull/1612epoll.Wait
by using sentinel errors by @def in https://github.com/cilium/ebpf/pull/1619New Contributors
Full Changelog: cilium/ebpf@v0.16.0...v0.17.0
v0.16.0
Compare Source
program: automatic verifier log sizing and ProgramInfo.RecursionMisses()
For the longest time users had to specify
ProgramOptions.LogSize
to get thefull verifier log for large programs. The library now automatically figures out
the correct buffer size to use and the field is deprecated. It will be removed
in the next version.
ProgramInfo now exposes how often a program didn't execute due to recursion
limits via
RecursionMisses
.perf, ringbuf: better control over wakeups, Flush()
There is a trade off between how fast samples are processed and how much CPU is
used. Reading samples as quickly as possible uses more CPU, reading in batches
is cheaper.
It's now possible to configure a "maximum time before a wakeup" by using
Reader.SetDeadline(). This now guarantees that any pending samples are read
at the end of the deadline, even if the Watermark wasn't reached.
It's also possible to manually flush the buffer using
Flush()
.Bugfixes
Copy()
methods now to a full deep copy and all accept nil values.What's Changed
go
directive to1.21
by @mx-psi in https://github.com/cilium/ebpf/pull/1441New Contributors
Full Changelog: cilium/ebpf@v0.15.0...v0.16.0
v0.15.0
Compare Source
btf:
bpf_core_type_matches
is now supportedPrograms can now use
bpf_core_type_matches()
for a stricter compatibility check. See https://github.com/cilium/ebpf/pull/1366.program, btf: improve debuggability when CO-RE or kfunc fixup fails
The library now tries to return a more informative error when loading a program fails due to a failed CO-RE relocation or a missing kfunc. See https://github.com/cilium/ebpf/pull/1402.
btf: synthesise instruction comments into line info
asm.Comment
in an instruction'sSource()
are now passed to the kernel in the form of BTF line info. See https://github.com/cilium/ebpf/pull/1417.perf: add WakeupEvents support to Reader
A perf Reader can now be configured to be woken up after a specific number of events / samples have been submitted. See https://github.com/cilium/ebpf/pull/1404.
Bugfixes
program
: fix loading a program which targets a function in a kernel module whenCONFIG_DEBUG_INFO_BTF_MODULES
is disabled, see #1440.Breaking changes
github.com/cilium/ebpf/btf
Copy
: thetransform
argument was removed. Use the newbtf.As
function instead.Transformer
: removed. See above.What's Changed
bpf_core_type_matches()
by @dylandreimerink in https://github.com/cilium/ebpf/pull/1366New Contributors
Full Changelog: cilium/ebpf@v0.14.0...v0.15.0
v0.14.0
Compare Source
btf: support for CO-RE relocations against kernel modules
It's now possible to use CO-RE relocations against types defined in kernel modules. See https://github.com/cilium/ebpf/pull/1300 by @brycekahle.
link: netkit support
The
link
package now allows attaching to netkit interfaces. See https://github.com/cilium/ebpf/pull/1257 by @hemanthmallalink: support for iterating links
The new
link.Iterator
type allows enumerating all BPF links active. See https://github.com/cilium/ebpf/pull/1392 by @mpastyl.Bugfixes
ringbuf
: fixed a bug which can lead to corrupt data on arm64, see https://github.com/cilium/ebpf/pull/1375Breaking changes
github.com/cilium/ebpf
ProgramOptions
is not comparable anymore due toKernelModuleTypes
.github.com/cilium/ebpf/btf
CORERelocate
had its singature change once again.What's Changed
New Contributors
Full Changelog: cilium/ebpf@v0.13.2...v0.14.0
v0.13.2
Compare Source
What's Changed
Full Changelog: cilium/ebpf@v0.13.1...v0.13.2
v0.13.1
Compare Source
What's Changed
New Contributors
Full Changelog: cilium/ebpf@v0.13.0...v0.13.1
v0.13.0
Compare Source
Faster btf.LoadKernelSpec()
Obtaining the kernel's BTF used to be very slow and is now very fast. See https://github.com/cilium/ebpf/pull/1235 by @lmb.
TCX
It's now possible to attach TC programs using the new bpf_link based TCX API. See https://github.com/cilium/ebpf/pull/1163 by @lmb.
UprobeMulti and UretprobeMulti
These are the user-space equivalents to KprobeMulti and Kretprobe multi and allow
attaching to a large number of symbols quickly. See https://github.com/cilium/ebpf/pull/1269 by @olsajiri.
Netfilter link
There is now support to attach Netfilter programs using bpf_links. See https://github.com/cilium/ebpf/pull/1313 by @mehrdadrad.
Better ELF section naming compatibility
The list of recognised ELF section names is now automatically generated from
libbpf and should be more accurate and easier to keep up to date. See https://github.com/cilium/ebpf/pull/1209 by @lmb.
Pre-allocate per-CPU values
It's now possible to cut down on allocations by pre-allocating per-CPU values. See https://github.com/cilium/ebpf/pull/1220 by @alxn.
Batch operation support for per-CPU values
Batch operations like Map.BatchLookup now support per-CPU values. Note that this
is not particularly optimised, please check whether it is faster based on your
use case. See https://github.com/cilium/ebpf/pull/1192 by @alxn.
Breaking changes
This release requires at least Go 1.21.
github.com/cilium/ebpf
(*Map).BatchLookup
,(*Map).BatchLookupAndDelete
: now take aMapBatchCursor
.The previous implementation did not properly account for differences between
map types and was unsafe.
github.com/cilium/ebpf/btf
Spec.TypeID
.*Builder
instead of allocating it.Simply pass
NewBuilder()
.Both of these are considered somewhat internal API of the library.
github.com/cilium/ebpf/features
HaveBoundedLoops
: changed from var to funcHaveLargeInstructions
: changed from var to funcHaveV2ISA
: changed from var to funcHaveV3ISA
: changed from var to funcgithub.com/cilium/ebpf/link
QueryOptions.Path
: removed. Instead, pass an fd to the directory viaQueryOptions.Target
.QueryPrograms
: now returnsQueryResult
to be able to extend the API.RawAttachProgramOptions.Replace
: removed. Instead, passReplaceProgram()
toRawAttachProgramOptions.Anchor
.What's Changed
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.