Commit Graph

269 Commits

Author SHA1 Message Date
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
yunwei37
c9d3d65c15 docs: enhance README with detailed explanation of CUDA API tracing and eBPF integration 2025-09-30 22:28:48 -07:00
云微
70451702f0 Add wall clock analysis (#184)
* Add combined on-CPU and off-CPU profiler script

- Implemented a new profiling tool that captures both on-CPU and off-CPU activity for a specified process.
- The script runs 'oncputime' and 'offcputime' tools simultaneously and combines their results into a unified flamegraph.
- Added functionality to discover threads and profile them individually if the application is multi-threaded.
- Included error handling for tool execution and output processing.
- Created methods for generating flamegraph data and SVG visualizations.
- Added command-line argument parsing for user-defined profiling parameters.
- Implemented detailed analysis reports for both individual threads and overall profiling results.

* feat: integrate blazesym v0.2.0 for improved symbol resolution and add test program for memory leak detection

* docs: update README to enhance wall clock profiling tutorial with detailed explanations and examples

* feat: add wallclock-profiler tests to CI workflow for tool validation

* fix: rename combined_profiler.py to wallclock_profiler.py in test scripts and usage examples
2025-09-30 22:11:52 -07:00
TaeyeongKwak
da67bfcf24 docs: modify inconsistent method names between description and code (#183) 2025-09-30 18:10:34 -07:00
yunwei37
bcae6d077b feat: add native RAPL support for real-time energy measurements in energy monitor 2025-09-30 17:28:08 -07:00
yunwei37
fddf6b9681 fix website path 2025-09-25 05:58:02 +08:00
yunwei37
83ac64b8ef docs: enhance README and Makefile for clarity and functionality
- Improved descriptions of key features in the README, emphasizing type safety, symbol resolution, error handling, logging, and command-line interface.
- Updated the Makefile to include a specific RUSTFLAGS setting for building the blazesym library, enhancing build safety and control.
2025-09-01 12:37:30 +00:00
yunwei37
30d7601b07 feat: initialize profile tool with Rust and BPF integration
- Removed the legacy C implementation of the profiling tool.
- Added a new Rust-based implementation that utilizes BPF for stack tracing.
- Introduced a Makefile for building the project and managing dependencies.
- Created a Cargo.toml file to manage Rust dependencies and project metadata.
- Implemented event handling and performance monitoring using the libbpf library.
- Added support for both standard and extended output formats for stack traces.
- Included a .gitignore file to exclude build artifacts and output directories.
- Established a new directory structure for organizing source files and BPF code.
2025-09-01 11:10:17 +00:00
github-actions[bot]
b3207111ea docs: improve clarity and correct paths in README files
- Revised wording for better clarity in the English README related to CUDA API calls.
- Updated directory path in the Chinese README to reflect the correct location for building components.
2025-08-24 04:41:55 +00:00
github-actions[bot]
97196d0550 docs: update links and improve formatting in various README files
- Corrected URLs in the Chinese and English README files to ensure accuracy and consistency.
- Removed trailing punctuation from links for better formatting.
- Enhanced clarity in the descriptions and instructions across multiple documents.
2025-08-24 04:34:30 +00:00
github-actions[bot]
5a2535312c docs: update links in README files for consistency and accuracy
- Updated URLs in the README files for the eunomia-bpf repository to point to the correct build documentation.
- Changed references to the DPDK eBPF support documentation to the new link format.
- Ensured all links in the BCC reference guide and tutorial documents are consistent and functional.
2025-08-24 04:22:48 +00:00
github-actions[bot]
3b79879fcf feat: add link checker script for markdown files
- Introduced a new Python script to check the availability of URLs in markdown files within the project.
- The script supports options for fixing internal links, specifying output formats, and setting request timeouts.
- Generates detailed reports on working, broken, and skipped links, with support for text, JSON, and markdown formats.
- Updated markdown files to remove trailing punctuation from tutorial links for consistency.
2025-08-24 04:10:51 +00:00
123456
64817cc722 docs: add CLAUDE.md for project guidance and create master Makefile for eBPF tutorials
- Introduced CLAUDE.md to provide an overview and guidance for the eBPF Developer Tutorial repository.
- Added a master Makefile to automate the building and cleaning of eBPF tutorial subdirectories.
- Updated .gitignore in the sslsniff example to include the sslsniff binary.
- Made minor code adjustments in user_ringbuf.c and xdp-tcpdump.c to include necessary headers.
- Modified the Makefile in the btf-uprobe example to streamline the build process.
2025-07-29 13:25:41 +00:00
Zhong Yinjie
6973941721 fix(tp/syscalls): detach handle_getdents_patch on sys_exit_getdents64 (#176)
确保 handle_getdents_patch 仅通过尾调用执行。
移除在 sys_exit_getdents64 上的 attach,避免非尾调用路径被意外触发。

Signed-off-by: zyj <zhongyinjiebit@sina.com>
Co-authored-by: zyj <zhongyinjiebit@sina.com>
2025-07-23 13:15:29 +09:00
Benibr
1a2744ff49 42-xdp-loadbalancer: fix various bugs which prevented the example from working (#175)
* added stub XDP_PASS for receiving veth

* added tcp csum to prevent packet dropping

* sticky backend select (hash over connection tuple)

---------

Co-authored-by: Benibr <1274814+benibr@users.noreply.github.com>
2025-07-23 13:14:42 +09:00
Yuta Yamaguchi
5821feb8c5 docs: remove duplicate words (#174) 2025-07-11 15:15:30 -07:00