Commit Graph

284 Commits

Author SHA1 Message Date
Littlefisher
cbc6658f80 Add Chinese translation for eBPF tutorial on BPF struct_ops
This commit introduces a comprehensive Chinese translation of the eBPF tutorial focused on using BPF struct_ops to extend kernel subsystems. The tutorial covers the challenges of kernel development, the benefits of using BPF struct_ops, and provides detailed examples of implementing a kernel module, BPF program, and user-space loader. The content aims to enhance accessibility for Chinese-speaking developers interested in eBPF and kernel programming.
2026-01-11 02:28:21 -08:00
github-actions[bot]
8372e9bf1c feat: Enhance test_3 to safely read from kernel buffer and return length 2025-11-16 06:19:28 +00:00
github-actions[bot]
86c2f723f0 feat: Update struct_ops to change test_3 return type to int and add BPF helper support 2025-11-15 23:54:20 +00:00
github-actions[bot]
540ce67c47 fix: Remove bpf_printk calls from struct_ops BPF programs to comply with restrictions 2025-11-15 22:24:51 +00:00
github-actions[bot]
a1430cf552 docs: auto-generate documentation 2025-11-12 15:39:28 +00:00
Littlefisher
fd03b86248 feat: Update TOC generation functions to include output file directory parameter and adjust lesson paths in SUMMARY files 2025-11-12 07:39:14 -08:00
github-actions[bot]
78bad8296c docs: auto-generate documentation 2025-11-10 18:31:03 +00:00
github-actions[bot]
5ce10be3e1 feat: Implement BPF struct_ops example with custom kernel module and user-space loader 2025-11-10 18:30:48 +00:00
Yinzuo Jiang
ca927133b7 fix(32-wallclock-profiler): use absolute path to find tool paths (#186)
Problem:

`Path(__file__)` can be ".", in such case `self.oncpu_tool` is "oncputime", which can not be found by the shell.

Solution:

Translate `Path(__file__)` to absolute path.
2025-11-09 10:20:35 -08:00
Littlefisher
2c9870bf83 feat: Add initial implementation of struct_ops BPF program and kernel module with kfunc support 2025-11-08 15:51:36 -08:00
github-actions[bot]
134ee88067 docs: auto-generate documentation 2025-11-04 07:16:27 +00:00
Littlefisher
01ee4ea9ed fix: update image links to use absolute URLs in README and SUMMARY templates 2025-11-03 23:16:14 -08:00
github-actions[bot]
81be963985 docs: auto-generate documentation 2025-11-04 06:14:12 +00:00
Littlefisher
75ec466daa feat: Add book recommendation for eBPF observability and introduce configuration for GPU flamegraph 2025-11-03 22:13:59 -08:00
github-actions[bot]
b9b82fae6d docs: auto-generate documentation 2025-11-04 05:39:43 +00:00
Littlefisher
285e4f2579 feat: Add book recommendations and promotional content for eBPF learning resources 2025-11-03 21:39:29 -08:00
Littlefisher
cf6abdeaf2 Implement feature X to enhance user experience and optimize performance 2025-10-28 20:35:37 -07:00
Littlefisher
5afd7fd348 Enhance Flamegraph Documentation and GPU Profiling Scripts
- Added an example flamegraph for Qwen3 LLM inference, highlighting key insights and performance bottlenecks.
- Updated README.md to include detailed explanations of CPU and GPU profiling results, emphasizing the correlation between CPU stacks and GPU kernels.
- Modified gpuperf.py to ensure absolute paths are used for output files, improving reliability across different working directories.
- Enhanced merge_gpu_cpu_trace.py to strip ANSI escape sequences from CPU stack traces, ensuring cleaner output for analysis.
- Introduced a new SVG file for the Qwen3 flamegraph, providing a visual representation of profiling data with interactive features.
2025-10-28 13:23:16 -07:00
Littlefisher
ad583766a8 Implement structural updates and optimizations across multiple modules 2025-10-28 12:40:06 -07:00
Littlefisher
a9af348a46 feat: Enhance CUPTI activity selection and merge logic for improved profiling accuracy 2025-10-27 22:58:57 -07:00
Littlefisher
f5ee20e333 fix: Ensure CUPTI flushes events before stopping CPU profiler; update timestamp handling to use microseconds 2025-10-27 20:05:45 -07:00
Littlefisher
05ca05aa7c Refactor code structure for improved readability and maintainability 2025-10-27 19:41:40 -07:00
yunwei37
b8cc834d7f Enhance GPU and NPU kernel driver documentation and monitoring scripts
- Updated README.zh.md for GPU kernel driver to improve clarity and formatting.
- Added nvidia_driver.bt script for monitoring NVIDIA proprietary GPU driver activity using kernel probes.
- Revised README.md for NPU kernel driver to enhance explanations and correct minor grammatical issues.
2025-10-13 07:18:50 -07:00
github-actions[bot]
d4ec997ab2 docs: auto-generate documentation 2025-10-06 06:19:22 +00:00
yunwei37
dc2c40f6d6 feat: Add eBPF tutorial for dynamically fixing HID device issues without kernel patches
- Introduced a new tutorial on using HID-BPF to create virtual mouse devices and modify their input dynamically.
- Explained the common issues with HID devices and how traditional methods are cumbersome.
- Provided detailed implementation steps for creating a virtual HID device using uhid and modifying input with eBPF.
- Included example code for both user space and BPF programs, demonstrating how to intercept and modify HID reports.
- Highlighted the advantages of using virtual devices for learning and experimentation.
- Added references for further reading on HID-BPF and related projects.
2025-10-05 23:19:08 -07:00
github-actions[bot]
635b478184 docs: auto-generate documentation 2025-10-06 05:57:30 +00:00
yunwei37
cab7ab3919 docs: update README for eBPF tutorial on privilege escalation via file content manipulation 2025-10-05 22:57:19 -07:00
github-actions[bot]
7c335e2a23 docs: auto-generate documentation 2025-10-06 05:50:29 +00:00
yunwei37
5f29fd2d41 docs: add complete source code links to various eBPF tutorial README files 2025-10-05 22:47:39 -07:00
yunwei37
277ecbaf9d Add HID-BPF tutorial and implementation for virtual mouse input modification
- Introduced a comprehensive tutorial in README.md explaining how to fix broken HID devices using eBPF without kernel patches.
- Implemented a userspace program (hid-input-modifier.c) that creates a virtual HID mouse using the uhid interface and sends synthetic mouse events.
- Developed a BPF program (hid-input-modifier.bpf.c) that intercepts HID events and modifies mouse movement data, effectively doubling the X and Y movement.
- Created necessary header files (hid_bpf.h, hid_bpf_defs.h, hid_bpf_helpers.h) to define structures and helper functions for the BPF program.
- Added functionality to find and manage the virtual HID device, ensuring seamless integration with the BPF program.
2025-10-05 22:40:58 -07:00
yunwei37
5319e02c7c feat: add workflow for auto-generating documentation on push 2025-10-05 20:59:51 -07:00
yunwei37
a2e7b20d63 Add eBPF tutorial templates and update SUMMARY files
- Created SUMMARY.md.template and SUMMARY.zh.md.template for eBPF tutorial.
- Updated generate_toc.py to generate table of contents for English and Chinese versions.
- Added configuration files for new eBPF examples, categorizing them by level and type.
- Updated SUMMARY.md and SUMMARY.zh.md to reflect new lessons and reorganized sections.
- Introduced new features related to GPU and tracing in the tutorial.
2025-10-05 20:56:50 -07:00
yunwei37
29e8113081 docs: add tutorial for tracking Intel NPU kernel driver operations using eBPF 2025-10-05 19:40:13 -07:00
yunwei37
8c38c01cae Refactor GPU kernel driver documentation: Update eBPF tutorial for monitoring GPU activities, streamline content, and enhance clarity on kernel tracepoints and their applications across Intel, AMD, and Nouveau drivers. 2025-10-05 19:23:31 -07:00
yunwei37
131b79e13f docs: update eBPF tutorial to enhance GPU monitoring insights and script usage 2025-10-05 18:59:10 -07:00
yunwei37
f3c4a3ee64 Refactor test output in arena_list.c to remove redundant print statements
- Removed unnecessary print statements for arena sum and number of elements in the test_arena_list_add_del function.
- Simplified output to focus on essential test results, improving clarity and conciseness of the test logs.
2025-10-06 06:24:08 +08:00
yunwei37
6042594b8c Add eBPF tutorial and monitoring scripts for GPU activity
- Introduced a comprehensive README.md detailing the use of eBPF for monitoring GPU activity through kernel tracepoints.
- Added bpftrace scripts for monitoring AMD GPU operations, including buffer object creation, command submission, and interrupts.
- Created a bpftrace script for tracking DRM GPU scheduler activity across all modern GPU drivers.
- Developed a bpftrace script to monitor display vertical blanking events for frame timing analysis.
- Implemented a bpftrace script for Intel i915 GPU activity, focusing on GEM object management, memory operations, and page faults.
2025-10-05 00:26:31 -07:00
yunwei37
0e19d48331 docs: add comprehensive BPF Arena tutorial detailing features, use cases, and examples 2025-10-04 23:15:03 -07:00
yunwei37
b88ab2ae0e Add BPF Workqueues support and example
- Introduced BPF workqueues to enable asynchronous work from BPF programs, allowing deferred processing, non-blocking operations, and sleepable contexts for long-running tasks.
- Added README.md to document the BPF workqueues, including use cases, technical architecture, and code examples.
- Created bpf_experimental.h header file to define necessary BPF workqueue functions and structures.
- Implemented a simple BPF workqueue example (wq_simple) demonstrating the initialization, scheduling, and execution of work in a separate context.
- Developed a userspace test (wq_simple.c) to verify the functionality of the BPF workqueue by triggering a syscall and checking the execution results.
2025-10-04 22:49:09 -07:00
yunwei37
ba1a6a472e bpf: Implement arena list management with allocation and deletion
This commit introduces a new BPF program that manages an arena list, allowing for the addition and deletion of elements. The following changes were made:

- Added `arena_list.bpf.c` to implement BPF functions for adding and deleting elements in an arena list.
- Created `arena_list.c` for user-space testing of the BPF program, including functions to sum elements and validate the arena list operations.
- Introduced `bpf_arena_alloc.h` and `bpf_arena_common.h` for memory allocation and common definitions related to arena management.
- Defined `bpf_arena_list.h` to establish the structure of the arena list nodes and heads.
- Added `bpf_experimental.h` to include experimental BPF features and helper functions for object management.

These changes enhance the BPF capabilities for managing memory in a structured way, facilitating efficient allocation and deallocation of resources.
2025-10-04 21:39:24 -07:00
yunwei37
dc217d2def docs: update eBPF tutorial to include recent advancements in CPU scheduling and adoption by major organizations 2025-10-04 01:39:48 -07:00
yunwei37
5aabe4d80f docs: enhance README files with expanded explanations on eBPF's user-space capabilities and performance improvements 2025-10-04 00:37:40 -07:00
yunwei37
cac89104fd docs: add related work and further reading section to wall clock profiling tutorial 2025-10-04 00:26:01 -07:00
yunwei37
4250a9a441 docs: refine README files for clarity and conciseness across multiple tutorials 2025-10-03 17:05:21 -07:00
yunwei37
6364a288f2 docs: update README files to streamline eunomia-bpf installation instructions 2025-10-03 16:59:36 -07:00
yunwei37
c037dbfcdc docs: enhance README files with detailed explanations and improved clarity across multiple tutorials 2025-10-03 16:52:33 -07:00
yunwei37
f79114f707 remove bcc document 2025-10-03 16:15:18 -07:00
yunwei37
91120e612e Translate 2025-10-03 16:12:56 -07:00
yunwei37
445722e8a3 docs: remove redundant references to official documentation in multiple tutorial README files 2025-10-01 16:56:59 -07:00
yunwei37
71c89cbcd2 docs: update flame graph image links in README files for wall clock profiling tutorial 2025-09-30 22:49:41 -07:00