Skip to content

Commit 342acab

Browse files
docs: Update README and SUMMARY files to include Intel NPU kernel driver lessons and cgroup policy control
feat: Enhance TOC generation script to include non-numbered directories with .config files chore: Add .config file for cgroup-based policy control
1 parent 6d3ba3e commit 342acab

6 files changed

Lines changed: 28 additions & 16 deletions

File tree

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ This section covers advanced topics related to eBPF, including using eBPF progra
5656
GPU:
5757

5858
- [lesson 47-cuda-events](src/47-cuda-events/README.md) Tracing CUDA GPU Operations
59-
- [lesson xpu/npu-kernel-driver](src/xpu/npu-kernel-driver/README.md) Tracing Intel NPU Kernel Driver Operations
60-
- [xpu flamegraph](src/xpu/flamegraph/README.md) Building a GPU Flamegraph Profiler with CUPTI
6159
- [lesson xpu/gpu-kernel-driver](src/xpu/gpu-kernel-driver/README.md) Monitoring GPU Driver Activity with Kernel Tracepoints
60+
- [xpu flamegraph](src/xpu/flamegraph/README.md) Building a GPU Flamegraph Profiler with CUPTI
61+
- [lesson xpu/npu-kernel-driver](src/xpu/npu-kernel-driver/README.md) Tracing Intel NPU Kernel Driver Operations
6262

6363

6464
Scheduler:
@@ -103,14 +103,15 @@ Features:
103103
- [lesson 36-userspace-ebpf](src/36-userspace-ebpf/README.md) Userspace eBPF Runtimes: Overview and Applications
104104
- [lesson 38-btf-uprobe](src/38-btf-uprobe/README.md) Expanding eBPF Compile Once, Run Everywhere(CO-RE) to Userspace Compatibility
105105
- [lesson 43-kfuncs](src/43-kfuncs/README.md) Extending eBPF Beyond Its Limits: Custom kfuncs in Kernel Modules
106-
- [features bpf_wq](src/features/bpf_wq/README.md) BPF Workqueues for Asynchronous Sleepable Tasks
107-
- [features bpf_iters](src/features/bpf_iters/README.md) BPF Iterators for Kernel Data Export
108106
- [features struct_ops](src/features/struct_ops/README.md) Extending Kernel Subsystems with BPF struct_ops
107+
- [features bpf_iters](src/features/bpf_iters/README.md) BPF Iterators for Kernel Data Export
109108
- [features bpf_arena](src/features/bpf_arena/README.md) BPF Arena for Zero-Copy Shared Memory
109+
- [features bpf_wq](src/features/bpf_wq/README.md) BPF Workqueues for Asynchronous Sleepable Tasks
110110

111111
Other:
112112

113113
- [lesson 49-hid](src/49-hid/README.md) Fixing Broken HID Devices Without Kernel Patches
114+
- [cgroup](src/cgroup/README.md) cgroup-based Policy Control
114115

115116

116117
Android:

README.zh.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@
5353
GPU:
5454

5555
- [lesson 47-cuda-events](src/47-cuda-events/README.zh.md) eBPF 教程:追踪 CUDA GPU 操作
56-
- [lesson xpu/npu-kernel-driver](src/xpu/npu-kernel-driver/README.zh.md) eBPF 实例教程:跟踪 Intel NPU 内核驱动操作
57-
- [xpu flamegraph](src/xpu/flamegraph/README.zh.md) eBPF 示例:使用 CUPTI 构建 GPU 火焰图分析器
5856
- [lesson xpu/gpu-kernel-driver](src/xpu/gpu-kernel-driver/README.zh.md) eBPF 实例教程:使用内核跟踪点监控 GPU 驱动活动
57+
- [xpu flamegraph](src/xpu/flamegraph/README.zh.md) eBPF 示例:使用 CUPTI 构建 GPU 火焰图分析器
58+
- [lesson xpu/npu-kernel-driver](src/xpu/npu-kernel-driver/README.zh.md) eBPF 实例教程:跟踪 Intel NPU 内核驱动操作
5959
调度器:
6060

6161
- [lesson 44-scx-simple](src/44-scx-simple/README.zh.md) eBPF 教程:BPF 调度器入门
@@ -81,13 +81,14 @@ GPU:
8181
- [lesson 36-userspace-ebpf](src/36-userspace-ebpf/README.zh.md) 用户空间 eBPF 运行时:深度解析与应用实践
8282
- [lesson 38-btf-uprobe](src/38-btf-uprobe/README.zh.md) 借助 eBPF 和 BTF,让用户态也能一次编译、到处运行
8383
- [lesson 43-kfuncs](src/43-kfuncs/README.zh.md) 超越 eBPF 的极限:在内核模块中定义自定义 kfunc
84-
- [features bpf_wq](src/features/bpf_wq/README.zh.md) eBPF 教程:BPF 工作队列用于异步可睡眠任务
85-
- [features bpf_iters](src/features/bpf_iters/README.zh.md) eBPF 教程:BPF 迭代器用于内核数据导出
8684
- [features struct_ops](src/features/struct_ops/README.zh.md) eBPF 教程:使用 BPF struct_ops 扩展内核子系统
85+
- [features bpf_iters](src/features/bpf_iters/README.zh.md) eBPF 教程:BPF 迭代器用于内核数据导出
8786
- [features bpf_arena](src/features/bpf_arena/README.zh.md) eBPF 实例教程:BPF Arena 零拷贝共享内存
87+
- [features bpf_wq](src/features/bpf_wq/README.zh.md) eBPF 教程:BPF 工作队列用于异步可睡眠任务
8888
特性:
8989

9090
- [lesson 49-hid](src/49-hid/README.zh.md) eBPF 教程:无需内核补丁修复故障的 HID 设备
91+
- [cgroup](src/cgroup/README.zh.md) eBPF 实例教程:基于 cgroup 的策略控制
9192
Android:
9293

9394
- [lesson 22-android](src/22-android/README.zh.md) 在 Android 上使用 eBPF 程序

scripts/generate_toc.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ def sort_key(directory_name):
3737
# Add numbered directories directly
3838
if re.match(r'^\d+', item):
3939
all_dirs.append(item)
40+
# Also add non-numbered directories that have .config file
41+
elif os.path.exists(os.path.join(item_path, ".config")):
42+
all_dirs.append(item)
4043
# Also scan subdirectories (like features/, xpu/)
4144
else:
4245
for subitem in os.listdir(item_path):
@@ -165,6 +168,9 @@ def sort_key(directory_name):
165168
# Add numbered directories directly
166169
if re.match(r'^\d+', item):
167170
all_dirs.append(item)
171+
# Also add non-numbered directories that have .config file
172+
elif os.path.exists(os.path.join(item_path, ".config")):
173+
all_dirs.append(item)
168174
# Also scan subdirectories (like features/, xpu/)
169175
else:
170176
for subitem in os.listdir(item_path):

src/SUMMARY.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ This section covers advanced topics related to eBPF, including using eBPF progra
4747
GPU:
4848

4949
- [lesson 47-cuda-events](47-cuda-events/README.md) Tracing CUDA GPU Operations
50-
- [lesson xpu/npu-kernel-driver](xpu/npu-kernel-driver/README.md) Tracing Intel NPU Kernel Driver Operations
51-
- [xpu flamegraph](xpu/flamegraph/README.md) Building a GPU Flamegraph Profiler with CUPTI
5250
- [lesson xpu/gpu-kernel-driver](xpu/gpu-kernel-driver/README.md) Monitoring GPU Driver Activity with Kernel Tracepoints
51+
- [xpu flamegraph](xpu/flamegraph/README.md) Building a GPU Flamegraph Profiler with CUPTI
52+
- [lesson xpu/npu-kernel-driver](xpu/npu-kernel-driver/README.md) Tracing Intel NPU Kernel Driver Operations
5353

5454

5555
Scheduler:
@@ -94,14 +94,15 @@ Features:
9494
- [lesson 36-userspace-ebpf](36-userspace-ebpf/README.md) Userspace eBPF Runtimes: Overview and Applications
9595
- [lesson 38-btf-uprobe](38-btf-uprobe/README.md) Expanding eBPF Compile Once, Run Everywhere(CO-RE) to Userspace Compatibility
9696
- [lesson 43-kfuncs](43-kfuncs/README.md) Extending eBPF Beyond Its Limits: Custom kfuncs in Kernel Modules
97-
- [features bpf_wq](features/bpf_wq/README.md) BPF Workqueues for Asynchronous Sleepable Tasks
98-
- [features bpf_iters](features/bpf_iters/README.md) BPF Iterators for Kernel Data Export
9997
- [features struct_ops](features/struct_ops/README.md) Extending Kernel Subsystems with BPF struct_ops
98+
- [features bpf_iters](features/bpf_iters/README.md) BPF Iterators for Kernel Data Export
10099
- [features bpf_arena](features/bpf_arena/README.md) BPF Arena for Zero-Copy Shared Memory
100+
- [features bpf_wq](features/bpf_wq/README.md) BPF Workqueues for Asynchronous Sleepable Tasks
101101

102102
Other:
103103

104104
- [lesson 49-hid](49-hid/README.md) Fixing Broken HID Devices Without Kernel Patches
105+
- [cgroup](cgroup/README.md) cgroup-based Policy Control
105106

106107

107108
Android:

src/SUMMARY.zh.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
GPU:
4646

4747
- [lesson 47-cuda-events](47-cuda-events/README.zh.md) eBPF 教程:追踪 CUDA GPU 操作
48-
- [lesson xpu/npu-kernel-driver](xpu/npu-kernel-driver/README.zh.md) eBPF 实例教程:跟踪 Intel NPU 内核驱动操作
49-
- [xpu flamegraph](xpu/flamegraph/README.zh.md) eBPF 示例:使用 CUPTI 构建 GPU 火焰图分析器
5048
- [lesson xpu/gpu-kernel-driver](xpu/gpu-kernel-driver/README.zh.md) eBPF 实例教程:使用内核跟踪点监控 GPU 驱动活动
49+
- [xpu flamegraph](xpu/flamegraph/README.zh.md) eBPF 示例:使用 CUPTI 构建 GPU 火焰图分析器
50+
- [lesson xpu/npu-kernel-driver](xpu/npu-kernel-driver/README.zh.md) eBPF 实例教程:跟踪 Intel NPU 内核驱动操作
5151
调度器:
5252

5353
- [lesson 44-scx-simple](44-scx-simple/README.zh.md) eBPF 教程:BPF 调度器入门
@@ -73,13 +73,14 @@ GPU:
7373
- [lesson 36-userspace-ebpf](36-userspace-ebpf/README.zh.md) 用户空间 eBPF 运行时:深度解析与应用实践
7474
- [lesson 38-btf-uprobe](38-btf-uprobe/README.zh.md) 借助 eBPF 和 BTF,让用户态也能一次编译、到处运行
7575
- [lesson 43-kfuncs](43-kfuncs/README.zh.md) 超越 eBPF 的极限:在内核模块中定义自定义 kfunc
76-
- [features bpf_wq](features/bpf_wq/README.zh.md) eBPF 教程:BPF 工作队列用于异步可睡眠任务
77-
- [features bpf_iters](features/bpf_iters/README.zh.md) eBPF 教程:BPF 迭代器用于内核数据导出
7876
- [features struct_ops](features/struct_ops/README.zh.md) eBPF 教程:使用 BPF struct_ops 扩展内核子系统
77+
- [features bpf_iters](features/bpf_iters/README.zh.md) eBPF 教程:BPF 迭代器用于内核数据导出
7978
- [features bpf_arena](features/bpf_arena/README.zh.md) eBPF 实例教程:BPF Arena 零拷贝共享内存
79+
- [features bpf_wq](features/bpf_wq/README.zh.md) eBPF 教程:BPF 工作队列用于异步可睡眠任务
8080
特性:
8181

8282
- [lesson 49-hid](49-hid/README.zh.md) eBPF 教程:无需内核补丁修复故障的 HID 设备
83+
- [cgroup](cgroup/README.zh.md) eBPF 实例教程:基于 cgroup 的策略控制
8384
Android:
8485

8586
- [lesson 22-android](22-android/README.zh.md) 在 Android 上使用 eBPF 程序

src/cgroup/.config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
level=Depth
2+
type=Other

0 commit comments

Comments
 (0)