├── USENIX - Vault'19_ Performance Analysis in Linux Storage Stack with BPF.pdf ├── linux-samples-bpf-Makfile.patch ├── stage01_submit_bio_call_time ├── vault19_bio_trace_kern.c └── vault19_bio_trace_user.c ├── stage02_bio_endio_call_time ├── vault19_bio_trace_kern.c └── vault19_bio_trace_user.c ├── stage03_bio_latency_map ├── vault19_bio_trace_kern.c └── vault19_bio_trace_user.c ├── stage04_max_latency ├── vault19_bio_trace_kern.c └── vault19_bio_trace_user.c ├── stage05_max_latency_sector ├── vault19_bio_trace_kern.c └── vault19_bio_trace_user.c ├── stage06_max_latency_stacktrace ├── vault19_bio_trace_kern.c └── vault19_bio_trace_user.c ├── stage07_latency_other_section ├── vault19_bio_trace_kern.c └── vault19_bio_trace_user.c ├── stage08_pagecache_miss_counts ├── vault19_pagecache_trace_kern.c └── vault19_pagecache_trace_user.c ├── stage09_pagecache_miss_pid_filter ├── vault19_pagecache_trace_kern.c └── vault19_pagecache_trace_user.c └── stage10_ctracer-data+func_tracing ├── README.md ├── bpf └── utils │ └── kern │ └── bio-bpf.c ├── clean.sh ├── ctracer-compile.py ├── ctracer-finish.py ├── ctracer-load.py ├── gen-BPF-cfiles.py ├── json_writer.c ├── json_writer.h ├── setup.py └── vault19_ctracer_user.c /USENIX - Vault'19_ Performance Analysis in Linux Storage Stack with BPF.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/USENIX - Vault'19_ Performance Analysis in Linux Storage Stack with BPF.pdf -------------------------------------------------------------------------------- /linux-samples-bpf-Makfile.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/linux-samples-bpf-Makfile.patch -------------------------------------------------------------------------------- /stage01_submit_bio_call_time/vault19_bio_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage01_submit_bio_call_time/vault19_bio_trace_kern.c -------------------------------------------------------------------------------- /stage01_submit_bio_call_time/vault19_bio_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage01_submit_bio_call_time/vault19_bio_trace_user.c -------------------------------------------------------------------------------- /stage02_bio_endio_call_time/vault19_bio_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage02_bio_endio_call_time/vault19_bio_trace_kern.c -------------------------------------------------------------------------------- /stage02_bio_endio_call_time/vault19_bio_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage02_bio_endio_call_time/vault19_bio_trace_user.c -------------------------------------------------------------------------------- /stage03_bio_latency_map/vault19_bio_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage03_bio_latency_map/vault19_bio_trace_kern.c -------------------------------------------------------------------------------- /stage03_bio_latency_map/vault19_bio_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage03_bio_latency_map/vault19_bio_trace_user.c -------------------------------------------------------------------------------- /stage04_max_latency/vault19_bio_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage04_max_latency/vault19_bio_trace_kern.c -------------------------------------------------------------------------------- /stage04_max_latency/vault19_bio_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage04_max_latency/vault19_bio_trace_user.c -------------------------------------------------------------------------------- /stage05_max_latency_sector/vault19_bio_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage05_max_latency_sector/vault19_bio_trace_kern.c -------------------------------------------------------------------------------- /stage05_max_latency_sector/vault19_bio_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage05_max_latency_sector/vault19_bio_trace_user.c -------------------------------------------------------------------------------- /stage06_max_latency_stacktrace/vault19_bio_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage06_max_latency_stacktrace/vault19_bio_trace_kern.c -------------------------------------------------------------------------------- /stage06_max_latency_stacktrace/vault19_bio_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage06_max_latency_stacktrace/vault19_bio_trace_user.c -------------------------------------------------------------------------------- /stage07_latency_other_section/vault19_bio_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage07_latency_other_section/vault19_bio_trace_kern.c -------------------------------------------------------------------------------- /stage07_latency_other_section/vault19_bio_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage07_latency_other_section/vault19_bio_trace_user.c -------------------------------------------------------------------------------- /stage08_pagecache_miss_counts/vault19_pagecache_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage08_pagecache_miss_counts/vault19_pagecache_trace_kern.c -------------------------------------------------------------------------------- /stage08_pagecache_miss_counts/vault19_pagecache_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage08_pagecache_miss_counts/vault19_pagecache_trace_user.c -------------------------------------------------------------------------------- /stage09_pagecache_miss_pid_filter/vault19_pagecache_trace_kern.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage09_pagecache_miss_pid_filter/vault19_pagecache_trace_kern.c -------------------------------------------------------------------------------- /stage09_pagecache_miss_pid_filter/vault19_pagecache_trace_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage09_pagecache_miss_pid_filter/vault19_pagecache_trace_user.c -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/README.md -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/bpf/utils/kern/bio-bpf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/bpf/utils/kern/bio-bpf.c -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/clean.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/clean.sh -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/ctracer-compile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/ctracer-compile.py -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/ctracer-finish.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/ctracer-finish.py -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/ctracer-load.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/ctracer-load.py -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/gen-BPF-cfiles.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/gen-BPF-cfiles.py -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/json_writer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/json_writer.c -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/json_writer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/json_writer.h -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/setup.py -------------------------------------------------------------------------------- /stage10_ctracer-data+func_tracing/vault19_ctracer_user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kernel-digging/vault19_bpf_tutorial/HEAD/stage10_ctracer-data+func_tracing/vault19_ctracer_user.c --------------------------------------------------------------------------------