<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Digest on ebpf-digest</title><link>https://ebpf-digest.kostympop.info/digest/</link><description>Recent content in Digest on ebpf-digest</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 20 Jul 2026 17:18:22 +0000</lastBuildDate><atom:link href="https://ebpf-digest.kostympop.info/digest/index.xml" rel="self" type="application/rss+xml"/><item><title>CVE-2026-64192</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64192/</link><pubDate>Mon, 20 Jul 2026 17:18:22 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64192/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: Reject BPF_MAP_TYPE_INODE_STORAGE creation if BPF LSM is uninitialized&lt;/p&gt;
&lt;p&gt;When CONFIG_BPF_LSM=y is set, BPF inode storage maps
(BPF_MAP_TYPE_INODE_STORAGE) are compiled into the kernel. However,
if the BPF LSM is not explicitly enabled at boot time (e.g. omitted
from the &amp;ldquo;lsm=&amp;rdquo; boot parameter), lsm_prepare() is never executed for
the BPF LSM.&lt;/p&gt;
&lt;p&gt;Consequently, the BPF inode security blob offset
(bpf_lsm_blob_sizes.lbs_inode) is never initialized and remains at
its default compiled size of 8 bytes instead of being updated to a
valid offset past the reserved struct rcu_head (typically 16 bytes
or more).&lt;/p&gt;</description></item><item><title>CVE-2026-64075</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64075/</link><pubDate>Sun, 19 Jul 2026 16:17:48 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64075/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;fprobe: Fix unregister_fprobe() to wait for RCU grace period&lt;/p&gt;
&lt;p&gt;Commit 4346ba1604093 (&amp;ldquo;fprobe: Rewrite fprobe on function-graph tracer&amp;rdquo;)
changed fprobe to register struct fprobe to an rcu-hlist, but it forgot
to wait for RCU GP. Thus there can be use-after-free if the fprobe is
released right after unregistering. This can be happened on fprobe
event and sample module code.&lt;/p&gt;
&lt;p&gt;To fix this issue, add synchronize_rcu() in unregister_fprobe().&lt;/p&gt;</description></item><item><title>CVE-2026-64036</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64036/</link><pubDate>Sun, 19 Jul 2026 16:17:43 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64036/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;cgroup/rstat: validate cpu before css_rstat_cpu() access&lt;/p&gt;
&lt;p&gt;css_rstat_updated() is exposed as a BPF kfunc and accepts a
caller-provided cpu argument. The function uses cpu for per-cpu rstat
lookups without checking whether it refers to a valid possible CPU.&lt;/p&gt;
&lt;p&gt;A BPF iter/cgroup program with CAP_BPF and CAP_PERFMON can pass an
invalid cpu value. On an unfixed UBSCAN_BOUNDS test kernel, cpu ==
0x7fffffff triggers:&lt;/p&gt;</description></item><item><title>CVE-2026-64024</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64024/</link><pubDate>Sun, 19 Jul 2026 16:17:42 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64024/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;tcp: fix stale per-CPU tcp_tw_isn leak enabling ISN prediction&lt;/p&gt;
&lt;p&gt;Blamed commit moved the TIME_WAIT-derived ISN from the skb control
block to a per-CPU variable, assuming the value would always be consumed
by tcp_conn_request() for the same packet that wrote it. That assumption
is violated by multiple drop paths between the producer
(__this_cpu_write(tcp_tw_isn, isn) in tcp_v{4,6}_rcv()) and the consumer
(tcp_conn_request()):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;min_ttl / min_hopcount check&lt;/li&gt;
&lt;li&gt;xfrm policy check&lt;/li&gt;
&lt;li&gt;tcp_inbound_hash() MD5/AO mismatch&lt;/li&gt;
&lt;li&gt;tcp_filter() eBPF/SO_ATTACH_FILTER drop&lt;/li&gt;
&lt;li&gt;th-&amp;gt;syn &amp;amp;&amp;amp; th-&amp;gt;fin discard in tcp_rcv_state_process() TCP_LISTEN&lt;/li&gt;
&lt;li&gt;psp_sk_rx_policy_check() in tcp_v{4,6}_do_rcv()&lt;/li&gt;
&lt;li&gt;tcp_checksum_complete() in tcp_v{4,6}_do_rcv()&lt;/li&gt;
&lt;li&gt;tcp_v{4,6}_cookie_check() returning NULL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When a packet is dropped on any of these paths, tcp_tw_isn is left set.&lt;/p&gt;</description></item><item><title>CVE-2026-64025</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64025/</link><pubDate>Sun, 19 Jul 2026 16:17:42 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-64025/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf, skmsg: fix verdict sk_data_ready racing with ktls rx&lt;/p&gt;
&lt;p&gt;sk_psock_strp_data_ready() already checks tls_sw_has_ctx_rx() and
defers to psock-&amp;gt;saved_data_ready when a TLS RX context is present,
avoiding a conflict with the TLS strparser&amp;rsquo;s ownership of the receive
queue (commit e91de6afa81c, &amp;ldquo;bpf: Fix running sk_skb program types
with ktls&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;sk_psock_verdict_data_ready() has no equivalent guard. When a socket
is inserted into a sockmap (BPF_SK_SKB_VERDICT) before TLS RX is
configured, tls_sw_strparser_arm() saves sk_psock_verdict_data_ready
as rx_ctx-&amp;gt;saved_data_ready. On data arrival:&lt;/p&gt;</description></item><item><title>CVE-2026-63926</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63926/</link><pubDate>Sun, 19 Jul 2026 16:17:10 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63926/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: sockmap: fix tail fragment offset in bpf_msg_push_data&lt;/p&gt;
&lt;p&gt;When bpf_msg_push_data() inserts data in the middle of a scatterlist
entry, it splits the original entry into a left fragment and a right
fragment.&lt;/p&gt;
&lt;p&gt;The right fragment offset is page-local, but the code advances it with
&lt;code&gt;start&lt;/code&gt;, which is the message-global insertion point. For inserts into a
non-first SG entry, this over-advances the offset and leaves the split
layout inconsistent.&lt;/p&gt;</description></item><item><title>CVE-2026-63864</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63864/</link><pubDate>Sun, 19 Jul 2026 15:16:53 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63864/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: Propagate error from visit_tailcall_insn&lt;/p&gt;
&lt;p&gt;Commit e40f5a6bf88a (&amp;ldquo;bpf: correct stack liveness for tail calls&amp;rdquo;) added
visit_tailcall_insn() but did not check its return value.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-63864"&gt;View source&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CVE-2026-63865</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63865/</link><pubDate>Sun, 19 Jul 2026 15:16:53 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63865/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: Drop task_to_inode and inet_conn_established from lsm sleepable hooks&lt;/p&gt;
&lt;p&gt;bpf_lsm_task_to_inode() is called under rcu_read_lock() and
bpf_lsm_inet_conn_established() is called from softirq context, so
neither hook can be used by sleepable LSM programs.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-63865"&gt;View source&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CVE-2026-63830</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63830/</link><pubDate>Sun, 19 Jul 2026 12:16:56 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63830/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;net: skmsg: preserve sg.copy across SG transforms&lt;/p&gt;
&lt;p&gt;The sk_msg sg.copy bitmap is part of the scatterlist entry ownership
state. A set bit tells sk_msg_compute_data_pointers() not to expose the
entry through writable BPF ctx-&amp;gt;data. This protects entries backed by
pages that are not private to the sk_msg, such as splice-backed file
page-cache pages.&lt;/p&gt;
&lt;p&gt;Several sk_msg transform paths move, copy, split, or compact
msg-&amp;gt;sg.data[] entries without moving the matching sg.copy bit. This can
make an externally backed entry arrive at a new slot with a clear copy
bit. A later SK_MSG verdict can then expose sg_virt(sge) as writable
ctx-&amp;gt;data and BPF stores can modify the original page cache.&lt;/p&gt;</description></item><item><title>CVE-2026-63809</title><link>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63809/</link><pubDate>Sun, 19 Jul 2026 12:16:53 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/cve-cve-2026-63809/</guid><description>&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: use kvfree() for replaced sysctl write buffer&lt;/p&gt;
&lt;p&gt;proc_sys_call_handler() allocates its temporary sysctl buffer with
kvzalloc() and passes it to __cgroup_bpf_run_filter_sysctl(). Since
kvzalloc() may fall back to vmalloc() for large allocations, freeing
that buffer with kfree() is wrong and can corrupt memory.&lt;/p&gt;
&lt;p&gt;Use kvfree() to safely handle both kmalloc and kvzalloc()/vmalloc
allocations.&lt;/p&gt;
&lt;p&gt;The bug was first flagged by an experimental analysis tool we are
developing for kernel memory-management bugs while analyzing
v6.13-rc1. The tool is still under development and is not yet publicly
available. Manual inspection confirms that the bug is still
present in v7.1-rc5.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.22.0: Linux 7.1 compat, BPF tokens and vmlinux BTF caching changes</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-22-0/</link><pubDate>Mon, 29 Jun 2026 07:31:50 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-22-0/</guid><description>&lt;p&gt;Hi everyone! Today we announce the v0.22.0 release of ebpf-go. We ship Linux 7.1 compatibility, older versions of the library will not work on 7.1 kernels and above, so please upgrade if you are targeting the latest releases of Linux. We also made a breaking change to BTF caching, please read those notes. And of course a few fixes, improvements and minor features.&lt;/p&gt;
&lt;h2 id="kernel-71-compatibility"&gt;Kernel 7.1 compatibility&lt;/h2&gt;
&lt;p&gt;In kernel 7.1 the BTF header was extended to introduce a new feature called BTF layout. This change caused our BTF parser to fail when parsing vmlinux for this kernel. This has been fixed in this latest release, we recommend upgrading to this latest release to avoid breakage on 7.1 and newer kernels.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.21.0: Struct Ops, Weak Symbols and BTF deduplication</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-21-0/</link><pubDate>Thu, 05 Mar 2026 15:30:29 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-21-0/</guid><description>&lt;p&gt;Hi, everyone! The Cilium project is proud to announce v0.21.0 of ebpf-go, our first major 2026 feature release. Please note that this version comes with a few breaking changes for XDP users that may require some intervention based on your use case, so please read the following section carefully before upgrading! We&amp;rsquo;ve also removed some long-deprecated APIs.&lt;/p&gt;
&lt;h2 id="breaking-changes"&gt;Breaking changes&lt;/h2&gt;
&lt;h3 id="xdp-attach-type"&gt;XDP Attach Type&lt;/h3&gt;
&lt;p&gt;This release saw a change to the ELF parsing logic, specifically to XDP programs. Previously, XDP programs had their &lt;a href="https://pkg.go.dev/github.com/cilium/ebpf@v0.21.0#ProgramSpec.AttachType"&gt;&lt;code&gt;ProgramSpec.AttachType&lt;/code&gt;&lt;/a&gt; set to &lt;code&gt;AttachNone&lt;/code&gt;. Prompted by upstream changes in Linux 6.18, XDP programs now come with an &lt;a href="https://pkg.go.dev/github.com/cilium/ebpf@v0.21.0#AttachXDP"&gt;&lt;code&gt;AttachXDP&lt;/code&gt;&lt;/a&gt; attach type. This change ensures compatibility with kernels going forward, as well as better interoperability with libbpf-based tools using shared PROG_ARRAY maps.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.20.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-20-0/</link><pubDate>Fri, 31 Oct 2025 13:52:39 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-20-0/</guid><description>&lt;h2 id="performance-improvements"&gt;Performance Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;btf: Memory-map vmlinux BTF when possible instead of copying to heap (saves several megabytes)&lt;/li&gt;
&lt;li&gt;btf: Decode BTF from byte slices instead of io.Reader for better performance&lt;/li&gt;
&lt;li&gt;btf: Cache BTF during fixups and target search to avoid loading each blob multiple times&lt;/li&gt;
&lt;li&gt;linker: Resolve kernel symbols in a single pass instead of individually&lt;/li&gt;
&lt;li&gt;prog: Speed up opening pinned programs by using minimal program info&lt;/li&gt;
&lt;li&gt;map: Avoid allocations during PerCPUMap batch lookups (76% faster, 99% fewer allocations)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-features"&gt;New Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;btf: Added &lt;code&gt;LoadSplitSpec&lt;/code&gt; function for easier use of split-BTF files&lt;/li&gt;
&lt;li&gt;btf: Accept empty string tables in BTF data&lt;/li&gt;
&lt;li&gt;link: Added &lt;code&gt;Detach()&lt;/code&gt; method for explicitly detaching links&lt;/li&gt;
&lt;li&gt;map: Preliminary support for arena maps&lt;/li&gt;
&lt;li&gt;map: Parse and expose &lt;code&gt;map_extra&lt;/code&gt; field in MapSpec (enables bloom filter configuration)&lt;/li&gt;
&lt;li&gt;prog: Allow explicit ifindex specification when loading programs&lt;/li&gt;
&lt;li&gt;prog: Support getting context output from syscall programs&lt;/li&gt;
&lt;li&gt;prog: Allow passing extra targets for CO-RE relocations via &lt;code&gt;ExtraRelocationTargets&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;bpf2go: Allow multiple commands in BPF2GO_CC environment variable (e.g., &lt;code&gt;ccache clang&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;tracefs: Allow hyphens in tracepoint group names&lt;/li&gt;
&lt;li&gt;kallsyms: Return &lt;code&gt;ErrRestrictedKernel&lt;/code&gt; when reading zero addresses due to &lt;code&gt;kernel.kptr_restrict&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;info: Return &lt;code&gt;ErrRestrictedKernel&lt;/code&gt; when program info is restricted by kernel security settings&lt;/li&gt;
&lt;li&gt;prog: Tolerate &lt;code&gt;ErrRestrictedKernel&lt;/code&gt; during ksym resolution unless ksyms are required&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bugfixes"&gt;Bugfixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ringbuf: Fixed panic when reading after close&lt;/li&gt;
&lt;li&gt;btf: Fixed race condition when loading cached kernel/module specs&lt;/li&gt;
&lt;li&gt;ringbuf: Fixed 32-bit compatibility by using uintptr for positions&lt;/li&gt;
&lt;li&gt;memory: Set cleanup on &lt;code&gt;*Memory&lt;/code&gt; instead of &lt;code&gt;**Memory&lt;/code&gt; to fix resource leak&lt;/li&gt;
&lt;li&gt;link: Fixed concurrent cleanup ordering for perf events and tracefs events&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="windows-support-improvements"&gt;Windows Support Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ringbuf: Added Windows support for ring buffer operations&lt;/li&gt;
&lt;li&gt;windows: Fixed compatibility with recent eBPF for Windows changes (XDP_TEST removal, SAMPLE program type)&lt;/li&gt;
&lt;li&gt;windows: Enabled Hyper-V support in test VMs&lt;/li&gt;
&lt;li&gt;program: Added workaround for eBPF for Windows rejecting empty ContextOut&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="breaking-changes"&gt;Breaking Changes&lt;/h2&gt;
&lt;h3 id="programoptionskernelmoduletypes-removed"&gt;ProgramOptions.KernelModuleTypes removed&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;KernelModuleTypes&lt;/code&gt; field in &lt;code&gt;ProgramOptions&lt;/code&gt; 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 &lt;a href="https://github.com/aquasecurity/btfhub"&gt;btfhub&lt;/a&gt; do.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.19.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-19-0/</link><pubDate>Thu, 26 Jun 2025 10:47:38 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-19-0/</guid><description>&lt;h2 id="major-performance-improvements"&gt;Major Performance Improvements&lt;/h2&gt;
&lt;p&gt;This release includes significant performance optimizations across multiple areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lazy BTF Decoding: BTF types are now decoded on-demand rather than all upfront, dramatically reducing memory usage and load times&lt;/li&gt;
&lt;li&gt;Faster Object Opening: Opening Maps and Programs from fd/id/pin is significantly faster through minimal info retrieval&lt;/li&gt;
&lt;li&gt;Improved Statistics Access: New &lt;code&gt;Program.Stats()&lt;/code&gt; method allows querying runtime statistics without fetching full ProgramInfo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="co-re-improvements"&gt;CO-RE Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Full Kernel Module Support: CO-RE relocations now work against all kernel modules, not just vmlinux&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build-system-and-toolchain-updates"&gt;Build System and Toolchain Updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;LLVM Toolchain: Updated to support LLVM 14, 17, and 20 (dropped LLVM 11 support)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="enhanced-map-support"&gt;Enhanced Map Support&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BTF Declaration Tags: Added &lt;code&gt;MapSpec.Tags&lt;/code&gt; field for reading &lt;code&gt;btf_decl_tag&lt;/code&gt; attributes set on maps&lt;/li&gt;
&lt;li&gt;Better Error Handling: Improved &lt;code&gt;BPF_F_NO_PREALLOC&lt;/code&gt; hints and warnings for map types that require this flag&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="assembly-and-instruction-handling"&gt;Assembly and Instruction Handling&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Atomic Operations: Complete support for all atomic operations beyond just atomic add&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="memory-and-variable-access"&gt;Memory and Variable Access&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New Accessors: Added accessor methods for values represented by &lt;code&gt;Variable&lt;/code&gt; and &lt;code&gt;Memory&lt;/code&gt; types&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="windows-support-improvements"&gt;Windows Support Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Path Canonicalization: Fixed pin path handling to work with eBPF for Windows path canonicalization rules&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bug-fixes"&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Map Batch Operations: Fixed value unmarshaling for partial batch operations in &lt;code&gt;BatchLookup&lt;/code&gt; and &lt;code&gt;BatchLookupDelete&lt;/code&gt; (&lt;a href="https://github.com/cilium/ebpf/issues/1741"&gt;#1741&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Assembly Validation: Return &lt;code&gt;InvalidOpCode&lt;/code&gt; for &lt;code&gt;StoreImm&lt;/code&gt; with &lt;code&gt;DWord&lt;/code&gt; size (&lt;a href="https://github.com/cilium/ebpf/issues/1767"&gt;#1767&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Builtin Function Calls: Allow negative constants for builtin function calls (&lt;a href="https://github.com/cilium/ebpf/issues/1797"&gt;#1797&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;CO-RE Module Types: Perform CO-RE against all kernel module types (&lt;a href="https://github.com/cilium/ebpf/issues/1511"&gt;#1511&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Pin API: Made &lt;code&gt;WalkDir&lt;/code&gt; harder to misuse and added Windows support (&lt;a href="https://github.com/cilium/ebpf/issues/1652"&gt;#1652&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Struct Layout: Emit &lt;code&gt;structs.HostLayout&lt;/code&gt; in GoFormatter (&lt;a href="https://github.com/cilium/ebpf/issues/1686"&gt;#1686&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="compatibility-notes"&gt;Compatibility Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Minimum eBPF for Windows: Now requires eBPF for Windows 0.21.0 or later&lt;/li&gt;
&lt;li&gt;LLVM 11 Dropped: No longer supports LLVM 11 (required for declaration tag support)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;perf,ringbuf: switch Go build tag by @florianl in &lt;a href="https://github.com/cilium/ebpf/pull/1752"&gt;https://github.com/cilium/ebpf/pull/1752&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pin: make WalkDir harder to misuse and add Windows support by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1736"&gt;https://github.com/cilium/ebpf/pull/1736&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;examples: remove unnecessary -type flags to bpf2go invocations by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1754"&gt;https://github.com/cilium/ebpf/pull/1754&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;map: unmarshal values for partial batch by @aibor in &lt;a href="https://github.com/cilium/ebpf/pull/1742"&gt;https://github.com/cilium/ebpf/pull/1742&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump golang.org/x/net from 0.36.0 to 0.38.0 by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1756"&gt;https://github.com/cilium/ebpf/pull/1756&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;all: require eFW 0.21.0 by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1759"&gt;https://github.com/cilium/ebpf/pull/1759&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;all: use binary.Append where appropriate by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1760"&gt;https://github.com/cilium/ebpf/pull/1760&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: use append-style encoding when marshaling by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1761"&gt;https://github.com/cilium/ebpf/pull/1761&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ci: ensure build works with GOARCH=wasm by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1757"&gt;https://github.com/cilium/ebpf/pull/1757&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CI: test on latest ubuntu arm64 by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1766"&gt;https://github.com/cilium/ebpf/pull/1766&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;asm: Add handling for atomic operations by @dylandreimerink in &lt;a href="https://github.com/cilium/ebpf/pull/1751"&gt;https://github.com/cilium/ebpf/pull/1751&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CI: run tests with -race enabled by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1770"&gt;https://github.com/cilium/ebpf/pull/1770&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: lazy decoding by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1763"&gt;https://github.com/cilium/ebpf/pull/1763&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: lazy decoding of string table by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1772"&gt;https://github.com/cilium/ebpf/pull/1772&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Typo: BenchmarkInspectorGadget -&amp;gt; BenchmarkInspektorGadget by @burak-ok in &lt;a href="https://github.com/cilium/ebpf/pull/1773"&gt;https://github.com/cilium/ebpf/pull/1773&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump the docs group in /docs with 3 updates by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1771"&gt;https://github.com/cilium/ebpf/pull/1771&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;variable: return native Go pointers to bpf map memory by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1607"&gt;https://github.com/cilium/ebpf/pull/1607&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;map: reduce false positives of BPF_F_NO_PREALLOC hint on EINVAL by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1776"&gt;https://github.com/cilium/ebpf/pull/1776&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ci: fix efW installation by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1777"&gt;https://github.com/cilium/ebpf/pull/1777&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;bpf2go, btf: emit structs.HostLayout in GoFormatter by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1769"&gt;https://github.com/cilium/ebpf/pull/1769&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: fix Spec.Copy() for split BTF by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1775"&gt;https://github.com/cilium/ebpf/pull/1775&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fix: return InvalidOpCode for StoreImm with DWord size by @Ghostbaby in &lt;a href="https://github.com/cilium/ebpf/pull/1768"&gt;https://github.com/cilium/ebpf/pull/1768&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;info: add memlock field to ProgramInfo by @haozhangami in &lt;a href="https://github.com/cilium/ebpf/pull/1764"&gt;https://github.com/cilium/ebpf/pull/1764&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ci: use real staticcheck by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1779"&gt;https://github.com/cilium/ebpf/pull/1779&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;refactor: use the built-in max/min by @cuishuang in &lt;a href="https://github.com/cilium/ebpf/pull/1780"&gt;https://github.com/cilium/ebpf/pull/1780&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;refactor: replace HasPrefix+TrimPrefix with CutPrefix by @carrychair in &lt;a href="https://github.com/cilium/ebpf/pull/1784"&gt;https://github.com/cilium/ebpf/pull/1784&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;kfunc: poison all weak kfunc calls if the kernel lacks BTF by @bogushevich in &lt;a href="https://github.com/cilium/ebpf/pull/1774"&gt;https://github.com/cilium/ebpf/pull/1774&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: fix TestLoadKernelModuleSpec by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1787"&gt;https://github.com/cilium/ebpf/pull/1787&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;collection: share kernel BTF when loading a collection by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1778"&gt;https://github.com/cilium/ebpf/pull/1778&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump the docs group in /docs with 2 updates by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1790"&gt;https://github.com/cilium/ebpf/pull/1790&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump golangci/golangci-lint-action from 7.0.0 to 8.0.0 by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1789"&gt;https://github.com/cilium/ebpf/pull/1789&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;kallsyms: optimize things a bit by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1785"&gt;https://github.com/cilium/ebpf/pull/1785&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ci: fetch efW binaries from completed workflows by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1793"&gt;https://github.com/cilium/ebpf/pull/1793&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Optimize &lt;code&gt;New{Map,Program}From{ID,FD}&lt;/code&gt; and &lt;code&gt;LoadPinned{Map,Program}&lt;/code&gt; by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1791"&gt;https://github.com/cilium/ebpf/pull/1791&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;cmd/bpf2go: Use BPF2GO_CFLAGS instead of BPF2GO_FLAGS by @jrife in &lt;a href="https://github.com/cilium/ebpf/pull/1796"&gt;https://github.com/cilium/ebpf/pull/1796&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;bpf2go: import package structs when all structs are typedefs by @RonFed in &lt;a href="https://github.com/cilium/ebpf/pull/1798"&gt;https://github.com/cilium/ebpf/pull/1798&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump requests from 2.32.3 to 2.32.4 in /docs by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1799"&gt;https://github.com/cilium/ebpf/pull/1799&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ci: upgrade LLVM to 20.1, drop LLVM 11 by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1800"&gt;https://github.com/cilium/ebpf/pull/1800&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;map: add MapSpec.Tags field for reading btf_decl_tag attributes set on maps by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1801"&gt;https://github.com/cilium/ebpf/pull/1801&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump urllib3 from 2.4.0 to 2.5.0 in /docs by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1805"&gt;https://github.com/cilium/ebpf/pull/1805&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;elf_reader: do not panic in &lt;code&gt;loadMaps&lt;/code&gt;if ELF file has no BTF by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1807"&gt;https://github.com/cilium/ebpf/pull/1807&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;program: perform CO-RE against all kmod by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1794"&gt;https://github.com/cilium/ebpf/pull/1794&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;asm: allow negative constants for builtin function calls by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1806"&gt;https://github.com/cilium/ebpf/pull/1806&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: introduce caching string table to speed up ext info loading by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1809"&gt;https://github.com/cilium/ebpf/pull/1809&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;linker: do not error out when there is nothing in &lt;code&gt;/sys/kernel/btf&lt;/code&gt; by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1813"&gt;https://github.com/cilium/ebpf/pull/1813&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@burak-ok made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1773"&gt;https://github.com/cilium/ebpf/pull/1773&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@haozhangami made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1764"&gt;https://github.com/cilium/ebpf/pull/1764&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@carrychair made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1784"&gt;https://github.com/cilium/ebpf/pull/1784&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@bogushevich made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1774"&gt;https://github.com/cilium/ebpf/pull/1774&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@jrife made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1796"&gt;https://github.com/cilium/ebpf/pull/1796&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.18.0...v0.19.0"&gt;https://github.com/cilium/ebpf/compare/v0.18.0...v0.19.0&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.18.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-18-0/</link><pubDate>Wed, 02 Apr 2025 13:05:31 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-18-0/</guid><description>&lt;h2 id="initial-windows-support"&gt;Initial Windows Support&lt;/h2&gt;
&lt;p&gt;This release adds support for eBPF on Windows through the &lt;a href="https://github.com/microsoft/ebpf-for-windows"&gt;eBPF for Windows&lt;/a&gt; runtime. Users must run a recent build of the &lt;code&gt;main&lt;/code&gt; branch of eBPF for Windows, version 0.20.0 is not supported.&lt;/p&gt;
&lt;p&gt;See &lt;a href="https://ebpf-go.dev/guides/windows-support/"&gt;the documentation&lt;/a&gt; and how to &lt;a href="https://ebpf-go.dev/contributing/windows/"&gt;contribute to the Windows port&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Supported:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Basic map and program operations&lt;/li&gt;
&lt;li&gt;Support for program loading, including native images (.sys files)&lt;/li&gt;
&lt;li&gt;Pin operations use Windows-specific global object table instead of bpffs&lt;/li&gt;
&lt;li&gt;Support for retrieving program/attach type from GUID&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not supported:&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.17.3</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-17-3/</link><pubDate>Wed, 12 Feb 2025 10:03:51 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-17-3/</guid><description>&lt;p&gt;Fixes for a data race in &lt;code&gt;btf.Spec.Copy&lt;/code&gt; (thanks @paulcacheux) and a buffer overflow when running 32-bit user space on a 64-bit kernel (thanks @kolyshkin).&lt;/p&gt;
&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;build(deps): bump the docs group in /docs with 2 updates by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1663"&gt;https://github.com/cilium/ebpf/pull/1663&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump golangci/golangci-lint-action from 6.1.1 to 6.2.0 by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1661"&gt;https://github.com/cilium/ebpf/pull/1661&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;docs: upgrade Python version to 3.13 by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1664"&gt;https://github.com/cilium/ebpf/pull/1664&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump actions/github-script from 6 to 7 by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1662"&gt;https://github.com/cilium/ebpf/pull/1662&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;internal/unix: add Errno wrapper for Windows by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1659"&gt;https://github.com/cilium/ebpf/pull/1659&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;internal/linux: use &lt;code&gt;unix.Auxv&lt;/code&gt; by @tklauser in &lt;a href="https://github.com/cilium/ebpf/pull/1665"&gt;https://github.com/cilium/ebpf/pull/1665&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: read all line info records at once in &lt;code&gt;parseLineInfoRecords&lt;/code&gt; by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1657"&gt;https://github.com/cilium/ebpf/pull/1657&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: fix data race in &lt;code&gt;(*mutableTypes).copy&lt;/code&gt; by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1673"&gt;https://github.com/cilium/ebpf/pull/1673&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix ksym buffer overflow on 32 bit platforms by @kolyshkin in &lt;a href="https://github.com/cilium/ebpf/pull/1660"&gt;https://github.com/cilium/ebpf/pull/1660&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.17.2...v0.17.3"&gt;https://github.com/cilium/ebpf/compare/v0.17.2...v0.17.3&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.17.2</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-17-2/</link><pubDate>Tue, 28 Jan 2025 15:15:28 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-17-2/</guid><description>&lt;p&gt;Another minor release to ship some bug fixes, notably for attaching bpf programs to symbols in kernel modules, and for reusing data sections across multiple Collections.&lt;/p&gt;
&lt;p&gt;All users are encouraged to upgrade!&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;link: support for kprobe session by @olsajiri in &lt;a href="https://github.com/cilium/ebpf/pull/1623"&gt;https://github.com/cilium/ebpf/pull/1623&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;bpf2go: optionally add suffix in output file names by @mejedi in &lt;a href="https://github.com/cilium/ebpf/pull/1624"&gt;https://github.com/cilium/ebpf/pull/1624&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bug-fixes"&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;prog: fix tautological AttachTo condition in ProgramSpec.kernelModule by @brycekahle in &lt;a href="https://github.com/cilium/ebpf/pull/1640"&gt;https://github.com/cilium/ebpf/pull/1640&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;map: check MapReplacements compatibility after applying BPF_F_MMAPABLE by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1655"&gt;https://github.com/cilium/ebpf/pull/1655&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="other-changes"&gt;Other Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;features: make HaveProgramHelper more accurate by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1641"&gt;https://github.com/cilium/ebpf/pull/1641&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CI: only allow importing x/sys/unix in internal/unix by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1648"&gt;https://github.com/cilium/ebpf/pull/1648&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pin: fix a bunch of fd leaks in tests by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1651"&gt;https://github.com/cilium/ebpf/pull/1651&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;linker: do not copy instructions when there is no reference in &lt;code&gt;flattenInstructions&lt;/code&gt; by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1647"&gt;https://github.com/cilium/ebpf/pull/1647&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;kallsyms: fix fd leak in AssignAddresses and AssignModules by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1656"&gt;https://github.com/cilium/ebpf/pull/1656&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;add windows CI by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1650"&gt;https://github.com/cilium/ebpf/pull/1650&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to all who contributed and reported issues!&lt;/p&gt;</description></item><item><title>cilium/ebpf Hotfix: don't retry endlessly on verifier errors on kernels &lt;6.4</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-17-1/</link><pubDate>Fri, 20 Dec 2024 01:37:44 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-17-1/</guid><description>&lt;p&gt;During the prior removal of &lt;code&gt;ProgramOptions.LogSize&lt;/code&gt; in v0.16, the tests weren&amp;rsquo;t updated to exercise the retry logic. With the last-minute addition of &lt;code&gt;ProgramOptions.LogSizeStart&lt;/code&gt;, 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.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;prog: fix shadowing log size variable in verifier log retry loop by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1635"&gt;https://github.com/cilium/ebpf/pull/1635&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://github.com/cilium/ebpf/releases/tag/v0.17.1"&gt;View source&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf Global Variables, Decl Tags, and package `pin`</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-17-0/</link><pubDate>Wed, 18 Dec 2024 15:48:54 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-17-0/</guid><description>&lt;p&gt;&lt;strong&gt;Note: the hotfix release 0.17.1 is out. Users are highly encouraged to upgrade.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As we close the door on the year 2024, we&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;Users are, as always, highly encouraged to upgrade, and we&amp;rsquo;re looking forward to hearing your feedback on the new Global Variables API. We&amp;rsquo;ve been putting this interface trough its paces internally, along with a few eager community members, and we&amp;rsquo;re ready to let the wider community make use of it.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.16.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-16-0/</link><pubDate>Wed, 24 Jul 2024 09:40:43 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-16-0/</guid><description>&lt;h3 id="program-automatic-verifier-log-sizing-and-programinforecursionmisses"&gt;program: automatic verifier log sizing and ProgramInfo.RecursionMisses()&lt;/h3&gt;
&lt;p&gt;For the longest time users had to specify &lt;code&gt;ProgramOptions.LogSize&lt;/code&gt; to get the
full 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.&lt;/p&gt;
&lt;p&gt;ProgramInfo now exposes how often a program didn&amp;rsquo;t execute due to recursion
limits via &lt;code&gt;RecursionMisses&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="perf-ringbuf-better-control-over-wakeups-flush"&gt;perf, ringbuf: better control over wakeups, Flush()&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.15.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-15-0/</link><pubDate>Mon, 22 Apr 2024 12:30:41 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-15-0/</guid><description>&lt;h3 id="btf-bpf_core_type_matches-is-now-supported"&gt;btf: &lt;code&gt;bpf_core_type_matches&lt;/code&gt; is now supported&lt;/h3&gt;
&lt;p&gt;Programs can now use &lt;code&gt;bpf_core_type_matches()&lt;/code&gt; for a stricter compatibility check. See &lt;a href="https://github.com/cilium/ebpf/pull/1366"&gt;https://github.com/cilium/ebpf/pull/1366&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="program-btf-improve-debuggability-when-co-re-or-kfunc-fixup-fails"&gt;program, btf: improve debuggability when CO-RE or kfunc fixup fails&lt;/h3&gt;
&lt;p&gt;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 &lt;a href="https://github.com/cilium/ebpf/pull/1402"&gt;https://github.com/cilium/ebpf/pull/1402&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="btf-synthesise-instruction-comments-into-line-info"&gt;btf: synthesise instruction comments into line info&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;asm.Comment&lt;/code&gt; in an instruction&amp;rsquo;s &lt;code&gt;Source()&lt;/code&gt; are now passed to the kernel in the form of BTF line info. See &lt;a href="https://github.com/cilium/ebpf/pull/1417"&gt;https://github.com/cilium/ebpf/pull/1417&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.14.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-14-0/</link><pubDate>Wed, 27 Mar 2024 10:54:18 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-14-0/</guid><description>&lt;h3 id="btf-support-for-co-re-relocations-against-kernel-modules"&gt;btf: support for CO-RE relocations against kernel modules&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s now possible to use CO-RE relocations against types defined in kernel modules. See &lt;a href="https://github.com/cilium/ebpf/pull/1300"&gt;https://github.com/cilium/ebpf/pull/1300&lt;/a&gt; by @brycekahle.&lt;/p&gt;
&lt;h3 id="link-netkit-support"&gt;link: netkit support&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;link&lt;/code&gt; package now allows attaching to netkit interfaces. See &lt;a href="https://github.com/cilium/ebpf/pull/1257"&gt;https://github.com/cilium/ebpf/pull/1257&lt;/a&gt; by @hemanthmalla&lt;/p&gt;
&lt;h3 id="link-support-for-iterating-links"&gt;link: support for iterating links&lt;/h3&gt;
&lt;p&gt;The new &lt;code&gt;link.Iterator&lt;/code&gt; type allows enumerating all BPF links active. See &lt;a href="https://github.com/cilium/ebpf/pull/1392"&gt;https://github.com/cilium/ebpf/pull/1392&lt;/a&gt; by @mpastyl.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h2 id="bugfixes"&gt;Bugfixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ringbuf&lt;/code&gt;: fixed a bug which can lead to corrupt data on arm64, see &lt;a href="https://github.com/cilium/ebpf/pull/1375"&gt;https://github.com/cilium/ebpf/pull/1375&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="breaking-changes"&gt;Breaking changes&lt;/h2&gt;
&lt;h3 id="githubcomciliumebpf"&gt;github.com/cilium/ebpf&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ProgramOptions&lt;/code&gt; is not comparable anymore due to &lt;code&gt;KernelModuleTypes&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="githubcomciliumebpfbtf"&gt;github.com/cilium/ebpf/btf&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CORERelocate&lt;/code&gt; had its singature change once again.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add CO-RE support for kernel modules by @brycekahle in &lt;a href="https://github.com/cilium/ebpf/pull/1300"&gt;https://github.com/cilium/ebpf/pull/1300&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create CONTRIBUTING.md by @sandipanpanda in &lt;a href="https://github.com/cilium/ebpf/pull/1361"&gt;https://github.com/cilium/ebpf/pull/1361&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1362"&gt;https://github.com/cilium/ebpf/pull/1362&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump mkdocs-material from 9.5.8 to 9.5.12 in /docs by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1363"&gt;https://github.com/cilium/ebpf/pull/1363&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;test: don&amp;rsquo;t rely on append() to copy base slice by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1367"&gt;https://github.com/cilium/ebpf/pull/1367&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add support for netkit device by @hemanthmalla in &lt;a href="https://github.com/cilium/ebpf/pull/1257"&gt;https://github.com/cilium/ebpf/pull/1257&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;docs: update project roles by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1374"&gt;https://github.com/cilium/ebpf/pull/1374&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;make rgo3 owner of features package by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1376"&gt;https://github.com/cilium/ebpf/pull/1376&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ringbuf: replace clamp with min by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1377"&gt;https://github.com/cilium/ebpf/pull/1377&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ringbuf: fix corrupt samples on arm64 by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1375"&gt;https://github.com/cilium/ebpf/pull/1375&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ringbuf: simplify ringReader by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1379"&gt;https://github.com/cilium/ebpf/pull/1379&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CI: increase vm memory to avoid oomkills by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1378"&gt;https://github.com/cilium/ebpf/pull/1378&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add support for weak kfuncs by @dylandreimerink in &lt;a href="https://github.com/cilium/ebpf/pull/1364"&gt;https://github.com/cilium/ebpf/pull/1364&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CODEOWNERS: assign code ownership to florianl, mmat11 and dylandreimerink by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1382"&gt;https://github.com/cilium/ebpf/pull/1382&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;elf_reader_test: Fix CI by disabling the &amp;ldquo;test_log_fixup&amp;rdquo; selftest by @dylandreimerink in &lt;a href="https://github.com/cilium/ebpf/pull/1385"&gt;https://github.com/cilium/ebpf/pull/1385&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: use recursion in coreAreTypesCompatible by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1383"&gt;https://github.com/cilium/ebpf/pull/1383&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link, internal: generate full linkinfo for union subtypes by @rgo3 in &lt;a href="https://github.com/cilium/ebpf/pull/1359"&gt;https://github.com/cilium/ebpf/pull/1359&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;gh: do not hide internal/sys/types.go in diffs by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1388"&gt;https://github.com/cilium/ebpf/pull/1388&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tests: clean up ClangEndian by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1389"&gt;https://github.com/cilium/ebpf/pull/1389&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;examples: avoid depending on internal packages by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1289"&gt;https://github.com/cilium/ebpf/pull/1289&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;doc: add DCO by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1396"&gt;https://github.com/cilium/ebpf/pull/1396&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix GitHub edit link on every page by @remram44 in &lt;a href="https://github.com/cilium/ebpf/pull/1393"&gt;https://github.com/cilium/ebpf/pull/1393&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;chore: fix some comments by @majorteach in &lt;a href="https://github.com/cilium/ebpf/pull/1391"&gt;https://github.com/cilium/ebpf/pull/1391&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;miscellaneous test fixes by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1386"&gt;https://github.com/cilium/ebpf/pull/1386&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link: add Iterator by @mpastyl in &lt;a href="https://github.com/cilium/ebpf/pull/1392"&gt;https://github.com/cilium/ebpf/pull/1392&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@sandipanpanda made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1361"&gt;https://github.com/cilium/ebpf/pull/1361&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@hemanthmalla made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1257"&gt;https://github.com/cilium/ebpf/pull/1257&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@remram44 made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1393"&gt;https://github.com/cilium/ebpf/pull/1393&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@majorteach made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1391"&gt;https://github.com/cilium/ebpf/pull/1391&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@mpastyl made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1392"&gt;https://github.com/cilium/ebpf/pull/1392&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.13.2...v0.14.0"&gt;https://github.com/cilium/ebpf/compare/v0.13.2...v0.14.0&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.13.2</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-13-2/</link><pubDate>Thu, 22 Feb 2024 18:25:26 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-13-2/</guid><description>&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;btf: fix race in mutableTypes.copy by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1358"&gt;https://github.com/cilium/ebpf/pull/1358&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.13.1...v0.13.2"&gt;https://github.com/cilium/ebpf/compare/v0.13.1...v0.13.2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/cilium/ebpf/releases/tag/v0.13.2"&gt;View source&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.13.1</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-13-1/</link><pubDate>Thu, 22 Feb 2024 12:16:04 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-13-1/</guid><description>&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;fix trusted &amp;ldquo;Tag breaking changes&amp;rdquo; workflow by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1347"&gt;https://github.com/cilium/ebpf/pull/1347&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fix: add testcast for PutInteger by @atgane in &lt;a href="https://github.com/cilium/ebpf/pull/1323"&gt;https://github.com/cilium/ebpf/pull/1323&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: Take instruction size into account when handling poison relocation by @dylandreimerink in &lt;a href="https://github.com/cilium/ebpf/pull/1351"&gt;https://github.com/cilium/ebpf/pull/1351&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: fix race due to concurrent read access by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1357"&gt;https://github.com/cilium/ebpf/pull/1357&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@atgane made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1323"&gt;https://github.com/cilium/ebpf/pull/1323&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.13.0...v0.13.1"&gt;https://github.com/cilium/ebpf/compare/v0.13.0...v0.13.1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/cilium/ebpf/releases/tag/v0.13.1"&gt;View source&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.13.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-13-0/</link><pubDate>Thu, 15 Feb 2024 16:44:55 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-13-0/</guid><description>&lt;h3 id="faster-btfloadkernelspec"&gt;Faster btf.LoadKernelSpec()&lt;/h3&gt;
&lt;p&gt;Obtaining the kernel&amp;rsquo;s BTF used to be very slow and is now very fast. See &lt;a href="https://github.com/cilium/ebpf/pull/1235"&gt;https://github.com/cilium/ebpf/pull/1235&lt;/a&gt; by @lmb.&lt;/p&gt;
&lt;h3 id="tcx"&gt;TCX&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s now possible to attach TC programs using the new bpf_link based TCX API. See &lt;a href="https://github.com/cilium/ebpf/pull/1163"&gt;https://github.com/cilium/ebpf/pull/1163&lt;/a&gt; by @lmb.&lt;/p&gt;
&lt;h3 id="uprobemulti-and-uretprobemulti"&gt;UprobeMulti and UretprobeMulti&lt;/h3&gt;
&lt;p&gt;These are the user-space equivalents to KprobeMulti and Kretprobe multi and allow
attaching to a large number of symbols quickly. See &lt;a href="https://github.com/cilium/ebpf/pull/1269"&gt;https://github.com/cilium/ebpf/pull/1269&lt;/a&gt; by @olsajiri.&lt;/p&gt;
&lt;h3 id="netfilter-link"&gt;Netfilter link&lt;/h3&gt;
&lt;p&gt;There is now support to attach Netfilter programs using bpf_links. See &lt;a href="https://github.com/cilium/ebpf/pull/1313"&gt;https://github.com/cilium/ebpf/pull/1313&lt;/a&gt; by @mehrdadrad.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.12.3</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-12-3/</link><pubDate>Thu, 09 Nov 2023 15:57:06 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-12-3/</guid><description>&lt;p&gt;This is a small release to fix an incompatibility with &lt;a href="mailto:golang.org/x/sys/unix@v0.14.0"&gt;golang.org/x/sys/unix@v0.14.0&lt;/a&gt;. There is a variety of performance improvements as well.&lt;/p&gt;
&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add Remaining and Size to perf/ring Record by @brycekahle in &lt;a href="https://github.com/cilium/ebpf/pull/1167"&gt;https://github.com/cilium/ebpf/pull/1167&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: correct printing size of Int type in bytes by @Asphaltt in &lt;a href="https://github.com/cilium/ebpf/pull/1182"&gt;https://github.com/cilium/ebpf/pull/1182&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;collection: Add Assign method by @danobi in &lt;a href="https://github.com/cilium/ebpf/pull/1114"&gt;https://github.com/cilium/ebpf/pull/1114&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;add 6.6 to CI by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1187"&gt;https://github.com/cilium/ebpf/pull/1187&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;docs: add overview for package features by @rgo3 in &lt;a href="https://github.com/cilium/ebpf/pull/1164"&gt;https://github.com/cilium/ebpf/pull/1164&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;elf: skip local_kptr_stash libbpf test by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1190"&gt;https://github.com/cilium/ebpf/pull/1190&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: support both elf and raw BTF in loadKernelSpec by @wxx213 in &lt;a href="https://github.com/cilium/ebpf/pull/1177"&gt;https://github.com/cilium/ebpf/pull/1177&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;elf: skip local_kptr_stash_fail test by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1198"&gt;https://github.com/cilium/ebpf/pull/1198&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf, sys: update vmlinux.btf.gz to 6.6 by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1200"&gt;https://github.com/cilium/ebpf/pull/1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: optimize stringTable to speed up vmlinux parsing by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1203"&gt;https://github.com/cilium/ebpf/pull/1203&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;program: fix LINUX_HAS_SYSCALL_WRAPPER use with bpf_tracing.h by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1202"&gt;https://github.com/cilium/ebpf/pull/1202&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: Optimize string table for globally increasing offsets by @dylandreimerink in &lt;a href="https://github.com/cilium/ebpf/pull/1210"&gt;https://github.com/cilium/ebpf/pull/1210&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;map: include full property diff in ErrMapIncompatible error string by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1212"&gt;https://github.com/cilium/ebpf/pull/1212&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add new ISAv4 instructions by @dylandreimerink in &lt;a href="https://github.com/cilium/ebpf/pull/1193"&gt;https://github.com/cilium/ebpf/pull/1193&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;asm: cleanups for v4 ISA by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1214"&gt;https://github.com/cilium/ebpf/pull/1214&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump mkdocs-material from 9.4.4 to 9.4.7 in /docs by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1197"&gt;https://github.com/cilium/ebpf/pull/1197&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump pymdown-extensions from 10.3 to 10.3.1 in /docs by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1196"&gt;https://github.com/cilium/ebpf/pull/1196&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump mkdocs-macros-plugin from 1.0.4 to 1.0.5 in /docs by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1195"&gt;https://github.com/cilium/ebpf/pull/1195&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;build(deps): bump mkdocs-git-revision-date-localized-plugin from 1.2.0 to 1.2.1 in /docs by @dependabot in &lt;a href="https://github.com/cilium/ebpf/pull/1194"&gt;https://github.com/cilium/ebpf/pull/1194&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;small speedups during elf loading by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/1207"&gt;https://github.com/cilium/ebpf/pull/1207&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;go.mod: update golang.org/x/sys to latest unreleased version by @tklauser in &lt;a href="https://github.com/cilium/ebpf/pull/1215"&gt;https://github.com/cilium/ebpf/pull/1215&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: Optimizing BTF parsing by merging &lt;code&gt;readTypes&lt;/code&gt; and &lt;code&gt;inflateRawTypes&lt;/code&gt; by @dylandreimerink in &lt;a href="https://github.com/cilium/ebpf/pull/1211"&gt;https://github.com/cilium/ebpf/pull/1211&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@wxx213 made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1177"&gt;https://github.com/cilium/ebpf/pull/1177&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.12.2...v0.12.3"&gt;https://github.com/cilium/ebpf/compare/v0.12.2...v0.12.3&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.12.2</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-12-2/</link><pubDate>Fri, 20 Oct 2023 14:56:09 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-12-2/</guid><description>&lt;p&gt;This release fixes unmarshaling from a map operation into a &lt;code&gt;[]byte&lt;/code&gt;, see #1180. This is a regression in v0.12.0.&lt;/p&gt;
&lt;p&gt;We now also properly return an error when the value to unmarshal into is too small, see #1181. This behaviour has existed for a long time.&lt;/p&gt;
&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;btf: stop accessing Spec.types from tests by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1176"&gt;https://github.com/cilium/ebpf/pull/1176&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PinType: change from int to uint32 by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/1179"&gt;https://github.com/cilium/ebpf/pull/1179&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;example: fix key type of xdp example by @BillyChen1 in &lt;a href="https://github.com/cilium/ebpf/pull/1178"&gt;https://github.com/cilium/ebpf/pull/1178&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sysenc: special case unmarshaling into []byte by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1180"&gt;https://github.com/cilium/ebpf/pull/1180&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sysenc: refuse to unmarshal into undersized dst by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/1181"&gt;https://github.com/cilium/ebpf/pull/1181&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@BillyChen1 made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/1178"&gt;https://github.com/cilium/ebpf/pull/1178&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.12.1...v0.12.2"&gt;https://github.com/cilium/ebpf/compare/v0.12.1...v0.12.2&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.12.1</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-12-1/</link><pubDate>Thu, 19 Oct 2023 13:39:50 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-12-1/</guid><description>&lt;h1 id="fixes"&gt;Fixes&lt;/h1&gt;
&lt;h2 id="fix-programinfoinstructions-failing-to-decode-extinfos"&gt;Fix ProgramInfo.Instructions failing to decode ExtInfos&lt;/h2&gt;
&lt;p&gt;A recent change to ProgramInfo.Instructions failed to take a difference between kernel and ELF wire format into account. This meant that retrieving the instructions of a program from the kernel failed with a error.&lt;/p&gt;
&lt;p&gt;See #1168, fixed by #1169.&lt;/p&gt;
&lt;h2 id="fix-reading-auxv-on-32-bit-platforms"&gt;Fix reading auxv on 32-bit platforms&lt;/h2&gt;
&lt;p&gt;The code to determine the kernel version from vdso has been broken on 32-bit platforms. Note that 32-bit arches are not officially supported to the fix is best effort.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.12.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-12-0/</link><pubDate>Wed, 11 Oct 2023 13:26:04 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-12-0/</guid><description>&lt;p&gt;This release requires at least Go 1.20. It is mainly a bugfix release without any expected breaking changes. Map operations have also been made faster on the Go side.&lt;/p&gt;
&lt;h1 id="fixes"&gt;Fixes&lt;/h1&gt;
&lt;h2 id="correctly-freeze-rodata-maps"&gt;Correctly freeze &lt;code&gt;.rodata&lt;/code&gt; maps&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.rodata&lt;/code&gt; maps were frozen after programs referring to them were loaded, preventing the verifier from eliminating dead code based on the contents of the &lt;code&gt;.rodata&lt;/code&gt; maps. Upgrade if you&amp;rsquo;re running into odd verifier errors that don&amp;rsquo;t occur on libbpf.&lt;/p&gt;</description></item><item><title>cilium/ebpf Support for __ksym and __kfunc</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-11-0/</link><pubDate>Thu, 06 Jul 2023 12:15:27 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-11-0/</guid><description>&lt;h1 id="breaking-changes"&gt;Breaking changes&lt;/h1&gt;
&lt;p&gt;This release requires at least Go 1.19.&lt;/p&gt;
&lt;p&gt;github.com/cilium/ebpf/btf:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Handle.Spec()&lt;/code&gt; now takes a &lt;code&gt;base *Spec&lt;/code&gt; argument.
&lt;code&gt;nil&lt;/code&gt; is accepted if the Handle is for vmlinux. If Handle is for a (split BTF) kernel module, pass the result of &lt;code&gt;LoadKernelSpec()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NewHandle()&lt;/code&gt; now takes a &lt;code&gt;*Builder&lt;/code&gt; instead of a &lt;code&gt;*Spec&lt;/code&gt;.
Loading BTF into the kernel now goes via a new &lt;code&gt;Builder&lt;/code&gt; type. See the &amp;lsquo;Additions&amp;rsquo; section below.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;github.com/cilium/ebpf/link:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KprobeMultiOptions.Addresses: changed from []uint64 to []uintptr
The old API didn&amp;rsquo;t take 32-bit architectures into account.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="fixes"&gt;Fixes&lt;/h1&gt;
&lt;h2 id="work-around-the-kernel-rejecting-some-datasec"&gt;Work around the kernel rejecting some Datasec&lt;/h2&gt;
&lt;p&gt;The kernel erroneously rejects Datasec where a Typedef, Volatile, Const, Restrict or typeTag follows a Pointer, Struct, Union or Array. There is now a workaround in place, see &lt;a href="https://github.com/cilium/ebpf/pull/954"&gt;https://github.com/cilium/ebpf/pull/954&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.10.0 - BTF Marshaling</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-10-0/</link><pubDate>Mon, 16 Jan 2023 13:49:37 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-10-0/</guid><description>&lt;p&gt;We&amp;rsquo;re pleased to announce the first ebpf-go release of 2023! There is one breaking change, so please read through the release notes carefully. All users are encouraged to upgrade.&lt;/p&gt;
&lt;h2 id="breaking-changes"&gt;Breaking Changes&lt;/h2&gt;
&lt;h3 id="support-for-btf-marshaling"&gt;Support for BTF marshaling&lt;/h3&gt;
&lt;p&gt;So far, the library would only load BTF into the kernel that was originally generated by &lt;code&gt;clang&lt;/code&gt; or &lt;code&gt;pahole&lt;/code&gt;. As of this release, the library will instead marshal &lt;code&gt;btf.Type&lt;/code&gt;s directly into BTF blobs. For example, it&amp;rsquo;s now possible to create an &lt;code&gt;ebpf.Map&lt;/code&gt; from Go code by populating the &lt;code&gt;MapSpec.Key&lt;/code&gt; and &lt;code&gt;.Value&lt;/code&gt; fields with the map&amp;rsquo;s k/v types to make &lt;code&gt;bpftool map dump&lt;/code&gt; nicely pretty-print its contents for you.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.9.3 - Prevent livelocks loading BPF programs while profiling</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-9-3/</link><pubDate>Fri, 30 Sep 2022 07:51:31 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-9-3/</guid><description>&lt;p&gt;This is a bugfix release for an endless loop that could occur when running a pprof session while loading a BPF program.&lt;/p&gt;
&lt;p&gt;@danobi published an article with a deep-dive into the problem: &lt;a href="https://dxuuu.xyz/bpf-go-pprof.html"&gt;https://dxuuu.xyz/bpf-go-pprof.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If a thread receives a signal while blocked in BPF_PROG_LOAD, the verifier can cooperatively interrupt itself by checking pending signals for the thread and return -EAGAIN from the syscall to request userspace to retry.&lt;/p&gt;
&lt;p&gt;During a Go pprof session, threads are routinely sent a SIGPROF to make them dump profiling information, which can lead to a runaway reaction if the program takes longer to verify than the interrupt frequency. To prevent this, the SIGPROF signal is now masked during BPF_PROG_LOAD.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.9.2</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-9-2/</link><pubDate>Tue, 20 Sep 2022 08:39:01 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-9-2/</guid><description>&lt;p&gt;This release contains an important bugfix for users of &lt;code&gt;Program.Test()&lt;/code&gt; and &lt;code&gt;.Benchmark()&lt;/code&gt;. A kernel change was made that disallows empty packet buffers, with knock-on effects to &lt;code&gt;BPF_PROG_RUN&lt;/code&gt; and, as a result, ebpf-go&amp;rsquo;s detection routine for said feature. Users are strongly encouraged to upgrade. See #788 for more details.&lt;/p&gt;
&lt;p&gt;The new &lt;code&gt;features.HaveMapFlag()&lt;/code&gt; API was merged in this release, congrats @paulcacheux!&lt;/p&gt;
&lt;p&gt;Likewise, the &lt;code&gt;link.K(ret)probeMulti()&lt;/code&gt; API was added by @mmat11, bringing blazingly-fast bulk kprobe attachments to kernels 5.18 and newer.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.9.1</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-9-1/</link><pubDate>Tue, 19 Jul 2022 10:27:06 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-9-1/</guid><description>&lt;p&gt;This is mainly a bugfix release, but a few long-deprecated pieces of API were finally removed after cutting v0.9.0.&lt;/p&gt;
&lt;p&gt;These should be trivial to fix up, since they were simply moved or replaced by similar interfaces.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;h2 id="breaking-changes"&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Deprecations:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ebpf.ErrNotExist&lt;/code&gt; was removed, as it was an alias to &lt;code&gt;os.ErrNotExist&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Map.ID()&lt;/code&gt; in favor of &lt;code&gt;Map.Info().ID()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Program.ID()&lt;/code&gt; in favor of &lt;code&gt;Program.Info().ID()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Program.Attach()&lt;/code&gt; and &lt;code&gt;.Detach()&lt;/code&gt; in favor of &lt;code&gt;link.RawAttachProgram()&lt;/code&gt; and &lt;code&gt;link.RawDetachProgram()&lt;/code&gt; respectively&lt;/li&gt;
&lt;li&gt;&lt;code&gt;link.LoadPinned{Cgroup,Iter,RawLink,NetNs,Freplace}&lt;/code&gt; in favor of a single &lt;code&gt;link.LoadPinnedLink()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;link.RawLinkInfo&lt;/code&gt; was removed, as it was an alias to &lt;code&gt;link.Info&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UprobeOptions.Offset&lt;/code&gt; is now a relative field, with the new &lt;code&gt;.Address&lt;/code&gt; being an absolute offset.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="whats-changed"&gt;What&amp;rsquo;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Remove API deprecated in v0.8.0 by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/684"&gt;https://github.com/cilium/ebpf/pull/684&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;program: Add TestWithOptions() API by @danobi in &lt;a href="https://github.com/cilium/ebpf/pull/647"&gt;https://github.com/cilium/ebpf/pull/647&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;prog: Avoid allocating for ctx if ctx not provided by @danobi in &lt;a href="https://github.com/cilium/ebpf/pull/687"&gt;https://github.com/cilium/ebpf/pull/687&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: add Array.Index by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/689"&gt;https://github.com/cilium/ebpf/pull/689&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: add btfInt by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/690"&gt;https://github.com/cilium/ebpf/pull/690&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;RelativeOffset&lt;/code&gt; field to &lt;code&gt;UprobeOptions&lt;/code&gt; struct by @mertyildiran in &lt;a href="https://github.com/cilium/ebpf/pull/682"&gt;https://github.com/cilium/ebpf/pull/682&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;program: remove references from ProgramSpec by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/679"&gt;https://github.com/cilium/ebpf/pull/679&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;map: suggest incorrect MaxEntries on EINVAL by @markpash in &lt;a href="https://github.com/cilium/ebpf/pull/697"&gt;https://github.com/cilium/ebpf/pull/697&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;internal/sys: regenerate types by @florianl in &lt;a href="https://github.com/cilium/ebpf/pull/700"&gt;https://github.com/cilium/ebpf/pull/700&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link: close tracefs event if perf event cannot be opened by @nashuiliang in &lt;a href="https://github.com/cilium/ebpf/pull/699"&gt;https://github.com/cilium/ebpf/pull/699&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Revert &amp;ldquo;.semaphore - workaround to update ca-certificates before apt-get update&amp;rdquo; by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/703"&gt;https://github.com/cilium/ebpf/pull/703&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;run-tests: fix shebang to find bash more reliably by @markpash in &lt;a href="https://github.com/cilium/ebpf/pull/702"&gt;https://github.com/cilium/ebpf/pull/702&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;examples: add map in map example by @markpash in &lt;a href="https://github.com/cilium/ebpf/pull/696"&gt;https://github.com/cilium/ebpf/pull/696&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: fix NewHandleFromID and add test by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/704"&gt;https://github.com/cilium/ebpf/pull/704&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sycall should be syscall. by @shepf in &lt;a href="https://github.com/cilium/ebpf/pull/707"&gt;https://github.com/cilium/ebpf/pull/707&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CI: load bpf_testmod in VM by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/709"&gt;https://github.com/cilium/ebpf/pull/709&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;internal: make VerifierError more succinct by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/688"&gt;https://github.com/cilium/ebpf/pull/688&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;examples: add example for XDP by @wedaly in &lt;a href="https://github.com/cilium/ebpf/pull/706"&gt;https://github.com/cilium/ebpf/pull/706&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: simplify loadRawSpec by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/708"&gt;https://github.com/cilium/ebpf/pull/708&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remove 4.4 from CI by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/710"&gt;https://github.com/cilium/ebpf/pull/710&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;map: Do not chec maxEntries for PerfEventArray map by @olsajiri in &lt;a href="https://github.com/cilium/ebpf/pull/714"&gt;https://github.com/cilium/ebpf/pull/714&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link/kprobe: skip offset test on kernel version &amp;gt; 5.15 by @mmat11 in &lt;a href="https://github.com/cilium/ebpf/pull/719"&gt;https://github.com/cilium/ebpf/pull/719&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Avoid leaking fds in test suite and &lt;code&gt;NewMapWithOptions()&lt;/code&gt; by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/725"&gt;https://github.com/cilium/ebpf/pull/725&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: Add support for loading split BTF by @brb in &lt;a href="https://github.com/cilium/ebpf/pull/691"&gt;https://github.com/cilium/ebpf/pull/691&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;prog: Allow empty data for prog.Test and prog.Run by @danobi in &lt;a href="https://github.com/cilium/ebpf/pull/685"&gt;https://github.com/cilium/ebpf/pull/685&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;internal: avoid sign extension of Statfs_t.Type on 32 bit arches by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/727"&gt;https://github.com/cilium/ebpf/pull/727&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link: unify KprobeOptions.Offset and UprobeOptions.Offset by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/694"&gt;https://github.com/cilium/ebpf/pull/694&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;collection: close all unassigned resources before returning from LoadAndAssign by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/724"&gt;https://github.com/cilium/ebpf/pull/724&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: add Enum.Size by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/735"&gt;https://github.com/cilium/ebpf/pull/735&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: use ci-kernels to source kernel BTF by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/731"&gt;https://github.com/cilium/ebpf/pull/731&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;asm: update BPF built-in functions by @rgo3 in &lt;a href="https://github.com/cilium/ebpf/pull/734"&gt;https://github.com/cilium/ebpf/pull/734&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;program: add getter for btf.Handle by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/730"&gt;https://github.com/cilium/ebpf/pull/730&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: fix NewHandleFromID for kernel modules by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/729"&gt;https://github.com/cilium/ebpf/pull/729&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;internal: include previous line on BPF context access error by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/733"&gt;https://github.com/cilium/ebpf/pull/733&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@danobi made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/647"&gt;https://github.com/cilium/ebpf/pull/647&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@mertyildiran made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/682"&gt;https://github.com/cilium/ebpf/pull/682&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@nashuiliang made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/699"&gt;https://github.com/cilium/ebpf/pull/699&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@shepf made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/707"&gt;https://github.com/cilium/ebpf/pull/707&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@wedaly made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/706"&gt;https://github.com/cilium/ebpf/pull/706&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@olsajiri made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/714"&gt;https://github.com/cilium/ebpf/pull/714&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.9.0...v0.9.1"&gt;https://github.com/cilium/ebpf/compare/v0.9.0...v0.9.1&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf Releasing the BTF package!</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-9-0/</link><pubDate>Wed, 25 May 2022 16:02:10 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-9-0/</guid><description>&lt;p&gt;This release makes package &lt;code&gt;btf&lt;/code&gt; public, allowing type information embedded in eBPF ELF objects and &lt;code&gt;vmlinux&lt;/code&gt; to be read programmatically from Go. This enables use cases like searching and inspecting the kernel&amp;rsquo;s types and function signatures at runtime, or ensuring alignment between structures defined in Go and C. Package &lt;code&gt;btf&lt;/code&gt; stands on its own and does not require adopting other subpackages, potentially making it useful beyond the domain of eBPF. Additionally, parsing BTF was made significantly faster and now consumes less memory.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.8.1</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-8-1/</link><pubDate>Mon, 14 Feb 2022 10:25:30 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-8-1/</guid><description>&lt;h2 id="fixes"&gt;Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;elf_reader: Fix non-determinism in determining prog type by @joamaki in &lt;a href="https://github.com/cilium/ebpf/pull/549"&gt;https://github.com/cilium/ebpf/pull/549&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Look for Linux note in all elf note sections instead of just the first one by @paulcacheux in &lt;a href="https://github.com/cilium/ebpf/pull/560"&gt;https://github.com/cilium/ebpf/pull/560&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: remove symbol value bounds check to support vmlinux ELFs by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/555"&gt;https://github.com/cilium/ebpf/pull/555&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@joamaki made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/549"&gt;https://github.com/cilium/ebpf/pull/549&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@paulcacheux made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/560"&gt;https://github.com/cilium/ebpf/pull/560&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href="https://github.com/cilium/ebpf/compare/v0.8.0...v0.8.1"&gt;https://github.com/cilium/ebpf/compare/v0.8.0...v0.8.1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/cilium/ebpf/releases/tag/v0.8.1"&gt;View source&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.8.0</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-8-0/</link><pubDate>Fri, 21 Jan 2022 15:32:46 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-8-0/</guid><description>&lt;p&gt;We&amp;rsquo;re happy to announce our first release of 2022!&lt;/p&gt;
&lt;h2 id="breaking-changes"&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Deprecations
&lt;ul&gt;
&lt;li&gt;Deprecate &lt;code&gt;StructOpts&lt;/code&gt; and &lt;code&gt;perf.IsClosed()&lt;/code&gt; by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/547"&gt;https://github.com/cilium/ebpf/pull/547&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;cmd/bpf2go: strip DWARF info by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/481"&gt;https://github.com/cilium/ebpf/pull/481&lt;/a&gt;
DWARF info is now stripped from compiled BPF objects by default when using bpf2go, resulting in significant savings in object size. It can be re-enabled if desired.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;elf_reader: emit &lt;code&gt;UnspecifiedProgram&lt;/code&gt;s into &lt;code&gt;CollectionSpec&lt;/code&gt; by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/529"&gt;https://github.com/cilium/ebpf/pull/529&lt;/a&gt;
Previously, &lt;code&gt;ProgramSpec&lt;/code&gt;s were not emitted to &lt;code&gt;CollectionSpec.Programs&lt;/code&gt; if their ELF section names were not recognized.
This limitation has been lifted: programs that are explicitly assigned to an ELF section will now always appear in the CollectionSpec, though they will all be of type &lt;code&gt;UnspecifiedProgram&lt;/code&gt;. The &lt;code&gt;SectionName&lt;/code&gt; field was added to help the user determine program types manually.&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.7.0: Honeygopher Edition</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-7-0/</link><pubDate>Mon, 11 Oct 2021 12:30:56 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-7-0/</guid><description>&lt;p&gt;The &lt;code&gt;cilium/ebpf&lt;/code&gt; project now has a mascot, the Honeygopher! Thank you, Vadim Shchekoldin!&lt;/p&gt;
&lt;h2 id="new-packages"&gt;New Packages&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Package &lt;a href="https://pkg.go.dev/github.com/cilium/ebpf/ringbuf"&gt;ringbuf&lt;/a&gt; allows reading from a &lt;code&gt;BPF_MAP_TYPE_RINGBUF&lt;/code&gt; map.&lt;/li&gt;
&lt;li&gt;Package &lt;a href="https://pkg.go.dev/github.com/cilium/ebpf/features"&gt;features&lt;/a&gt; implements the equivalent of &lt;code&gt;bpftool feature probe&lt;/code&gt; for discovering BPF-related kernel features using native Go. Note that support for probing availability of BPF helpers is pending.&lt;/li&gt;
&lt;li&gt;Package &lt;a href="https://pkg.go.dev/github.com/cilium/ebpf/rlimit"&gt;rlimit&lt;/a&gt; provides a convenient API to lift the &lt;code&gt;RLIMIT_MEMLOCK&lt;/code&gt; constraint on kernels before 5.11.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="breaking-changes"&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Deprecations
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;StructOpts&lt;/code&gt; has been changed to alias the new &lt;code&gt;StructOpsMap&lt;/code&gt; and will be removed in 0.8.0
by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/381"&gt;https://github.com/cilium/ebpf/pull/381&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;perf.IsClosed()&lt;/code&gt; has been deprecated and will be removed in 0.8.0
by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/397"&gt;https://github.com/cilium/ebpf/pull/397&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Collection.Assign()&lt;/code&gt; has been removed after a sunset period
by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/371"&gt;https://github.com/cilium/ebpf/pull/371&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;elf: support cgroup getsockname/getpeername prog by @zf1575192187 in &lt;a href="https://github.com/cilium/ebpf/pull/350"&gt;https://github.com/cilium/ebpf/pull/350&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MapType probe API by @rgo3 in &lt;a href="https://github.com/cilium/ebpf/pull/321"&gt;https://github.com/cilium/ebpf/pull/321&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link/uprobe: support filtering by pid by @mmat11 in &lt;a href="https://github.com/cilium/ebpf/pull/342"&gt;https://github.com/cilium/ebpf/pull/342&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add support for freplace programs by @zeffron in &lt;a href="https://github.com/cilium/ebpf/pull/288"&gt;https://github.com/cilium/ebpf/pull/288&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Export &lt;code&gt;CollectionSpec.ByteOrder&lt;/code&gt; by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/361"&gt;https://github.com/cilium/ebpf/pull/361&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support ELF map definitions larger than &lt;code&gt;bpf_map_def&lt;/code&gt; by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/362"&gt;https://github.com/cilium/ebpf/pull/362&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Auto-populate tail-call and map-in-map maps from ELF/BTF by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/363"&gt;https://github.com/cilium/ebpf/pull/363&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;features: add HaveProgType API by @rgo3 in &lt;a href="https://github.com/cilium/ebpf/pull/355"&gt;https://github.com/cilium/ebpf/pull/355&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feature: add call fixups for bpf_probe_read_kernel, etc by @xh4n3 in &lt;a href="https://github.com/cilium/ebpf/pull/367"&gt;https://github.com/cilium/ebpf/pull/367&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;cmd/bpf2go: use Go 1.16 embed to include BPF elfs by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/327"&gt;https://github.com/cilium/ebpf/pull/327&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;bpf2go: add support for bpf_tracing.h by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/369"&gt;https://github.com/cilium/ebpf/pull/369&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;features: support get map ids from program. by @arikachen in &lt;a href="https://github.com/cilium/ebpf/pull/391"&gt;https://github.com/cilium/ebpf/pull/391&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Recognize sk_reuseport programs by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/393"&gt;https://github.com/cilium/ebpf/pull/393&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;btf: handle float relocation for CO-RE by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/403"&gt;https://github.com/cilium/ebpf/pull/403&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Utility function to remove memlock rlimit by @folbricht in &lt;a href="https://github.com/cilium/ebpf/pull/392"&gt;https://github.com/cilium/ebpf/pull/392&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;BPF ring buffer by @mythi in &lt;a href="https://github.com/cilium/ebpf/pull/318"&gt;https://github.com/cilium/ebpf/pull/318&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bug-fixes"&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;link/uprobe: handle ENOTSUPP from the kernel&amp;rsquo;s prepare_uprobe() by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/351"&gt;https://github.com/cilium/ebpf/pull/351&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mark PerCPUCGroupStorage as per-cpu by @yadutaf in &lt;a href="https://github.com/cilium/ebpf/pull/341"&gt;https://github.com/cilium/ebpf/pull/341&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link/kprobe: don&amp;rsquo;t redeclare a new variable sp by @guodongzz in &lt;a href="https://github.com/cilium/ebpf/pull/365"&gt;https://github.com/cilium/ebpf/pull/365&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix invalid usage of reflect.SliceHeader by @cuonglm in &lt;a href="https://github.com/cilium/ebpf/pull/376"&gt;https://github.com/cilium/ebpf/pull/376&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;program: don&amp;rsquo;t retrieve map ids by default by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/395"&gt;https://github.com/cilium/ebpf/pull/395&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;link/uprobe: fix offsets for statically linked binaries by @mmat11 in &lt;a href="https://github.com/cilium/ebpf/pull/385"&gt;https://github.com/cilium/ebpf/pull/385&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add sync.Pool to reduce allocations for the default case in unmarshalBytes() by @rockdaboot in &lt;a href="https://github.com/cilium/ebpf/pull/420"&gt;https://github.com/cilium/ebpf/pull/420&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix btf.FindType to avoid copy by @pippolo84 in &lt;a href="https://github.com/cilium/ebpf/pull/424"&gt;https://github.com/cilium/ebpf/pull/424&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix missing close of fds from BPF{ProgLoad,MapCreate} by @pippolo84 in &lt;a href="https://github.com/cilium/ebpf/pull/428"&gt;https://github.com/cilium/ebpf/pull/428&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Directly handle int32 and int64 types in unmarshalBytes() by @rockdaboot in &lt;a href="https://github.com/cilium/ebpf/pull/427"&gt;https://github.com/cilium/ebpf/pull/427&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add kprobepin example showing how to re-use a pinned map in a BPF prog by @ungureanuvladvictor in &lt;a href="https://github.com/cilium/ebpf/pull/364"&gt;https://github.com/cilium/ebpf/pull/364&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;examples: adapt uretprobe example to the new library version by @mmat11 in &lt;a href="https://github.com/cilium/ebpf/pull/389"&gt;https://github.com/cilium/ebpf/pull/389&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CI: build examples by @lmb in &lt;a href="https://github.com/cilium/ebpf/pull/390"&gt;https://github.com/cilium/ebpf/pull/390&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add a script to update vendored libbpf headers for examples by @markpash in &lt;a href="https://github.com/cilium/ebpf/pull/394"&gt;https://github.com/cilium/ebpf/pull/394&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add an example for the RINGBUF map type by @pippolo84 in &lt;a href="https://github.com/cilium/ebpf/pull/412"&gt;https://github.com/cilium/ebpf/pull/412&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add a tracepoint example and a percpu example by @hao-lee in &lt;a href="https://github.com/cilium/ebpf/pull/402"&gt;https://github.com/cilium/ebpf/pull/402&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;examples - convert to new rlimit package for memlock removal by @ti-mo in &lt;a href="https://github.com/cilium/ebpf/pull/441"&gt;https://github.com/cilium/ebpf/pull/441&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-contributors"&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@zf1575192187 made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/350"&gt;https://github.com/cilium/ebpf/pull/350&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@sharjeelaziz made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/349"&gt;https://github.com/cilium/ebpf/pull/349&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@zeffron made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/352"&gt;https://github.com/cilium/ebpf/pull/352&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@yadutaf made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/341"&gt;https://github.com/cilium/ebpf/pull/341&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@guodongzz made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/365"&gt;https://github.com/cilium/ebpf/pull/365&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@xh4n3 made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/367"&gt;https://github.com/cilium/ebpf/pull/367&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@cuonglm made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/376"&gt;https://github.com/cilium/ebpf/pull/376&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@mabis made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/378"&gt;https://github.com/cilium/ebpf/pull/378&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@arikachen made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/391"&gt;https://github.com/cilium/ebpf/pull/391&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@markpash made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/394"&gt;https://github.com/cilium/ebpf/pull/394&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@pippolo84 made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/401"&gt;https://github.com/cilium/ebpf/pull/401&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@folbricht made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/392"&gt;https://github.com/cilium/ebpf/pull/392&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@hao-lee made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/414"&gt;https://github.com/cilium/ebpf/pull/414&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@rockdaboot made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/420"&gt;https://github.com/cilium/ebpf/pull/420&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@mehrdadrad made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/439"&gt;https://github.com/cilium/ebpf/pull/439&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@lizrice made their first contribution in &lt;a href="https://github.com/cilium/ebpf/pull/442"&gt;https://github.com/cilium/ebpf/pull/442&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This release saw a record amount of new contributors! We&amp;rsquo;d like to wish everyone a warm welcome and thank you all for your support!&lt;/p&gt;</description></item><item><title>cilium/ebpf Wrap SYS_BPF errors, user-provided uprobe offsets, support new map, program and flag types</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-6-2/</link><pubDate>Mon, 12 Jul 2021 13:01:29 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-6-2/</guid><description>&lt;h1 id="breaking-changes"&gt;Breaking changes&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;None&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="features"&gt;Features&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Return friendly error when creating maps with &lt;code&gt;BPF_F_MMAPABLE&lt;/code&gt; or &lt;code&gt;BPF_F_INNER_MAP&lt;/code&gt; and the kernel doesn&amp;rsquo;t support them.&lt;/li&gt;
&lt;li&gt;Add support for StructOps, RingBuf, InodeStorage and TaskStorage map types.&lt;/li&gt;
&lt;li&gt;Support many new BPF program types added over the course of 2019/2020 in the assembler.&lt;/li&gt;
&lt;li&gt;Detect &lt;code&gt;fentry&lt;/code&gt;, &lt;code&gt;fmod_ret&lt;/code&gt; and &lt;code&gt;fexit&lt;/code&gt; programs by their ELF section names.&lt;/li&gt;
&lt;li&gt;link: support user-provided offsets for uprobe locations by specifying &lt;code&gt;UprobeOptions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;link: support creating bpf_map_elem iterators&lt;/li&gt;
&lt;li&gt;Wrap and propagate all errors generated by SYS_BPF, allowing the caller to retrieve&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="bug-fixes"&gt;Bug Fixes&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Fix flaky TestMapPin test on Go 1.17beta1&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="deprecations"&gt;Deprecations&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ebpf.ErrNotExist&lt;/code&gt; is now an alias to &lt;code&gt;os.ErrNotExist&lt;/code&gt; and will be removed in a future release.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="examples"&gt;Examples&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Docstring fixup in kprobe example&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="contributors"&gt;Contributors&lt;/h1&gt;
&lt;p&gt;Chris Tarazi
Lorenz Bauer
Mattia Meleleo
Mikko Ylinen
Robin Gögge
Tobias Klauser&lt;/p&gt;</description></item><item><title>cilium/ebpf v0.6.1</title><link>https://ebpf-digest.kostympop.info/digest/release-v0-6-1/</link><pubDate>Fri, 11 Jun 2021 13:21:25 +0000</pubDate><guid>https://ebpf-digest.kostympop.info/digest/release-v0-6-1/</guid><description>&lt;h1 id="breaking-changes"&gt;Breaking changes&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;None&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="features"&gt;Features&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;link.Raw{At,De}tachProgram&lt;/code&gt; now wraps and returns the underlying error returned by the kernel. Note: this is not an API contract, so use at your own discretion. This was added temporarily for kernel feature detection purposes, and a proper feature detection API will replace this in the near future.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;link.K(ret)probe&lt;/code&gt; now automatically prefixes the given symbol with the conventional prefix for syscall wrappers (e.g. &lt;code&gt;__x64_&lt;/code&gt; when running on amd64)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="examples"&gt;Examples&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;The kprobe example now hooks the &lt;code&gt;sys_execve&lt;/code&gt; syscall wrapper by its common name rather than the x64 variant&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="contributors"&gt;Contributors&lt;/h1&gt;
&lt;p&gt;Aleksa Sarai
Lorenz Bauer
Nikolay Nikolaev
Robin Gögge&lt;/p&gt;</description></item></channel></rss>